/*
MPI parallel matrix multiplication using asynchronous message passing.
Each process will be assigned a number of rows.
**** rank 0 process responsible for first interval of
**** the matrix as well as the remainder.
The message passing calls used include synchronous as well asynchronous
send and receive, plus broadcast.
For simplicity, square matrices will be assumed and static, global arrays
used.
*/
#include
#include
#include
// macro prints array AA, size rzXcz, using formated string fs.
// use as in PRINT2M(A,4,5,"%f ")
#define PRINT2M(AA,rz,cz,fs) { \
int i, j; \
for (i=0;i1) srandom(atoi(*(argv+1))); // random seed
// generate random matrices
for(i=0;i