This benchmark takes a set of common Fortran DO-loops and analyses their time of execution in terms of the two parameters (\rinf~, \nhalf)

[14,15,16,17,18,19]. \rinf~ is the
asymptotic performance rate in Mflop/s which
is approached as the loop (or vector) length, **n**, becomes longer. \nhalf (the half-performance length) expresses how rapidly, in terms
increasing vector length, the actual performance, **r**, approaches \rinf~. It is defined as the vector length required to achieve a performance
of one half of \rinf~. This means that the time, **t**, for a DO-loop
corresponding to **q** vector operations (i.e. with **q** floating-point
operations per element per iteration) is approximated by

Then the performance rate is given byt = q * ( n + \nhalf ) / \rinf~ .

r = \frac{q*n}{t} =\frac{\rinf}{(1+\nhalf /n)}~.

We can see from Eqn.(1) that \nhalf is a way of measuring the importance of vector startup overhead (=\nhalf/\rinf) in terms of quantities known to the programmer (loop or vector length). In the benchmark program, the two parameters are determined by a least-squares fit of the data to the straight line defined by Eqn.(1). A useful guide to the significance of \nhalf is to note from Eqn.(2) that 80 percent of the asymptotic performance is achieved for vectors of length 4 \times \nhalf. Generally speaking, \nhalf values of up to about 50 are tolerable, whereas the performance of computers with larger values of \nhalf is severely constrained by the need to keep vector lengths significantly longer than \nhalf. This requirement makes computers difficult to program efficiently, and often leads to disappointing performance, compared to the asymptotic rate advertised by the manufacturer.

RINF1 has been used extensively for about ten years as part of the Hockney and EuroBen benchmarks (module MOD1AC) [20]. It is also included in the Genesis benchmarks [21].

Tue Nov 14 15:43:14 PST 1995