Subject: Modified COMMS1

From: Roger Hockney <[email-masked]>
Date: Sun, 16 Feb 1997 15:31:29 +0000

To: Parkbench Committee

16 Feb 1997

                   REVISED COMMS1 (MPI)
                   --------------------
I have now completed the modifications to the existing COMMS1
benchmark which have been made in response to the problems 
reported by Ron Sercely and Charles Grassl, and the revised 
benchmark is now ready for evaluation. So far, I have only
modified the MPI version of COMMS1. 

The main changes are:
 
(1) Giving proper prominence to the spot measured bandwidth in 
    the output file, as requested by both Charles and Ron.
(2) Improving the accuracy of the least-squares 2-parameter 
    fit by minimising the relative rather than absolute error.
(3) Introduction of a new 3-parameter variable-power fit for 
    cases in which the existing 2-parameter fit is inadequate.
(4) Parametric fits are now only reported if the errors are
    less than amounts specified as parameters in comms1.inc.
(5) Including the changes to ESTCOM.f recommended by Ron.
(6) Including the improved measurement of CHECK-time in
    COMMS1.f as recommended by Ron.

Seven files are involved and it should only be necessary to
replace the existing routines with the new ones to get the new
code. The new routines have been put up on my Web space with
the URL addresses given below (go directly to the complete
address). The files may immediately download (all the *.F
did for me with MSIE) or can be "saved to disk" if they are 
displayed in the browser. Alternatively I will email them to 
anyone who requests them. Everything is CASE SENSITIVE and I 
apologise for unwanted capitalisation in the URLs, so be 
careful.

In order to come to a sensible decision about the usefulness
and future of COMMS1/COMMS2 we need as much data as possible 
from the new code. I hope that some of you will have time to 
try it, and report the results to this email group. The old 
routine was used with data way out of its tested range with 
some unfortunate results. The new routine should be much more 
robust and give more sensible parametric fits. 

In particular the usefulness of the parametric fitting should
be judged on results from this new code NOT from the old code.

------

All files have a revision date of  RWH-11-Feb-1997  which is a
comment on the second or third line of the code.

In detail the files and modifications made are:

(1) ParkBench/Low_Level/comms1/src_mpi/COMMS1.f

URL http://www.minnow.demon.co.uk/Pbench/comms1/COMMS1_1.F

    This is a revision of the existing routine.
    Introduction of Ron Sercely's improved measurement of CHECK
    time. Improvement of output format to include printout of
    spot bandwidth at each point and the two KEY measured values
    requested by Charles Grassl. These are the time for the 
    shortest message and the bandwidth for the longest message,
    both of which are now prominently displayed. 

    The parametric curve fitting now only displays results if both
    the RMS relative error and maximum recorded relative error are
    less than user definable values which are set in comms1.inc.
    In addition the two-parameter straight-line (t vs n) now
    minimises the relative rather than absolute error. A new
    library routine LINERR.f is introduced which calculates 
    directly the RMS and maximum relative error of the fit.

    There is a new 3-parameter fitting function that does very well
    with Grassl's data and is calculated with a new library routine
    VPOWER.f which also directly calculates the RMS and maximum 
    relative error of the fit.

(2) ParkBench/Low_Level/comms1/src_mpi/comms1.inc

URL http://www.minnow.demon.co.uk/Pbench/comms1/COMMS1_1.INC

    This is a revision of the existing include file.
    The following parameters are added:
        ERMSLM  limiting value for acceptable RMS error
        EMAXLM  limiting value for acceptable maximum relative error
    Diagnostic printout is now available viag parameter KDIAG
        KDIAG=0 for normal running without diagnostics
             =1 first level diagnostics: errors at each point
             =2 second level diagnostics: each point each iteration

(3) ParkBench/Low_Level/comms1/src_mpi/ESTCOM.f

URL http://www.minnow.demon.co.uk/Pbench/comms1/ESTCOM_1.F

    This is a revision of the existing routine.
    Introduction of Ron Sercely's method of estimating the ERINF 
    and ESTART values. This is now based on two measurements at 
    the longest and shortest messages, and overcomes the problems
    met with the Convex computers using the existing code.

(4) ParkBench/lib/Low_Level/LSTSQ.f

URL http://www.minnow.demon.co.uk/Pbench/comms1/LSTSQ_1.F

    This is a revision of the existing routine.
    Internal switch, KREL, introduced to allow choice of 
    minimising either the absolute or relative error in time. 
    This is internally set to select the minimisation of
    relative error which is obviously the best choice.

(5) ParkBench/lib/Low_Level/LINERR.f

URL http://www.minnow.demon.co.uk/Pbench/comms1/LINERR_1.F

    This is a new library routine that calculates directly the 
    RMS relative error of the linear 2-parameter fit function, 
    and also finds the maximum relative error with its sign and 
    its position. If KDIAG=1 is set in comms1.inc, a diagnostic 
    printout compares the measured and fitted values at each 
    point and their individual errors.

(6) ParkBench/lib/Low_Level/VPOWER.f

URL http://www.minnow.demon.co.uk/Pbench/comms1/VPOWER_1.F

    This is a new library routine that calculates by iteration
    the best 3-parameter fit using the new Variable-Power function.
    This is a generalisation of the existing two-parameter
    function that has more flexibility (as was desired by 
    Charles).  The variable-power function is adjusted to fit 
    the smallest and largest message lengths exactly. It also 
    fits the measured data at a mid-point in the range. For more
    details see comments in the program and output files.
    The comms1.inc parameter KDIAG offers two levels of diagnostic
    printout for use in checking the course of the iteration and
    viewing errors at individual points.

(7) Parkbench/lib/Low_Level/CHECK.f

URL http://www.minnow.demon.co.uk/Pbench/comms1/CHECK_1.F

    This has had a STOP statement removed to avoid the possibility
    of deadlock arising. A possible problem pointed out by Charles
    Grassl during preliminary evaluation.   

With best regards

                         Roger Hockney

                  (Westminster University, UK)
-- 
Roger Hockney.  Checkout my new Web page at URL   http://www.minnow.demon.co.uk
University of   and link to my new book: "The Science of Computer Benchmarking"
Westminster UK  suggestions welcome. Know any fish movies or suitable links?