
Procedure to run a single test of a specific routine
----------------------------------------------------

1). Create/Open a VPM.

2). Make the test library

$ make hscaltestlib

3). Edit the parameters file to specify the problem parameters. There 
are separate parameters files for a homogeneous PBLAS routine and the 
corresponding HeteroPBLAS routine. This is so that you can run the 
homogeneous PBLAS routine and the corresponding HeteroPBLAS routine 
and compare the execution times. Each and every test prints the 
execution time.

For example, to test the homogeneous PBLAS routine pcgemm, edit the 
parameters file 'scalapack_pcgemm_parameters.h'

For example, to test the HeteroPBLAS routine pcgemm, edit the 
parameters file 'hscalapack_pcgemm_parameters.h'

4). Run the test.

For example to run the homogeneous PBLAS routine pcgemm,
$ ./run_scal.sh test_scal_pcgemm scalapack_pcgemm_parameters.h

For example to run the HeteroPBLAS routine pcgemm,
$ ./run_hscal.sh test_hscal_pcgemm_auto hscalapack_pcgemm_parameters.h

Procedure to run a series of tests of a specific routine
--------------------------------------------------------
For example to run a series of tests for the homogeneous PBLAS routine pcgemm,

1). Edit the file 'cparameters.h' to specify the following:

	a). Specify the grid arrangements. For example,

            VALUES_OF_P=(1 2 4 8 16)
            VALUES_OF_Q=(16 8 4 2 1)

        b). The number of runs, which is given by 'NUMBER_OF_PSIZE_ITERATIONS' with 
            problem size increments of 'PSIZE_INCREMENT'.

	So for each problem size, the grid arrangements 1x16, 2x8, 4x4, 8x2, 16x1 
        are tested.

2). Run the series of tests.

$ ./run_scal_pcgemm.sh > scal_pcgemm.txt 2>&1

The output goes into 'scal_pcgemm.txt'

For example to run a series of tests for the the HeteroPBLAS routine pcgemm,

1). Edit the file 'cparameters.h' to specify the number of tests, which is
given by 'NUMBER_OF_PSIZE_ITERATIONS' with problem size increments of
'PSIZE_INCREMENT'. Note that for each problem size, an optimal grid 
arrangement of processes is determined for heterogeneous PBLAS routines and 
so there is no need to specify the process grid arrangment as input.

2). Run the series of tests.

$ ./run_hscal_pcgemm_auto.sh > hscal_pcgemm.txt 2>&1

The output goes into 'hscal_pcgemm.txt'

