#include #include #include #include $input int NPROCS = 3; CMPI_Gcomm __MPI_COMM_WORLD; void MPI_Process(int place){ MPI_Comm MPI_COMM_WORLD = CMPI_Comm_create($here, __MPI_COMM_WORLD, place); int nprocs, rank, msg; MPI_Status status; __MPI_Sys_status__ _my_status = __UNINIT; $assert _my_status == __UNINIT; __MPI_Init(); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); if(rank != 0){ msg = rank; MPI_Send(&msg, 1, MPI_INT, 0, 1, MPI_COMM_WORLD); } else{ int source; msg = -1; printf("I'm process %d :\n", rank); MPI_Recv(&msg, 1, MPI_INT, $COMM_ANY_SOURCE, 1, MPI_COMM_WORLD, &status); MPI_Recv(&msg, 1, MPI_INT, 1, 1, MPI_COMM_WORLD, &status); } CMPI_Comm_destroy(MPI_COMM_WORLD); } void main(){ $proc procs[NPROCS]; __MPI_COMM_WORLD = CMPI_Gcomm_create($root, NPROCS); for(int i=0; i