int main(int argc, char **argv)
{
- int size, rank;
- int value = 3;
+ int i, size, rank;
+ int *values;
int status;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
+
+ values = (int *) xbt_malloc(size * sizeof(int));
- if (0 == rank) {
- value = 17;
- }
- status = MPI_Bcast(&value, 1, MPI_INT, 0, MPI_COMM_WORLD);
- printf("node %d has value %d after broadcast\n", rank, value);
+ for (i = 0; i < size; i++)
+ values[i] = (0 == rank) ? 17 : 3;
+
+ status = MPI_Bcast(values, size, MPI_INT, 0, MPI_COMM_WORLD);
+
+ printf("[%d] values=[", rank);
+ for (i = 0; i < size; i++)
+ printf("%d ", values[i]);
+ printf("]\n");
MPI_Barrier(MPI_COMM_WORLD);
> [rank 14] -> Bourassa
> [rank 15] -> Tremblay
> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
-> node 0 has value 17 after broadcast
-> node 1 has value 17 after broadcast
-> node 2 has value 17 after broadcast
-> node 3 has value 17 after broadcast
-> node 4 has value 17 after broadcast
-> node 5 has value 17 after broadcast
-> node 6 has value 17 after broadcast
-> node 7 has value 17 after broadcast
-> node 8 has value 17 after broadcast
-> node 9 has value 17 after broadcast
-> node 10 has value 17 after broadcast
-> node 11 has value 17 after broadcast
-> node 12 has value 17 after broadcast
-> node 13 has value 17 after broadcast
-> node 14 has value 17 after broadcast
-> node 15 has value 17 after broadcast
-
+> [0] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [1] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [2] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [3] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [4] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [5] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [6] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [7] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [8] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [9] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [10] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [11] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [12] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [13] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [14] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]
+> [15] values=[17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 ]