/*
* MPI-2: Out-of-Core Matrix Product - Framework of the MPI-2 implementation
* http://www.pdc.kth.se/training/Talks/SMP/maui98/jpprost/ex2_c_incomp.htm
*
* Author: Jean-Pierre Prost
* Email: jpprost@us.ibm.com
* Home Page: http://www.research.ibm.com/people/p/prost
*/
#define P 4 /* number of tasks */
#define Nb 64 /* slice size */
#define Ng ( Nb * P ) /* global size of matrix */
....
colext = Nb * extent;
slicelen = Ng * Nb;
sliceext = slicelen * extent;
/* create filetype for matrix A */
/* TO BE COMPLETED */
/* create filetype for matrix B */
/* TO BE COMPLETED */
/* create filetype for matrix C */
/* TO BE COMPLETED */
/* open files */
/* TO BE COMPLETED */
/* set views */
/* TO BE COMPLETED */
/* read horizontal slice of A */
/* TO BE COMPLETED */
/* loop on vertical slices */
for ( iv = 0; iv < P; iv++ ) {
/* read next vertical slice of B */
/* TO BE COMPLETED */
/* compute block product */
for ( i = 0; i < Nb; i++ ) {
for ( j = 0; j < Nb; j++ ) {
val_C[ i ][ j ] = 0;
for ( k = 0; k < Ng; k++ ) {
val_C[ i ][ j ] += val_A[ i ][ k ] * val_B[ k ][ j ];
}
}
}
/* write block of C */
/* TO BE COMPLETED */
}
/* close files */
/* TO BE COMPLETED */