#include #include #include #include int main(int argc, char **argv) { int rank, size; int i, j; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); for (i = 0; i < size; ++i) { if (i == rank) { for (j = 0; j < size; ++j) { if (j == rank) continue; printf("recv from %d\n", j); MPI_Recv(NULL, 0, MPI_INT, j, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE); } } else { printf("send to %d\n", i); MPI_Send(NULL, 0, MPI_INT, i, 0, MPI_COMM_WORLD); } } MPI_Finalize(); return 0; }