if (0 == rank) {
value = 17;
}
- printf("node %d has value %d before broadcast\n", rank, value);
MPI_Bcast(&value, 1, MPI_INT, 0, MPI_COMM_WORLD);
- printf("node %d has value %d after broadcast\n", rank, value);
+ if (value != 17) {
+ printf("node %d has value %d after broadcast\n", rank, value);
+ }
MPI_Barrier(MPI_COMM_WORLD);
if (0 == rank && !quiet)
> [rank 0] -> Tremblay
> [rank 1] -> Jupiter
> [rank 2] -> Fafard
-> node 1 has value 3 before broadcast
-> node 2 has value 3 before broadcast
-> node 0 has value 17 before broadcast
-> node 1 has value 17 after broadcast
-> node 2 has value 17 after broadcast
-> node 0 has value 17 after broadcast
> [rank 3] -> Ginette
> [rank 4] -> Bourassa
> [rank 5] -> Tremblay
-> node 1 has value 3 before broadcast
-> node 2 has value 3 before broadcast
-> node 3 has value 3 before broadcast
-> node 4 has value 3 before broadcast
-> node 5 has value 3 before broadcast
-> node 0 has value 17 before broadcast
-> node 3 has value 17 after broadcast
-> node 4 has value 17 after broadcast
-> node 2 has value 17 after broadcast
-> node 0 has value 17 after broadcast
-> node 5 has value 17 after broadcast
-> node 1 has value 17 after broadcast
# Another test
> [rank 9] -> Bourassa
> [rank 10] -> Tremblay
> [rank 11] -> Jupiter
-> node 1 has value 3 before broadcast
-> node 2 has value 3 before broadcast
-> node 3 has value 3 before broadcast
-> node 4 has value 3 before broadcast
-> node 5 has value 3 before broadcast
-> node 6 has value 3 before broadcast
-> node 7 has value 3 before broadcast
-> node 8 has value 3 before broadcast
-> node 9 has value 3 before broadcast
-> node 10 has value 3 before broadcast
-> node 11 has value 3 before broadcast
-> node 0 has value 17 before broadcast
-> node 3 has value 17 after broadcast
-> node 6 has value 17 after broadcast
-> node 4 has value 17 after broadcast
-> node 0 has value 17 after broadcast
-> node 9 has value 17 after broadcast
-> node 5 has value 17 after broadcast
-> node 10 has value 17 after broadcast
-> node 8 has value 17 after broadcast
-> node 7 has value 17 after broadcast
-> node 1 has value 17 after broadcast
-> node 11 has value 17 after broadcast
-> node 2 has value 17 after broadcast
value = rank + 1; /* easy to verify that sum= (size*(size+1))/2; */
- printf("[%d] has value %d\n", rank, value);
+ //printf("[%d] has value %d\n", rank, value);
MPI_Reduce(&value, &sum, 1, MPI_INT, MPI_SUM, root, MPI_COMM_WORLD);
MPI_Reduce(&value, &sum_mirror, 1, MPI_INT, MPI_SUM, root, MPI_COMM_WORLD);
> [rank 0] -> Tremblay
> [rank 1] -> Jupiter
> [rank 2] -> Fafard
-> [1] has value 2
-> [2] has value 3
-> [0] has value 1
> ** Scalar Int Test Result:
> [0] sum=6 ... validation ok.
> [0] min=1 ... validation ok.
> [rank 3] -> Ginette
> [rank 4] -> Bourassa
> [rank 5] -> Tremblay
-> [1] has value 2
-> [2] has value 3
-> [3] has value 4
-> [4] has value 5
-> [5] has value 6
-> [0] has value 1
> ** Scalar Int Test Result:
> [0] sum=21 ... validation ok.
> [0] min=1 ... validation ok.
> [rank 9] -> Bourassa
> [rank 10] -> Tremblay
> [rank 11] -> Jupiter
-> [1] has value 2
-> [2] has value 3
-> [3] has value 4
-> [4] has value 5
-> [5] has value 6
-> [6] has value 7
-> [7] has value 8
-> [8] has value 9
-> [9] has value 10
-> [10] has value 11
-> [11] has value 12
-> [0] has value 1
> ** Scalar Int Test Result:
> [0] sum=78 ... validation ok.
> [0] min=1 ... validation ok.