#####################################################################
#                                                                   #
# PARKBENCH Version  0.9                                            #
#                                                                   #
# November 10, 1995                                                     #
#                                                                   #
# University of Tennesee, Knoxville                                 #
# University of Southampthon, United Kingdom                        #
#                                                                   #
#####################################################################

This ReadMe file contains all of the information necessary to
execute the PARKBENCH KERNELS:  LINALG ( 5 benchmarks ).


-------------------------------
Problem Size Space Requirements
-------------------------------

LINALG		1000	10000	30000
======		====	=====	=====
LU		30MB	 3GB	30GB
MATMUL		30MB     3GB    30GB
QR		30MB     3GB    30GB
TRANS		30MB     3GB    30GB
TRD		30MB     3GB    30GB


For LINALG (5 steps):

1.  Prior to compilation, select a value for TOTMEM in
PARKBENCH/KERNELS/TOTMEM.inc

This value should be an integer equivalent to the amount of memory
available per node of your system.  For example, on a CM5 with
32M per node, set TOTMEM = 28000000.  Thus, 28M will be available
to the executable, and approximately 4M will be left for OS, BLACS
buffer, etc.  There is no standard for this value, and some testing
may be required to find a value of TOTMEM that will run all three
problem sizes completely.  If the value of TOTMEM is insufficient,
the executable should return an acceptable value for TOTMEM.

2.  Compile from PARKBENCH/Makefile.

To make the complete LINALG suite, type
make LINALG

To make individual executables, type
make xxx
where xxx is an element of {lu, matmul, qr, trans, trd}

3.  After compilation, edit input file
$HOME/pvm3/bin/$PVM_ARCH/xxx.dat
where xxx is an element of {LU, MATMUL, QR, TRANS, TRD}

DO NOT MODIFY ANY VALUES OTHER THAN THOSE SPECIFIED BELOW.

---------------
ALL INPUT FILES
---------------
This file contains the input parameters for the test suite.
The lines that may need to be changed are as follows:

1                       number of problems sizes

Set this value to 3 after the test case is working.  Note that
the larger problem sizes take up a lot of memory--see TOTMEM above.

1                       number of process grids (ordered pairs of P & Q)
1                       values of P
1                       values of Q

In all cases, P x Q = the number of processes spawned by PVM.  So,
select an appropriate set of grids to find the grid that is fastest 
for your architecture.  For example, on a 32 node CM5, choose

3                       number of process grids (ordered pairs of P & Q)
32 16 8                 values of P
1  2  4                 values of Q

to try 3 grids {32x1, 16x2, 8x4} of 32 processes each.

--------------------
SPECIFIC INPUT FILES
--------------------
In LU.dat and QR.dat and TRD.dat,

7                       number of blocking sizes
1 2 4 8 16 32 64        values of NB

NB is the block size parameter.  Select the block size that
produces the best performance results for your architecture.

In MATMUL.dat,

6                       number of blocking sizes
4 7 4 13 20 13          values of MB
4 9 8 13 13 20          values of NB
4 3 2 20 13 13          values of KB

MB, NB, and KB are block size parameters.  Select the size that
produces the best performance results for your architecture.

In TRANS.dat,

6                       number of blocking sizes
4 7 4 13 20 13          values of MB
4 9 8 13 13 20          values of NB

MB and NB are block size parameters.  Select the size that
produces the best performance results for your architecture.


4.  Output is placed in file 
xxx.out
where xxx is an element of {LU, MATMUL, QR, TRANS, TRD}
Please make sure it is present.

5.  Input file "blacs_setup.dat" is created by the executable
for the PVM BLACS.  Leave it be.
