Documentation Index
Fetch the complete documentation index at: https://mintlify.com/KarypisLab/ParMETIS/llms.txt
Use this file to discover all available pages before exploring further.
ParMETIS_V32_NodeND is an extended variant of ParMETIS_V3_NodeND that exposes fine-grained control over the nested dissection algorithm. It accepts explicit parameters for matching strategy, separator refinement type, the number of parallel and serial bisection separators to evaluate, load imbalance tolerance, random seed, and debug output level. Use this function when the defaults of ParMETIS_V3_NodeND do not produce the desired ordering quality or reproducibility.
Parameters
Distribution of vertices across processes.
vtxdist[i] is the global index of the first vertex on process i. Size npes + 1; must be identical on all processes.Local adjacency row pointers in CSR format. Size
local_nvtxs + 1.Local adjacency column indices in CSR format. Size
xadj[local_nvtxs].Vertex weights used for separator balance. One value per vertex. May be
NULL to use unit weights.Indexing convention.
0 for C-style 0-based indexing; 1 for Fortran-style 1-based indexing.Matching type for coarsening.
PARMETIS_MTYPE_LOCAL (1) restricts matching to vertices owned by the same process. PARMETIS_MTYPE_GLOBAL (2) allows matching with vertices on remote processes, which can improve coarsening quality at the cost of additional communication.Separator refinement type.
PARMETIS_SRTYPE_GREEDY (1) refines the separator by visiting vertices from highest to lowest gain. PARMETIS_SRTYPE_2PHASE (2) performs two-phase refinement, using greedy in the second phase, which can produce better separators.Number of different parallel bisection separators to compute at each level of the nested dissection. The best separator among all trials is selected. Higher values improve separator quality at the cost of increased runtime.
Number of different serial bisection separators to compute when the subgraph is small enough to be processed on a single process. Higher values improve quality at the cost of runtime.
Maximum allowed ratio of the larger to the smaller side of each bisection. Controls load imbalance during the nested dissection. For example,
1.05 allows at most a 5% imbalance between the two halves.Random number seed for reproducibility. Using the same seed on the same graph and communicator produces the same ordering.
Debug output level. Combine
PARMETIS_DBGLVL_* constants with bitwise OR. Use 0 for no output. Available flags include PARMETIS_DBGLVL_TIME (1), PARMETIS_DBGLVL_INFO (2), PARMETIS_DBGLVL_PROGRESS (4), PARMETIS_DBGLVL_REFINEINFO (8), and PARMETIS_DBGLVL_MATCHINFO (16).Output. Fill-reducing permutation array.
order[i] is the new global index assigned to global vertex i. The caller must allocate this array with at least total_nvtxs elements.Output. Separator sizes for the nested dissection tree. Array of size
2 * npes. Describes the vertex counts in each separator and subgraph, enabling parallel factorization scheduling.Pointer to the MPI communicator covering all participating processes.
Return value
ReturnsMETIS_OK (1) on success. Any other value indicates an error.