/* file: gather.c compile: cc -64 gather.c -lmpi run: mpirun -np 4 ./a.out */ #include "mpi.h" main( argc, argv ) int argc; char **argv; { int myrank; int a[100]; int i, j; int x[8]; int n; MPI_Init( &argc, &argv ); MPI_Comm_rank( MPI_COMM_WORLD, &myrank ); MPI_Comm_size( MPI_COMM_WORLD, &n ); /* rank2 make: 2 3 4 5 6 7 8 9 rank0 make: 0 1 2 3 4 5 6 7 rank1 make: 1 2 3 4 5 6 7 8 rank3 make: 3 4 5 6 7 8 9 10 */ printf("rank%d make:", myrank); for (i=0; i<8; i++){ x[i]=myrank+i; printf(" %d", x[i]); } printf("\n"); MPI_Gather(x, 8, MPI_INT, a, 8, MPI_INT, 0, MPI_COMM_WORLD); /* rank0 gather: 0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 10 */ if (myrank == 0){ printf("rank0 gather:\n"); for (i=0; i