next up previous contents
Next: Tests for the ScaLAPACK Up: Contents Previous: Troubleshooting   Contents

More About the ScaLAPACK Test Suite

The main test programs for the ScaLAPACK routines are located in the SCALAPACK/TESTING/LIN and SCALAPACK/TESTING/EIG subdirectories and are called pd__driver.f (ps__driver.f for REAL, pc__driver.f for COMPLEX, and pz__driver.f for COMPLEX*16), where the __ is replaced by lu, qr, llt, and so on. Each of the test programs for the ScaLAPACK routines has a similar style of input.

The following sections describe the different input formats and testing verifications. The data inside the input files is only test data designed to exercise the code. It should NOT be interpreted in any way as OPTIMAL performance values for any of the routines. For best performance, the value of the blocksize NB should be set to the value determined by ATLAS as optimal. A good starting point is a multiple of 16 - e.g., 16, 32, 48, 64.

The test programs for the routines are driven by separate data files.

The number and size of the input values are limited by certain program maximums which are defined in PARAMETER statements in the main test programs. These program maximums are:

$\textstyle \parbox{\textwidth}{
\begin{tabular}{l l r}
Parameter & Description ...
...16 \\
NTESTS & Maximum number of tests to be performed & 20 \\

The user should modify TOTMEM to indicate the maximum amount of memory in bytes his system has available. You must remember to leave room in memory for the operating system, the BLACS buffer, etc. For example, for PVM, the parameters we use are TOTMEM=2,000,000, and the length of a DOUBLE is 8. Some experimenting with the maximum allowable value of TOTMEM may be required. All arrays used by the factorizations, reductions, solves, and condition and error estimation are allocated out of the big array called MEM.

Please note that these parameter maximums in the test programs assume at least 2 Megabytes of memory per process. Thus, if you do not have that much space per process then you will need to reduce the size of the parameters.

For each of the test programs, the test program generates test matrices (nonsymmetric, symmetric, symmetric positive-definite, or upper Hessenberg), calls the ScaLAPACK routines in that path, and computes a solve and/or factorization and/or reduction residual error check to verify that each operation has performed correctly. The factorization residual is only calculated if the residual for the solve step exceeds the threshold value THRESH. Thus, if a user wants both checks automatically done then he should set THRESH = 0.0.

When the tests are run, each test ratio that is greater than or equal to the threshold value causes a line of information to be printed to the output file.

A table of timing information is printed in the output file containing execution times as well as megaflop rates.

After all of the tests have been completed, summary lines are printed of the form

Finished  180 tests, with the following results:
  180 tests completed and passed residual checks.
    0 tests completed and failed residual checks.
    0 tests skipped because of illegal input values.


next up previous contents
Next: Tests for the ScaLAPACK Up: Contents Previous: Troubleshooting   Contents
Susan Blackford 2001-08-12