/* mess.c */ #include #include #include "mpi.h" #define BUF_SIZE 1000 int main(int argc, char* argv[]) { int my_rank, npes; char *sendbuf, *recvbuf; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &npes); MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); sendbuf = malloc(BUF_SIZE); recvbuf = malloc(BUF_SIZE); if (my_rank==0) { MPI_Send(sendbuf, BUF_SIZE, MPI_CHAR, 1, 0, MPI_COMM_WORLD); MPI_Recv(recvbuf, BUF_SIZE, MPI_CHAR, 1, 0, MPI_COMM_WORLD,&status); } if (my_rank==1) { MPI_Send(sendbuf, BUF_SIZE, MPI_CHAR, 0, 0,MPI_COMM_WORLD); MPI_Recv(recvbuf, BUF_SIZE, MPI_CHAR, 0, 0,MPI_COMM_WORLD,&status); } free(recvbuf); free(sendbuf); printf(" *** PE %d done \n", my_rank); MPI_Finalize(); return 0; }