Zoltan Developer's Guide  |  Next  |  Previous

Appendix:  Using the test script test_zoltan

Note: The script test_zoltan as described below is obsolete. It will work in some instances, but is no longer generally supported.

Automated testing is now supported through CMake. Build Zoltan through CMake with option

"-D Zoltan_ENABLE_Tests:BOOL=ON"

Automated tests can be then run with command

make test
The testing environment uses script zoltan/test/ctest_zoltan.pl. To add new zdrive.inp files to an existing test, add the files to the appropriate directory and to the glob commands in ctest_zoltan.pl. (Follow the example of zdrive.inp.rcb in ctest_zoltan.pl.

To add new test directories, create the directories and populate them with input files. Copy file CMakeLists.txt from zoltan/test/ch_simple to the new directories, and edit the test names and numbers of processors in the new files. Also add the new directories to zoltan/test/CMakeLists.txt, following the example of ch_simple. The new tests will now be run in the CMake environment.

Results of automated nightly testing are posted to the CDASH dashboard.


The purpose of the Zoltan test script is to run the test driver zdrive (or zfdrive) on a set of test problems to verify that the Zoltan library works correctly. The script compares the output of actual runs with precomputed output. The assumption is that if the outputs are identical, then the current implementation is is likely to be correct. Small differences may occur depending on the architectures used; developers should examine the output and use their judgement in determining its correctness. It is strongly recommended that developers run test_zoltan to verify correctness before committing changes to existing code!

How to run test_zoltan

First make sure you have compiled the driver zdrive (or zfdrive).  Then go to the Zoltan directory Zoltan/tests and type test_zoltan with suitable options as described below. This will run the test script in interactive mode. The output from the driver will be sent to stdout and stderrstdout and stderr with a summary of results. The summary of results is also saved in a log file. If  an error occured, look at the log file to find out what went wrong. The script currently assumes that runs are deterministic and reproducible across all architectures, which is not necessarily true. Hence false alarms may occur.


     test_zoltan [-arch arch-type] [-cmd command] [other options as listed below]

It is required to use either the -arch or the -cmd option.  The other arguments are optional.

-arch arch-type The architecture on which the driver is to run. For a list of currently supported architectures, type test_zoltan with no arguments.
-cmd command The command is the command that the script uses to launch the driver. One must include an option to specify the number of processors as part of the command. Use quotes appropriately; for example, -cmd 'mpirun -np'. Default settings have been provided for all the supported architectures.
-logfile filename The name of the log file. The default is test_zoltan.log. If an old log file exists, it will be moved to test_zoltan.log.old.
-no_parmetis Do not run any ParMETIS methods.
-no_nemesis Do not run test problems in Nemesis format.
-no_chaco Do not run test problems in Chaco format.
-yes_fortran Run the Fortran90 driver zfdrive instead of zdrive.

The default behavior is to run zdrive all methods on all types of input format.

Test problems

The test problems are included in subdirectories of the Zoltan/test directory. Problems using Chaco input files are in subdirectories ch_*; problems using Nemesis input files are in subdirectories nem_*. Please see the README files located in each test directory for more details on these test problems.

Load balancing methods

Many different load-balancing methods are currently tested in test_zoltan. Input files for the methods are found in the test problem subdirectories. The input files are named zdrive.inp.<method>, where <method> indicates which load-balancing method is passed to Zoltan. To run only a subset of the methods, edit the test_zoltan script manually; searching for "rcb" shows which lines of the script must be changed.

Number of processors

The script test_zoltan runs each test problem on a predetermined number of processors, currently ranging from 3 to 9.

[Table of Contents  |  Next: RCB  |  Previous:  Visualization of Geometric Partitions  |  Privacy and Security]