ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
99
const int max_Acols = 110;
const int max_Bcols = 110;
int A[max_Arows][max_Acols], B[max_Acols][max_Bcols],
C[max_Arows][max_Bcols];
int buffer[max_Acols], ans[max_Acols];
int myid, master, numprocs, numsent;
double starttime, stoptime;
MPI_Request req;
int Bsend[10000];
int Asend[10000];
MPI_Status status;
int i,j,numsend,sender,anstype,row,arows,
acols,brows,bcols,crows,ccols;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &myid);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
// количество строк и столбцов матрицы A
arows = 100;
acols = 100;
// количество строк и столбцов матрицы В
brows = 100;
bcols = 100;
// количество строк и столбцов матрицы С
crows = arows;
ccols = bcols;
master = 0;
// код главного процесса
if (myid == 0) {
printf("\nnumber of processes must be <= dimention+1 and
>1\n");
// инициализация А и B
// инициализация А и B
FILE* stream;
char* fileA = "inputA1.txt";
char* fileB = "inputB1.txt";
char* fileC = "outputC1.txt";
char mode_r = 'r';
char mode_w = 'w';
stream = fopen(fileA, &mode_r);
fscanf(stream, "%i",&arows);
fscanf(stream, "%i",&acols);
for(i=0;i<arows;i++)
{
for(j=0;j<acols;j++)
{
fscanf(stream, "%i", &(A[i][j]));
}
}