9.4.2 Performing Multiplications

The user interacts with the library through CLA_Matrix_interface objects. Their constructor takes no arguments. A call to make_multiplier (described below) will properly initialize them. The class has two methods the user needs to use. First, is the multiply method. It has the following signature:

void multiply(double alpha, double beta, double *data, void (*fptr) (void *),
              void *usr_data, int x, int y);
Each element of the user's and arrays must call this method to perform the multiplication.

The second function of the CLA_Matrix_interface objects is the sync method. This should be called at each element of the array when it is ready to migrate. It takes as arguments two intergers, x and y, which should always be thisIndex.x and thisIndex.y, respectively. Note that migration is currently only supported for the ``2D'' algorithm.

November 23, 2009
Charm Homepage