On Aug 23, 2011, at 3:32 AM, Hoang-Vu Dang wrote:
> Where could I find a detailed documentation about algorithms that has been using in Open MPI ?
Unfortunately, you probably won't.
> For example, I would like to answer following questions: how MPI_Algather operation is done? what is the complexity in term of the number of data send/receive given a number of node involved? what is the data structure behind ?. Same as for MPI_Alreduce etc..
All of OMPI's collectives are implemented as plugins under the ompi/mca/coll/ tree. There are several different plugins in that tree -- each one has its own directory (with the exception of "base", which is glue code for the whole collective algorithm framework).
You probably want to look in the "tuned" component for OMPI's current-generation algorithms (to be replaced soon, but that's what's mostly used today). "tuned" has many different algorithm implementations for each MPI collective, and uses sophisticated run-time checking to determine which to use.
So the answer to your original query -- how is the MPI_Allgather operation done? -- is, "it depends" on things like message size, number of peers, etc. :-)
For corporate legal information go to: