ParMETIS - Parallel Graph Partitioning and Fill-reducing Matrix Ordering

History of Changes

Ver: 3.1.1, November 2008
  • Fixed a number of bugs that have been reported over the years. The following tasks correspond to the issues reported at http://glaros.dtc.umn.edu/flyspray.
    • Flyspray Task 8: Fixed deallocation of user-supplied vsize.
    • Flyspray Task 28: Fixed ParMETIS_V3_Mesh2Dual static arrays.
    • Flyspray Task 30: Fixed 1025 instead of 1024 buckets.
    • Flyspray Task 34: Fixed writting past wspace->core for certain cases.
    • Flyspray Task 35: Fixed issues associated with assumed 0-based indexing.
    • Flyspray Task 36: Fixed mesh 1->0 numbering error.
  • Fixed non-utilization of the user-supplied seed for the parallel ordering code.
Ver: 3.1.0, August 2003
  • The mesh partitioning and dual creation routines have changed to support mixed element meshes.
  • The parmetis.h header file has been restructured and is now C++ friendly.
  • Fortran bindings/renamings for various routines have been added.
  • A number of bugs have been fixed:
    • tpwgts are now respected for small graphs.
    • fixed various divide by zero errors.
    • removed dependency on the old drand48() routines.
    • fixed some memory leaks.
Ver: 3.0.0, March 2002
  • The names and calling sequence of all the routines have changed due to expanded functionality that has been provided in this release.
  • The various adaptive repartitioning routines  have been replaced by a single routine called ParMETIS_V3_AdpativeRepart that implements a unified repartitioning algorithm which combines the best features of the previous routines.
  • Multiple vertex weights/balance constraints are supported for most of the routines. This allows ParMETIS to be used to partition graphs for multi-phase and multi-physics simulations.
  • Support for different speed processors is provided by being able to specify the target sub-domain weights for each of the sub-domains and for each balance constraint.
  • The number of sub-domains has been de-coupled from the number of processors in both the static and the adaptive partitioning schemes.
  • Routines are provided for both directly partitioning a finite element mesh, and for constructing the dual graph of a mesh in parallel.
Ver: 2.0.0, September 1998
  • The names and calling sequence of all the routines have changed to make it easier to call the various routines from Fortran programs. Note that for this release, the old routine names and calling sequences are still supported.
  • The directed diffusion algorithm has been modified to use the better performing wavefront formulation.
  • Two new adaptive repartitioning routines have been added that are based on the remapping paradigm.
  • The number of partitions has been decoupled from the number of processors. you can now use the parallel partitioning algorithms to compute a k-way partitioning independent of the number of processors that you use.
  • The partitioning and ordering algorithms in ParMETIS now utilize portions of the serial METIS library. As a result of this, the quality of the produced partitionings and orderings have been improved.
Ver: 1.0.0, March 1997
  • Added partitioning routines that take advantage of coordinate information. These routines are based on space-filling curves and they are used to quickly compute a initial distribution for PARKMETIS. A total of three routines have been added called PARGKMETIS, PARGRMETIS, and PARGMETIS.
  • Added a fill-reducing ordering routine that is based on multilevel nested dissection. This is similar to the ordering routine in the serial Metis with the difference that is directly computes and refines vertex separators. The new routine is called PAROMETIS and returns the new ordering of the local nodes plus a vector describing the sizes of the various separators that form the elimination tree.
  • Fixed a number of memory leaks.