Performance: Timing the speed of SPRNG Libraries
On building the SPRNG library, executables will be created to time each generator provided. A shell script called timesprng is provided that will run each of these timing executables. Enter the following command in the same directory where the SPRNG libraries reside in order to determine the speeds of the generators on your machine:
timesprng
The output will give the time taken to generate a million random numbers and also the number of random numbers generated per second, in millions (MRS). These results are based on the timings in C programs. FORTRAN timings are also given for millions of random numbers generated per second.
We give below a table of timing results on a few parallel platforms, in Millions of Random Numbers per Second for the integer and double precision numbers generated:
Time SPRNGCRAY T3E HP/CONVEX Exemplar IBM SP2 SGI-CRAY Origin 2000 SGI Power Challenge Clock Speed MHz 300 180 135 195 195 drand48()
(for comparison)2.6 0.32 1.4 1.8 1.8 C LCG48
Integer14.5 7.7 4.4 10.3 10.2 C LCG48
Double Precision6.3 5.9 5.0 8.7 8.3 FORTRAN LCG48
Integer12.8 7.7 5.3 10.3 10.2 FORTRAN LCG48
Double Precision6.1 6.2 3.3 8.5 8.5 C LFG
Integer5.5 6.7 4.0 6.1 5.8 C LFG
Double Precision3.2 3.2 3.2 3.8 3.8 FORTRAN LFG
Integer5.4 6.3 4.1 5.2 5.3 FORTRAN LFG
Double Precision3.3 2.9 3.2 3.6 3.8 C LCG64
Integer16.6 10.0 5.6 11.5 11.5 C LCG64
Double Precision6.5 6.7 4.0 7.8 7.8 FORTRAN LCG64
Integer14.5 7.7 5.0 10.8 10.8 FORTRAN LCG64
Double Precision6.3 6.3 3.6 7.8 7.8 C CMRG
Integer8.6 5.6 1.9 4.6 4.7 C CMRG
Double Precision4.8 4.8 1.8 3.6 4.3 FORTRAN CMRG
Integer8.4 5.0 1.9 4.2 4.5 FORTRAN CMRG
Double Precision4.7 4.8 1.7 3.6 3.5 C MLFG
Integer5.6 5.3 4.2 8.3 8.3 C MLFG
Double Precision5.0 5.3 3.1 6.0 6.1 FORTRAN MLFG
Integer5.9 3.3 3.8 7.6 8.2 FORTRAN MLFG
Double Precision3.1 2.8 3.2 5.6 6.0 C PMLCG
Integer7.5 0.7 2.2 2.5 2.4 C PMLCG
Double Precision4.2 0.7 1.8 2.3 2.3 FORTRAN PMLCG
Integer7.2 0.61 1.9 2.5 2.5 FORTRAN PMLCG
Double Precision4.1 0.58 1.9 2.4 2.5