|
Zoltan2 Version of the Day
|
Information specifically for developers can be found at Developers' Notes.
Zoltan2 is a complete refactoring of the 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 available now is:
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.
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 parameterse.
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.
Examples include the following:
Zoltan2 is part of the Trilinos framework and requires several of the other Trilinos libraries to build.
Zoltan2 configuration refers to these CMake directives:
Trilinos_ENABLE_OpenMP explain Trilinos_ENABLE_Zoltan if enabled Zoltan2 will build a test that compares the performance of Zoltan1 and Zoltan2 Zoltan2_ENABLE_Experimental if enabled, code which is still under development will be available for use Explicit Instantiation if explicit instantiation is on, all Zoltan2 tests will be compiled with the instantiated types Zoltan2_ENABLE_METIS etc Zoltan2_ENABLE_PaToH etc Zoltan2_ENABLE_ParMETIS etc Zoltan2_ENABLE_Scotch etc Zoltan2_ENABLE_OVIS etc Zoltan2_ENABLE_AMD etc etc Zoltan2_ENABLE_ANASAZI etcThese are some of the compilation flags used by Zoltan2:
Z2_OMIT_ALL_STATUS_MESSAGES The debug_level parameter controls the verbosity of status messages. When compiled with this option, the checks for debug_level are bypassed and all status output code is ignored. Z2_OMIT_ALL_PROFILING Checks are done at runtime to determine whether any of the memory or timer parameters were set, prior to checking memory in use or to start or stop a ttimer. When compiled with this option, those checks are bypassed. Z2_OMIT_ALL_ERROR_CHECKING The error_check_level parameter controls the amount of error checking done at runtime. When this flag is set, all error checking code is compiled out.
1.7.4