# 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.

## Info

gpmetis 5.1.0 February 2016