#include "mpi.h" #include int main(int argc, char **argv) { int myid, i, comm_size; float *a, b[3]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &comm_size); b[0] = myid * 1; b[1] = myid * 2; b[2] = myid * 3; if (myid == 0) { a = (float*) malloc(100 * sizeof(float)); } MPI_Gather(b, 3, MPI_FLOAT, a, 3, MPI_FLOAT, 0, MPI_COMM_WORLD); /* wypisanie tablicy i zwolnienie pamieci w procesie 0 */ if (myid == 0) { for(i = 0; i < comm_size * 3; i++) printf("a[%d] = %f\n", i, a[i]); free(a); } MPI_Finalize(); return 0; }