NEC

MathKeisan User's Guide


METIS and ParMETIS

Introduction

METIS is a library for partitioning and ordering matrices and graphs. It is used by Solver to reorder the original matrix to reduce fill-ins in the factored matrix.

ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs and for computing fill-reducing orderings of sparse matrices.

The ParMETIS in MathKeisan is based on the original version 3.1 developed at University of Minnesota and Army HPC research center by George Karypis and Vipin Kumar.

User Interface

User interface information is available from several sources:

METIS Routine List

Name Description
METIS_PartGraphRecursive Partition mesh using multilevel recursive bisection.
METIS_PartGraphKway Partition mesh using multilevel k-way partitioning to minimize edge cut.
METIS_PartGraphVKway Partition mesh using multilevel k-way partitioning to minimize communication volume.
METIS_mCPartGraphRecursive Partition mesh using multi-constraint multilevel recursive bisection to minimize edge cut.
METIS_mCPartGraphKway Partition mesh using multi-constrained multilevel k-way partitioning algorithm to minimize edge-cut.
METIS_WPartGraphRecursive PartGraphRecursive with prescribed partition weights.
METIS_WPartGraphKway PartGraphKway with prescribed partition weights.
METIS_WPartGraphVKway PartGraphVKway with prescribed partition weights.
METIS_PartMeshNodal Converts mesh to nodal graph, then uses METIS_PartGraphKway.
METIS_PartMeshDual Converts mesh to dual graph, then uses METIS_PartGraphKway.
METIS_EdgeND Computes fill reducing ordering of sparse matrices using multilevel nested dissection algorithm. Use only for large matrices from 3-d finite elements.
METIS_NodeND Computes fill reducing ordering of sparse matrices using multilevel nested dissection algorithm. Generally preferred over METIS_EdgeND.
METIS_NodeWND Similar to METIS_NodeWND, but assumes compression performed prior to calling this routine.
METIS_MeshToNodal Converts mesh to nodal graph.
METIS_MeshToDual Converts mesh to dual graph.
METIS_EstimateMemory Estimates amount of memory that will be used by Metis.

ParMETIS Routine List

Name Description
ParMETIS_PartKway Compute p-way partition of graph on p processors using multilevel k-way partitioning algorithm
ParMETIS_PartGeomKway Compute p-way partition of graph on p processors combining coordinate-based partitioning and multilevel k-way partitioning algorithm.
ParMETIS_PartGeom Compute p-way partition of graph on p processors using coordinate-based space-filling curves.
ParMETIS_RepartLDiffusion  Balance work load of graph corresponding to mesh that has been adaptively refined. Utilizes a diffusive scheme based on local load-imbalance information.
ParMETIS_RepartGDiffusion Balance work load of graph corresponding to mesh that has been adaptively refined. Utilizes a diffusive scheme based on global load-imbalance information.
ParMETIS_RepartRemap Balance work load of graph corresponding to mesh that has been adaptively refined. Based on new p-way partitioning and intelligently mapping it to the original partitioning so the migration cost is minimized.
ParMETIS_RepartMLRemap Balance work load of graph corresponding to mesh that has been adaptively refined. Based on new p-way partitioning of coarsest graph, intelligently mapping it to original partitioning so migration cost is minimized, then refining using multilevel paradigm.
ParMETIS_RefineKway Improve quality of existing p-way partition on p processors using multilevel p-way refinement algorithm.
ParMETIS_NodeND Compute fill-reducing ordering of matrix using multilevel nested dissection.

Further Reading

  1. G. Karypis and V. Kumar. "METIS: A Software Package for Partitioning Unstructured Graphs, Partitioning Meshes, and Computing Fill-Reducing Orderings of Sparse Matrices." Univ. MN., 1998.
  2. G. Karypis, K. Schloegel and V. Kumar. ParMETIS: Parallel Graph Partitioning and Sparse Matrix Ordering Library." Univ MN., 2003.
  3. METIS Home Page