HP MLIB User's Guide Vol. 2 7th Ed.

968 HP MLIB User’s Guide
mlib_METIS_PartGraphRecursive Partitions a graph
numflag Used to indicate which numbering scheme is used for
the adjacency structure of the graph. numflag can take
the following two values:
0—C-Style numbering is assumed that starts from 0
1—Fortran-style numbering is assumed that starts
from 1
nparts The number of parts to partition the graph.
options This is an array of 5 integers that is used to pass
parameters for the various phases of the algorithm. If
options[0]=0 then default values are used. If
options[0]=1 then the remaining 4 elements of options
are interpreted as follows:
options[1] Determines matching type. Possible values
are:
1—Random Matching (RM)
2—Heavy-Edge Matching (HEM)
3—Sorted Heavy-Edge Matching (SHEM)(Default)
Experiments have shown that both HEM and SHEM
perform quite well.
options[2] Determines the algorithm used during
initial partioning. Possible values are:
1—Region Growing (Default)
options[3] Determines the algorithm used for
refinement. Possible values are:
1—Early-Exit Boundary FM refinement (Default)
options[4] Used for debugging purposes. Always set it
to 0 (Default)
edgecut Upon successful completion, this variable stores the
number of edges that are cut by the partition.
part This is a vector of size n that upon successful
completion stores the partition vector of the graph. The
numbering of this vector starts from either 0 or 1,
depending on the value of numflag.
Notes This function should be used to partition a graph into a small number of
partitions (less than 8). If a large number of partitions is desired, the
mlib_METIS_PartGraphKway routine should be used instead, as it is
significantly faster.