<span style="color:#3333FF;"><span style="background-color: rgb(255, 255, 255);">#include <stdio.h>
#include "mpi.h"
#define row_A 10 // row of Matrix A
#define col_A 20 // column of Matrix A
void rowcolcomm( int myid , int col_P)
{
int rows=row_A, cols;//每个处理器里面矩阵的行数,列数
int i,j;
int A[ row_A ][ col_A ];
if( myid < col_A % col_P)
cols = col_A / col_P +1;
else
cols = col_A / col_P;
sleep(myid);
printf("Process%2d里面的行数为:rows=%d 列数为:cols=%d 子矩阵为:\n",myid,rows,cols);
for( i = 0 ; i < rows; i++ )
{
for( j = 0 ; j < cols ; j++ )
{
A[i][j] = i + j*col_P + myid ;
printf("%3d",A[i][j]);
}
printf("\n");
}
printf("\n");
}
int main( int argc, char *argv[] )
{
int rank;
int size;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
rowcolcomm( rank,size) ;
MPI_Finalize();
return 0;
}
</span></span>