int segment = flattree_segment_in_byte / extent;
int pipe_length = count / segment;
int increment = segment * extent;
-
+ if (pipe_length==0) {
+ XBT_WARN("MPI_bcast_flattree_pipeline use default MPI_bcast_flattree.");
+ return smpi_coll_tuned_bcast_flattree(buff, count, data_type, root, comm);
+ }
rank = smpi_comm_rank(comm);
num_procs = smpi_comm_size(comm);
int main(int argc, char **argv)
{
int i, size, rank;
+ int count = 2048;
int *values;
int status;
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
- values = (int *) xbt_malloc(size * sizeof(int));
+ values = (int *) xbt_malloc(count * sizeof(int));
- for (i = 0; i < size; i++)
+ for (i = 0; i < count; i++)
values[i] = (0 == rank) ? 17 : 3;
- status = MPI_Bcast(values, size, MPI_INT, 0, MPI_COMM_WORLD);
+ status = MPI_Bcast(values, count, MPI_INT, 0, MPI_COMM_WORLD);
- printf("[%d] values=[", rank);
- for (i = 0; i < size; i++)
- printf("%d ", values[i]);
- printf("]\n");
+ int good = 0;
+ for (i = 0; i < count; i++)
+ if (values[i]==17) good++;
+ printf("[%d] number of values equals to 17: %d\n", rank, good);
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)
-> [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 ]
-
+> [0] number of values equals to 17: 2048
+> [1] number of values equals to 17: 2048
+> [2] number of values equals to 17: 2048
+> [3] number of values equals to 17: 2048
+> [4] number of values equals to 17: 2048
+> [5] number of values equals to 17: 2048
+> [6] number of values equals to 17: 2048
+> [7] number of values equals to 17: 2048
+> [8] number of values equals to 17: 2048
+> [9] number of values equals to 17: 2048
+> [10] number of values equals to 17: 2048
+> [11] number of values equals to 17: 2048
+> [12] number of values equals to 17: 2048
+> [13] number of values equals to 17: 2048
+> [14] number of values equals to 17: 2048
+> [15] number of values equals to 17: 2048