#include "mpi.h" #include int main(argc,argv) int argc; char *argv[]; { int numtasks, rank,rc,i; MPI_Status stat; char inmsg[20],outmsg[20]={"from node"}; rc = MPI_Init(&argc,&argv); if(rc!=0){printf("error in mpi initialization\n"); MPI_Abort(MPI_COMM_WORLD,rc); } MPI_Comm_size(MPI_COMM_WORLD,&numtasks); MPI_Comm_rank(MPI_COMM_WORLD,&rank); if (rank == 0) { for (i=1; i< numtasks; i++) { MPI_Send(outmsg,20,MPI_CHARACTER,i,i,MPI_COMM_WORLD); MPI_Recv(inmsg,20,MPI_CHARACTER,i,i,MPI_COMM_WORLD,&stat); printf("rank = %d, recved %s %d\n",rank,inmsg,i); } } else { MPI_Recv(inmsg,20,MPI_CHARACTER,0,rank,MPI_COMM_WORLD,&stat); printf("rank = %d, recved %s \n",rank,inmsg); MPI_Send(outmsg,20,MPI_CHARACTER,0,rank,MPI_COMM_WORLD); } MPI_Finalize(); }