Zoltan User's Guide | Next | Previous

## Graph partitioning: Jostle

Jostle is a library for graph (mesh) partitioning and load balancing developed at the University of Greenwich, London, UK, by Chris Walshaw [Jostle, Walshaw]. The parallel version of Jostle is sometimes called pjostle. In the Zoltan context, the name Jostle always refers to the parallel version of the library. The main algorithm used in Jostle is based on multilevel graph partitioning, and a diffusion-type method is available for repartitioning. Hence the Jostle library is very similar to ParMETIS. See the ParMETIS section for a brief description of graph partitioning as a model for load balancing.

At present, only the most common Jostle options are supported by Zoltan. These are briefly described below. For further details, see the documentation available from the Jostle home page. Other options may be added to Zoltan upon request.

Note that Jostle is not distributed with Zoltan. If you wish to use Jostle within Zoltan, you must first obtain a license for Parallel Jostle and install it on your system. The license is currently free for academic use. Zoltan has been tested only with parallel Jostle version 1.2.* and may be incompatible with other versions. Zoltan offers only limited support for Jostle and this may be discontinued in the future.

Value of LB_METHOD: | GRAPH
Value of GRAPH_PACKAGE: | Jostle
Parameters: |
JOSTLE_OUTPUT_LEVEL | Amount of output Jostle should produce. (integer)
JOSTLE_THRESHOLD | Threshold at which the graph contraction phase is stopped. (integer)
JOSTLE_GATHER_THRESHOLD | Duplicate coarse graph on all processors when there are fewer than this number of nodes. (integer)
JOSTLE_MATCHING | Matching algorithm for graph contraction. (Valid values are "local" and "global".)
JOSTLE_REDUCTION | When reduction is turned off, Jostle performs a diffusion-type algorithm instead of multilevel graph partitioning. (Valid values are "on" and "off".)
JOSTLE_CONNECT | Make a disconnected graph connected before partitioning. (Valid values are "on" and "off".)
CHECK_GRAPH | Level of error checking for graph input: 0 = no checking, 1 = on-processor checking, 2 = full checking. (CHECK_GRAPH==2 is very slow and should be used only during debugging).
SCATTER_GRAPH | Scatter graph data by distributing contiguous chunks of objects (vertices) of roughly equal size to each processor before calling the partitioner. 0 = don't scatter; 1 = scatter only if all objects are on a single processor; 2 = scatter if at least one processor owns no objects; 3 = always scatter.
Default values: | See the Jostle documentation. See our ParMETIS section for the last two parameters.
Required Query Functions: |
| ZOLTAN_NUM_OBJ_FN
| ZOLTAN_OBJ_LIST_FN
| ZOLTAN_NUM_EDGES_MULTI_FN or ZOLTAN_NUM_EDGES_FN ZOLTAN_EDGE_LIST_MULTI_FN or ZOLTAN_EDGE_LIST_FN

[Table of Contents | Next: Hybrid Hierarchical Partitioning | Previous: ParMETIS | Privacy and Security]