Skip to main content
`Ctrl`+`K`

# PETSCPARTITIONERMULTISTAGE

“multistage” - A `PetscPartitioner` object using a multistage distribution strategy

## Options Database Keys

- -petscpartitioner_multistage_strategy strategy - Either `PETSCPARTITIONER_MS_STRATEGY_NODE`, or `PETSCPARTITIONER_MS_STRATEGY_MSECTION`

- -petscpartitioner_multistage_node_size nranks - Number of processes per computing node (or `PETSC_DECIDE`)

- -petscpartitioner_multistage_node_interleaved (true|false) - Assign ranks round-robin.

- -petscpartitioner_multistage_msection splits - Number of splits per level in recursive m-section splits (use `2` for bisection)

- -petscpartitioner_multistage_tpwgts (true|false) - Use target partition weights in stage partitioner

## Notes

The default multistage strategy use `PETSCPARTITIONER_MS_STRATEGY_NODE` and automatically discovers node information using `MPI_Comm_split_type`. `PETSCPARTITIONER_MS_STRATEGY_MSECTION` is more for testing purposes.

Options for single stage partitioners are prefixed by `-petscpartitioner_multistage_levels_`. For example, to use parmetis in all stages, `-petscpartitioner_multistage_levels_petscpartitioner_type parmetis`

## See Also

`PetscPartitionerType`, `PetscPartitionerCreate()`, `PetscPartitionerSetType()`

## Level

intermediate

## Location

src/dm/partitioner/impls/multistage/mspart.c

Index of all MatGraphOperations routines
Table of Contents for all manual pages
Index of all manual pages