/* // root broadcast the array to all processes */ #include #include #define SIZE 10 main( int argc, char** argv) { int my_rank; // the rank of each proc int array[SIZE]; int root = 0; // the rank of root int i; MPI_Comm comm = MPI_COMM_WORLD; MPI_Init(&argc, &argv); MPI_Comm_rank(comm, &my_rank); if (my_rank == 0) { for (i = 0; i < SIZE; i ++) { array[i] = i; } } else { for (i = 0; i < SIZE; i ++) { array[i] = 0; } } printf("Proc %d: (Before Broadcast) ", my_rank); for (i = 0; i < SIZE; i ++) { printf("%d ", array[i]); } printf("\n"); MPI_Bcast(array, SIZE, MPI_INT, root, comm); printf("Proc %d: (After Broadcast) ", my_rank); for (i = 0; i < SIZE; i ++) { printf("%d ", array[i]); } printf("\n"); MPI_Finalize(); return 0; }