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);