ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ
          
        
        
          
            100
          
        
        
          fclose(stream);
        
        
          stream = fopen(fileB, &mode_r);
        
        
          fscanf(stream, "%i",&brows);
        
        
          fscanf(stream, "%i",&bcols);
        
        
          for(i=0;i<brows;i++)
        
        
          {
        
        
          for(j=0;j<bcols;j++)
        
        
          {
        
        
          fscanf(stream, "%i", &(B[i][j]));
        
        
          }
        
        
          }
        
        
          fclose(stream);
        
        
          for(i=0;i<arows;i++)
        
        
          {
        
        
          for(j=0;j<acols;j++)
        
        
          {
        
        
          Asend[i*bcols+j] = A[i][j];
        
        
          }
        
        
          }
        
        
          // посылка матрицы В каждому подчиненному процессу
        
        
          for(i=0;i<brows;i++)
        
        
          {
        
        
          for(j=0;j<bcols;j++)
        
        
          {
        
        
          Bsend[i*bcols+j] = B[i][j];
        
        
          }
        
        
          }
        
        
          MPI_Bcast(Bsend, brows*bcols, MPI_INT, master,
        
        
          MPI_COMM_WORLD);
        
        
          numsent = 0;
        
        
          // посылка строки каждому подчиненному процессу;
        
        
          // в TAG - номер строки = i для простоты полагаем
        
        
          for(i=1;i<numprocs;i++)
        
        
          {
        
        
          MPI_Send((Asend+numsent*acols), acols, MPI_INT, i,
        
        
          numsent,MPI_COMM_WORLD);
        
        
          numsent++;
        
        
          }
        
        
          for(i=0;i<crows;i++)
        
        
          {
        
        
          MPI_Recv(ans, ccols, MPI_INT, MPI_ANY_SOURCE,
        
        
          MPI_ANY_TAG, MPI_COMM_WORLD, &status);
        
        
          sender = status.MPI_SOURCE;
        
        
          anstype = status.MPI_TAG;
        
        
          for(j=0;j<ccols;j++)
        
        
          {
        
        
          C[anstype][j] = ans[j];
        
        
          }