Konstantinos,

I am afraid there is some confusion here.


the plm_rsh_no_tree_spawn is only used at startup time (e.g. when remote launching one orted daemon per node but the one running mpirun).

there is zero impact on the performances of MPI communications such as MPI_Bcast()


the coll/tuned module select the broadcast algorithm based on communicator and message sizes.
you can manually force that with

mpirun --mca coll_tuned_use_dynamic_rules true --mca coll_tuned_bcast_algo <algo> ./my_test

where <algo> is the algo number as described by ompi_info --all

         MCA coll tuned: parameter "coll_tuned_bcast_algorithm" (current value: "ignore", data source: default, level: 5 tuner/detail, type: int)                           Which bcast algorithm is used. Can be locked down to choice of: 0 ignore, 1 basic linear, 2 chain, 3: pipeline, 4: split binary tree, 5: binary tree, 6: binomial tree.                           Valid values: 0:"ignore", 1:"basic_linear", 2:"chain", 3:"pipeline", 4:"split_binary_tree", 5:"binary_tree", 6:"binomial"

for some specific communicator and message sizes, you might experience better performances. you also have the option to write your own rules (e.g. which algo should be used based on communicator and message sizes) if you are not happy with the default rules.
(that would be with the coll_tuned_dynamic_rules_filename MCA option)

note coll/tuned does not take the topology (e.g. inter vs intra node communications) into consideration when choosing the algorithm.


Cheers,

Gilles

On 10/17/2017 3:30 PM, Konstantinos Konstantinidis wrote:
I have implemented some algorithms in C++ which are greatly affected by shuffling time among nodes which is done by some broadcast calls. Up to now, I have been testing them by running something like

mpirun -mca btl ^openib -mca plm_rsh_no_tree_spawn 1 ./my_test

which I think make MPI_Bcast to work serially. Now, I want to improve the communication time so I have configured the appropriate SSH access from every node to every other node and I have enabled the binary tree implementation of Open MPI collective calls by running

mpirun -mca btl ^openib ./my_test

My problem is that throughout various experiments with files of different sizes, I realized that there is no improvement in terms of transmission time even though theoretically I would expect a gain of approximately (log(k))/(k-1) where k is the size of the group that the communication takes place within.

I compile the code with

mpic++ my_test.cc -o my_test

and all of the experiments are done on Amazon EC2 r3.large or m3.large machines. I have also set different values of rate limits to avoid bursty behavior of Amazon's EC2 transmission rate. The Open MPI I have installed is described on the txt I have attached after running ompi_info.

What can be wrong here?


_______________________________________________
users mailing list
users@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/users

_______________________________________________
users mailing list
users@lists.open-mpi.org
https://lists.open-mpi.org/mailman/listinfo/users

Reply via email to