Adding New Load-Balancing Algorithms to Zoltan
The Zoltan library is designed so that adding new load-balancing algorithms
to the library is simple. In many cases, existing code can be easily modified
to use the interface query functions to build the data structures needed
for the algorithm. The process for adding new algorithms to the library
is described below; more detail is provided at each link.
-
Make sure you follow the Philosophy
of Zoltan and the Coding Principles
in Zoltan.
-
Add the algorithm to the Load-Balancing
Interface Routines.
-
Use the Data Structures
provided by Zoltan.
-
Implement a Load-Balancing Function front-end
to the algorithm.
-
Add the Parameters needed by the algorithm.
Also make sure that the algorithm uses the General Parameters in Zoltan properly, in particular
Imbalance_Tol and
Debug_Level.
-
If necessary, write a routine to free your dynamically allocated data structures.
See tips on memory management
in Zoltan.
-
If the parameter KEEP_CUTS
is defined for your algorithm, write a routine
to copy your load balancing
data structure.
-
Add partition remapping to your algorithm using
Zoltan_LB_Remap.
-
Update the Fortran
and C++ interfaces, if necessary.
-
Document your new method. The documentation should be written in a format
that can easily be converted into HTML and PDF. Consider adding a
simple application to the examples directory demonstrating the
use of your method.
-
Please contact the Zoltan team if you would like your method to be distributed
with future versions of Zoltan.
[Table of Contents | Next:
Load-Balancing Interface Routines | Previous:
Debugging Services]