#include "mpi.h" #include #include int main (int argc, char *argv[]) { int position, i, j, a[2], myrank, num_proc; char buff[1000]; MPI_Status stat; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &num_proc ); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); if (myrank == 0) { /* SENDER CODE */ i = 1; j = 2; a[0] = 3; printf( "Proc %d: sending %u %u %u.th portion to proc 0.\n", myrank, i, j, a ); position = 0; MPI_Pack(&i, 1, MPI_INT, buff, 1000, &position, MPI_COMM_WORLD); MPI_Pack(&j, 1, MPI_INT, buff, 1000, &position, MPI_COMM_WORLD); MPI_Send( buff, position, MPI_PACKED, 1, 0, MPI_COMM_WORLD); } else /* RECEIVER CODE */ { MPI_Recv( a, 2, MPI_INT, 0, 0, MPI_COMM_WORLD,&stat); printf( "Proc %d: reciving %u %u %u.th portion to proc 0.\n", myrank, i, j, a[0] ); } MPI_Finalize(); return 0; }