Ethernet BTL eth
Create MPI-2.2 Graph Topologies from ParMETIS partitions!|
MPIParMETIS is a prototypic library which assists developers of parallel
applications to use the scalable graph topology interface in MPI-2.2.
The library offers several calls which accept output of the ParMETIS
library and create (potentially reordered) MPI-2.2 graph topologies in a
Download the MPIParMETIS Library
These versions of the library are available:
Note: The library is a prototype and likely to contain bugs! Please contact me if you find bugs and/or submit patches
Building the Library
- edit the Makefile.in and adjust it to your system (MPICC, PARMETIS_HOME, etc.)
- include "mpiparmetis.h" in your program (you can remove mpi.h and parmetis.h)
- link the program with "libmpiparmetis.a" (-lmpiparmetis)
Testing the Library
The subdirectory parmetis_test contains the ptest program which is supplied with the ParMETIS distribution.
It has been changed to create a graph topology for each of the tests that are run. In order to test the implementation,
compile ptest with "make" and run it with different numbers of processes and "rotor.graph" as input file.
Using the Library
Call ParMETIS as described on in the ParMETIS
manual. Then pass the input graph specification to MPIX_Graph_create_parmetis_unweighted().
Currently, only unweighted k-way partitioning (ParMETIS_V3_PartKway()
and ParMETIS_V3_PartGeomKway()) is supported by the library. The call
MPIX_Graph_create_parmetis_unweighted() accepts the parameters:
and creates a new graph topology communicator with potentially reordered ranks.
- idxtype *vtxdist: vertex distribution, identical to ParMETIS input
- idxtype *xadj, *adjncy: graph description, identical to ParMETIS input
- numflag: numbering scheme ('0' or '1', see ParMETIS distribution, '1' has not been tested yet)
- idxtype *part: graph partition, identical to ParMETIS output
- MPI_Comm *comm, *newcomm: input and output (graph topology) communicators
MPI-2.2 capable MPI Implementations
MPI-2.2 is a fairly recent standard and there are only few MPI-capable
implementations. All tests for the software have been performed with
MPICH2 (revision r5551).