# gpmetis man page

gpmetis ā Partitions a graph into a specified number of parts.

## Synopsis

**gpmetis** [*options*] *graphfile nparts*

## Description

Required parameters

- graphfile
Stores the graph to be partitioned.

- nparts
The number of partitions to split the graph.

Optional parameters

**-ptype**=*string*

Specifies the scheme to be used for computing the k-way partitioning. The possible values are:

- rb
- Recursive bisectioning

- kway
- Direct k-way partitioning [default]

**-ctype**=*string*

Specifies the scheme to be used to match the vertices of the graph during the coarsening. The possible values are:

- rm
- Random matching

- shem
- Sorted heavy-edge matching [default]

**-iptype**=*string* [applies only when **-ptype**=*rb]*

Specifies the scheme to be used to compute the initial partitioning of the graph. The possible values are:

- grow
- Grow a bisection using a greedy scheme [default for ncon=1]

- random
- Compute a bisection at random [default for ncon>1]

**-objtype**=*string* [applies only when **-ptype**=*kway]*

Specifies the objective that the partitioning routines will optimize. The possible values are:

- cut
- Minimize the edgecut [default]

- vol
- Minimize the total communication volume

**-no2hop**Specifies that the coarsening will not perform any 2-hop matchings when the standard matching fails to sufficiently contract the graph.

**-contig**[applies only when**-ptype**=*kway]*Specifies that the partitioning routines should try to produce partitions that are contiguous. Note that if the input graph is not connected this option is ignored.

**-minconn**[applies only when**-ptype**=*kway]*Specifies that the partitioning routines should try to minimize the maximum degree of the subdomain graph, i.e., the graph in which each partition is a node, and edges connect subdomains with a shared interface.

**-tpwgts**=*filename*Specifies the name of the file that stores the target weights for each partition. By default, all partitions are assumed to be of the same size.

**-ufactor**=*int*Specifies the maximum allowed load imbalance among the partitions. A value of x indicates that the allowed load imbalance is 1+x/1000. For ptype=rb, the load imbalance is measured as the ratio of the 2*max(left,right)/(left+right), where left and right are the sizes of the respective partitions at each bisection. For ptype=kway, the load imbalance is measured as the ratio of max_i(pwgts[i])/avgpwgt, where pwgts[i] is the weight of the ith partition and avgpwgt is the sum of the total vertex weights divided by the number of partitions requested. For ptype=rb, the default value is 1 (i.e., load imbalance of 1.001). For ptype=kway, the default value is 30 (i.e., load imbalance of 1.03).

**-ubvec**=*string*Applies only for multi-constraint partitioning and specifies the per constraint allowed load imbalance among partitions. The required parameter corresponds to a space separated set of floating point numbers, one for each of the constraints. For example, for three constraints, the string can be "1.02 1.2 1.35" indicating a desired maximum load imbalance of 2%, 20%, and 35%, respectively. The load imbalance is defined in a way similar to ufactor. If supplied, this parameter takes priority over ufactor.

**-niter**=*int*Specifies the number of iterations for the refinement algorithms at each stage of the uncoarsening process. Default is 10.

**-ncuts**=*int*Specifies the number of different partitionings that it will compute. The final partitioning is the one that achieves the best edgecut or communication volume. Default is 1.

**-nooutput**Specifies that no partitioning file should be generated.

**-seed**=*int*Selects the seed of the random number generator.

**-dbglvl**=*int*Selects the dbglvl.

**-help**Prints this message.