More or less. Open MPI supports 6 algorithms: basic linear, chain, pipeline, split binary tree, binary tree, binomial tree.
The decision to switch between them is somehow similar to what you describe for MPICH but more complex it depends on the number of nodes in the communicator and the size of the data (look in ompi/ompi/mca/coll/tuned/coll_tuned_decision_fixed.c for more info). However, the current switch decision points have been built based on the IB 20G latency and bandwidth properties.
On Sep 21, 2012, at 02:13 , Mohammed El Mehdi DIOURI <mehdi.diouri_at_[hidden]> wrote:
> I would like to know what are the algorithms used in MPI_BCast() in the OpenMPI implementation.
> For example, in MPICH2, depending on the number of processes and the size of data to broadcast, the broadcasting algorithm used can be different : a binomial tree if the message is short or MPI_Scatter followed by MPI_AllGather if the message to broadcast is long.
> Is it the same for OpenMPI ?
> It doesn't seem to be the case since the broadcasting time is different when I use OpenMPI or MPICH2.
> Thanks for your help,
> users mailing list