#include #include #include #include "mpi.h" int main(int argc, char *argv[]) { int num_procs, myrank; double a[128], b[128]; int tag = 0, i; MPI_Status status; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &num_procs); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); for(i = 0; i < num_procs; i++) a[i] = (double)i; MPI_Alltoall((void *)&a, 1, MPI_DOUBLE, (void *)&b, 1, MPI_DOUBLE, MPI_COMM_WORLD); printf("Process %d:\n", myrank); for(i = 0; i < num_procs; i++) printf("a[%d] = %e, b[%d] = %e\n", i, a[i], i, b[i]); MPI_Finalize(); return EXIT_SUCCESS; }