9.1 Introduction and Motivation

The matrix multiplication library provides a simple way to add the capabilities to do matrix-matrix multiplications to any two-dimensional chare arrays in CHARM++. It is envisioned that in the future this will become part of a larger CHARM++linear algebra (CLA) library.

The matrix multiplication library was designed as a way to add the capability of doing the matrix-matrix multiplication to a user's already-existing 2D chare array. It assumes that the user will evenly distribute their data among the array elements. The library uses bound arrays to access this data locally in order to minimize communication between the user's and the library's arrays. The library provides both a ``2D'' and a ``3D'' algorithm to carry out the multiplication. The ``2D'' algorithm is faster but requires more memory. The ``3D'' algorithm requires less memory and provides greater opportunity to overlap communication and computation if the user's program has other work that can be done while the multiplication is carried out.



November 23, 2009
Charm Homepage