  We present a new formulation for parallel matrix multiplication (MM) to
out-perform the standard row-column code design. This algorithm is formulated
in the MoA formalism (A Mathematics of Arrays) and combines an array view of
hardware (dimension-lifting) to extend indexing to physical memory/processing
units, with a contiguous data layout derived from static transformations. This
view of a hardware-software model is thus a bridging model in the sense of
Valiant's BSP. OpenACCcode was derived from the MoA expressions's normal form,
producing optimal block sizes using the static information of types and shapes.
Experiments were run on Nvidia V100 GPUs and reveal energy consumption which is
quadratic in N, i.e. linear in the size of matrix. More generally this approach
may be an ideal way of formulating, optimizing, and mapping array algorithms to
embedded hardware. This work builds upon recently published results of NREL
scientists.
  .

Distributed, Parallel, and Cluster Computing;Mathematical Software