Open MPI uses several different algorithms depending on which module from
the "coll" framework is selected to perform the logic of the broadcast
operation. The "tuned" module which usually gets selected on cluster
installations uses a heuristic rule, based on the message size and the size
of the communicator, to choose between building a pipeline, binomial tree or
split binary tree. There are also other algorithms that go unused by the
default rule logic, but you can force them with MCA parameters if you'd
The default rules might not be optimal for your hardware. You can reevaluate
each algorithm and create a rule file that you can then give to Open MPI.
That's what I'm doing now on our cluster.
Hristo Iliev, Ph.D. -- High Performance Computing
RWTH Aachen University, Center for Computing and Communication
Rechen- und Kommunikationszentrum der RWTH Aachen
Seffenter Weg 23, D 52074 Aachen (Germany)
Tel: +49 241 80 24367 -- Fax/UMS: +49 241 80 624367
> -----Original Message-----
> From: email@example.com [mailto:firstname.lastname@example.org]
> On Behalf Of Mohammed El Mehdi DIOURI
> Sent: Friday, September 21, 2012 2:13 AM
> To: email@example.com
> Cc: Mohammed El Mehdi DIOURI
> Subject: [OMPI users] Algorithms used in MPI_BCast
> 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
> use OpenMPI or MPICH2.
> Thanks for your help,
> users mailing list
users mailing list