MPI-2.2 Distributed Graph Topology Page

This page serves as help for using and implementing the MPI-2.2 graph topology. It hosts reference implementations for MPI implementors as well as hints and helper libraries for MPI users.

Reference Implementations

This page hosts two reference implementations. The first one can be used to collect all data to every host with low overheads. This method is non-scalable, but can be used if an implementation requires to use the old MPI-1 interface (for example, for optimized graph mappings). The code is available in: virtual_graph.c - (6.13 kb) . The scalable interface is available in: virtual_graph_scal.cpp - (9.07 kb) .

The MPIParMETIS Library

The MPIParMETIS library can be used to directly convert ParMETIS partitions into MPI-2.2 remapped topologies.Using this library, the user can achieve optimized mappings "for free" after the partitioning step and before the data redistribution/balance phase. See MPIParMETIS for more information and source-code download.


[1] T. Hoefler, R. Rabenseifner, H. Ritzdorf, B. R. de Supinski, R. Thakur and J. L. Traeff:
 The Scalable Process Topology Interface of MPI 2.2 Concurrency and Computation: Practice and Experience. Vol 23, Nr. 4, pages 293-310, John Wiley & Sons, Ltd., ISSN: 1532-0634, Aug. 2010,