odbior:
while (1) {
if(flag != 0){
MPI_Irecv(&res, 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &request);
flag = 0;
}
MPI_Test(&request, &flag, &status);
if (flag != 0) {
printf("recv : %d, slave : %d\n", res, status.MPI_SOURCE);
if (status.MPI_SOURCE != -1) sum += res;
flag = -1;
}
if (sum == 3) break;
printf("sum : %d\n", sum);
}
wysylanie
MPI_Send(&buf, 1, MPI_INT, 0, 0, MPI_COMM_WORLD);