Zoltan2  Version of the Day
Trilinos/Zoltan2: Load Balancing and Combinatorial Scientific Computing.

Contents


Information specifically for developers can be found at Developers' Notes.


Introduction to Zoltan2

Zoltan2 is a package for partitioning, load balancing and combinatorial scientific computing. It can be vieweed as a complete refactoring of the well known Zoltan library into C++ in order to support template programming, to scale to larger problems, and to support architecture aware partitioning. This library is currently under active development.

Partitioning functionality that is available now is:

Serial ordering currently available:


Overview of the library usage

Basic partitioning

Here we describe the typical user interaction with Zoltan2. We use partitioning as an example.

  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::MeshInput will be available soon.

  1. 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 z2_parameters for a detailed list of parameterse.
  2. Create a Zoltan2::PartitioningProblem. It is templated on your Zoltan2::InputAdapter type. The constructor arguments are typically your input adapter and your parameter list.
  3. Call Zoltan2::PartitioningProblem::solve().
  4. Obtain a Zoltan2::PartitioningSolution object from the Zoltan2::PartitioningProblem.

Obtaining partition quality

Repartitioning


Partitioning examples

Examples include the following:


Building Zoltan2

Zoltan2 is part of the Trilinos framework and requires several of the other Trilinos libraries to build.

Zoltan2 configuration refers to these CMake directives:

These are some of the compilation flags used by Zoltan2: