#####################################################################
#                                                                   #
# PARKBENCH Version 1.0                                             #
#                                                                   #
# July 25, 1995                                                     #
#                                                                   #
# University of Tennesee, Knoxville                                 #
# University of Southampthon, United Kingdom                        #
#                                                                   #
#####################################################################

This ReadMe file contains all of the information necessary to
execute the PARKBENCH low-level single and multi processor
benchmarks:  LOWLEV ( 10 benchmarks )
           -- single -- {poly1, poly2, rinf1, tick1, tick2}
           -- multi  -- {comms1, comms2, comms3, poly3, synch1).

For LOWLEV (4 steps):

1.  Compile from PARKBENCH/Makefile.

To make the complete LOWLEV suite, type
make LOWLEV

To make individual executables, type
make xxx
where xxx is an element of
{poly1,poly2,rinf1,tick1,tick2,comms1,comms2,comms3,poly3,synch1}

2.  After compilation, edit input file (-- multi -- ONLY)
$HOME/pvm3/bin/$PVM_ARCH/xxx.dat
where xxx is an element of
-- multi  -- {comms1, comms2, comms3, poly3, synch1).

3.  Note that #2 above implies that only the -- multi --
benchmarks utilize PVM.  -- single -- are standard Fortran77;
consequently, make sure that the -- single -- benchmarks are
running on a node of your architecture (if it is possible that
they might run on a front-end by default).
DO NOT MODIFY ANY VALUES OTHER THAN THOSE SPECIFIED BELOW.

---------------
ALL INPUT FILES
---------------
Set "Number of processes" to the number of nodes on your machine.
2 <= Number of processes <= MAXNOD where MAXNOD = 2048.
For example, on a 32 node CM5, choose

32	Number of processes, NNODES

--------------------
SPECIFIC INPUT FILES
--------------------
In comms1.dat, comms2.dat, and poly3.dat,

1       NSLAVE:  1 <= slave number <= NNODES-1

NSLAVE is the process number that will communicate
with master process 0.  It is preset to the nearest
neighbor, process 1.

In comms1.dat and comms2.dat,

0       NSBYTE:  shortest message length in bytes
0       Zero length messages used in least squares fittings: 0=yes,1=no.

NSBYTE reflects whether your architecture has dependencies relative
to short and long messages.  If NSBYTE = 0, then the least squares
fittings choice should be 0=yes--otherwise, 1=no.

1.0     Minimum time in seconds per test case

This is the value for MTIME.  It is the minimum amount of time a
test is performed.  1.0 second should be sufficient.

In comms3.dat,

17      NEND message length parameter
	1 <= NEND <= 17

The integer value of NEND conforms to a byte size for message length.
Leave this alone unless your architecture balks at a certain size.


3.  Executable "tick2" is the only one that requires interactivity.
You will need a watch or clock (separate from the machine) to perform
this test.

4.  Output is placed in file
$HOME/pvm3/bin/$PVM_ARCH/xxx.res
where xxx is an element of 
{poly1,poly2,rinf1,tick1,tick2,comms1,comms2,comms3,poly3,synch1}
Please make sure it is present.


Tips:

Some routines have *.inc files that contain PARAMETERS that offer
test sizes as well.  If it is taking too long to see if a routine
is working, set the PARAMETER to a test size and recompile.
