Zoltan Developer's Guide  |  Next  |  Previous

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.
  1. Make sure you follow the Philosophy of Zoltan and the Coding Principles in Zoltan.
  2. Add the algorithm to the Load-Balancing Interface Routines.
  3. Use the Data Structures provided by Zoltan.
  4. Implement a Load-Balancing Function front-end to the algorithm.
  5. 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.
  6. If necessary, write a routine to free your dynamically allocated data structures. See tips on memory management
  7. in Zoltan.
  8. If the parameter KEEP_CUTS is defined for your algorithm, write a routine to copy your load balancing data structure.
  9. Add partition remapping to your algorithm using Zoltan_LB_Remap.
  10. Update the Fortran and C++ interfaces, if necessary.
  11. 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.
  12. 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]