Zoltan and Zoltan2 are toolkits for solving combinatorial problems in scientific computing:
- data partitioning
- dynamic load balancing
- architecture-aware MPI task placement
- data ordering
- graph coloring
The Zoltan toolkit includes distributed-memory hypergraph and geometric partitioners, as well as interfaces to third-party libraries ParMETIS and Scotch. Zoltan also includes parallel graph coloring and graph ordering, as well as distributed data directories and communication plans. Zoltan’s data-neutral interface allows it to be used easily by a wide range of applications. Zoltan is written in C and uses MPI-only parallelism.
Zoltan2 is the next-generation successor to Zoltan. In addition to many features from Zoltan, Zoltan2’s new features include architecture-aware MPI task placement and MPI+OpenMP implementations of geometric partitioning. It serves as our testbed for algorithms that both run on and provide solutions appropriate for multi-core and GPU architectures. Zoltan2 is written in C++ (for seamless integration with Trilinos) and exploits MPI+X parallelism for some algorithms.
Usage and applications: Zoltan and Zoltan2 are distributed in Trilinos (more than 4800 downloads per year); Zoltan is also distributed as a standalone package (over 400 downloads per year). They are used in industry, academia, and all DOE national labs for unstructured applications such as multiphysics finite element codes, particle-based methods, crash simulation, electrical circuit simulations, linear solvers/preconditioners, and graph analytics. They are used in FASTMath tools Albany, ML/MueLu, MOAB, PAALS, PDSLin, PETSc, PHASTA, and PUMI.