All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Partitioning and Load-Balancing


Overview of Partitioning with Zoltan2

Here we describe a typical way a user might use Zoltan2 for partitioning.

  1. Create a Zoltan2::InputAdapter object for your data. This adapter provides a uniform interface to user data for the Zoltan2 library. Adapter interfaces exist for the following classes of data:
    • Zoltan2::MatrixInput (a row oriented matrix with optional row weights)
    • Zoltan2::GraphInput (an undirected weighted graph)
    • Zoltan2::VectorInput (a single or multi-vector with optional weights, also used for geometric coordinates)
    • Zoltan2::IdentifierInput (simple collection of identifiers)
    • Zoltan2::MeshInput: available soon.
  2. Create a Teuchos::ParameterList with your Zoltan2 parameters. If you are using a third party library (PT-Scotch, ParMetis) you can include a sublist of parameters for this library. See Zoltan2 Parameters for a detailed list of parameters.
  3. Create a Zoltan2::PartitioningProblem. It is templated on your Zoltan2::InputAdapter type. The constructor arguments are typically your input adapter and your parameter list.
  4. Call Zoltan2::PartitioningProblem::solve().
  5. Obtain a Zoltan2::PartitioningSolution object from the Zoltan2::PartitioningProblem using the getSolution() function.

Partitioning Functionality

Partitioning functionality that is available now is:

These algorithms are all parallel.

Partitioning Examples

Examples include the following:

Obtaining partition quality