Life would be so much easier if only we had the source code...
Home -> Research -> MPI Topologies
NB Collectives
    MPI Topologies
    MPI Datatypes
    Network Topologies
    Ethernet BTL eth
    Older Projects
  Full CV [pdf]


  Past Events

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] Torsten Hoefler, Rolf Rabenseifner, H. Ritzdorf, Bronis R. de Supinski, Rajeev Thakur and Jesper Larsson Träff:
 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,

serving:© Torsten Hoefler