Introduction

In the ancient days of computational seismology, I developed the first version of Computer Programs in Seismology as part of my dissertation research in 1974. Subsequently my students and I developed programs to make synthetic seismograms by wavenumber-frequency integration. Because ths technique was computationally intensive, using double precision floating point computations and disk I/O transfer for temporary storage, this technique was used to evaluate new computer systems. The test has not change since it was first applied in 1986. Unfortunately, I was not able to apply the test to our first minicomputer, a DEC PDF 11/70 running UNIX.

I present the benchmark and the latest plot in this section.

Benchmark results

Bench mark results aligned in order of decreasing time. The annotation gives the year, computer and compiler used for the benchmark. Recent benchmarks use the GNU set of compilers (gcc and g77) which are free, supported and ported to many systems.

The new Apple 2GHz G5 outperforms an 2.4 GHz Intel(R) Xeon(TM) processor on crust.eas.slu.edu

Test Program

The test program is a UNIX shell script called GO. This script unpacks into several files: makefile, numarg.f, numarg_.c, hspec9.f, mchdep70.f, rhfoc10.f, dsplt10.f, TEST00, hspec8.dat, rhwvinga.dat.

The script then runs the program TEST00 which compiles the three programs, hspec9, rhfoc10 and dsplt10 and then execuates the benchmark. You may have to edit the initial part of GO to define the compilers that you use. Currently the lines

FCMP = g77
CCMP = gcc

for the benchmark to use the locally installed versions of the g77 FORTRAN compiler. The benchmark does not use the C compiler.

There are some sligh FORTRAN lanquange differences. For example, the conversion of a double precision complex -> double precision real is done in g77 FORTRAN by the command

pr=dreal(p)
qr=dreal(q)

With other compilers, it may be necessary to use real instead of dreal.

The output list has two items to look for: the timing output invoked by the time command and the peak amplitudes of the synthetics (dsplt10 is a non-plotting version of an older program dsplot10). The following is the output of a run on the dual processor crust.eas.slu.edu. The Time used for the benchmark plot is given my the line user 0m0.863s. Other lines are highlighted: the output of the uname -a and the last two lines with indicate that the computations yield the expected peak amplitude.

[rbh@crust STANDOFF]$ vi GO
[rbh@crust STANDOFF]$ GO
Mon Jan 26 09:01:01 CST 2004
crust.eas.slu.edu
g77  -c hspec9.f
g77  -c mchdep70.f
g77  -o hspec9 hspec9.o mchdep70.o
rm hspec9.o
g77  -c rhfoc10.f
g77  -c numarg.f
g77  -o rhfoc10 rhfoc10.o  mchdep70.o numarg.o
rm rhfoc10.o
g77  -c dsplt10.f
g77  -o dsplt10 dsplt10.o  mchdep70.o numarg.o
rm dsplt10.o
rm *.o
Linux crust.eas.slu.edu 2.4.18-14smp #1 SMP Wed Sep 4 12:34:47 EDT 2002 i686 i686 i386 GNU/Linux

real    0m0.987s
user    0m0.863s (This is the time used for the plots)
sys     0m0.115s

 0.100000000E+02 0.300000000E+02
  1 ZDD ymax= 0.659E-04 ymin=-0.703E-04 ymxx= 0.703E-04
  1 RDD ymax= 0.140E-03 ymin=-0.172E-03 ymxx= 0.172E-03
  1 ZDS ymax= 0.552E-04 ymin=-0.365E-04 ymxx= 0.552E-04
  1 RDS ymax= 0.123E-03 ymin=-0.133E-03 ymxx= 0.133E-03
  1 TDS ymax= 0.177E-03 ymin=-0.157E-03 ymxx= 0.177E-03
  1 ZSS ymax= 0.157E-04 ymin=-0.208E-04 ymxx= 0.208E-04
  1 RSS ymax= 0.542E-04 ymin=-0.487E-04 ymxx= 0.542E-04
  1 TSS ymax= 0.550E-04 ymin=-0.625E-04 ymxx= 0.625E-04
  1 ZEP ymax= 0.346E-04 ymin=-0.324E-04 ymxx= 0.346E-04
  1 REP ymax= 0.121E-04 ymin=-0.110E-04 ymxx= 0.121E-04
 0.200000000E+02 0.300000000E+02
  1 ZDD ymax= 0.125E-03 ymin=-0.116E-03 ymxx= 0.125E-03
  1 RDD ymax= 0.174E-03 ymin=-0.197E-03 ymxx= 0.197E-03
  1 ZDS ymax= 0.317E-04 ymin=-0.283E-04 ymxx= 0.317E-04
  1 RDS ymax= 0.506E-04 ymin=-0.439E-04 ymxx= 0.506E-04
  1 TDS ymax= 0.140E-03 ymin=-0.126E-03 ymxx= 0.140E-03
  1 ZSS ymax= 0.325E-04 ymin=-0.431E-04 ymxx= 0.431E-04
  1 RSS ymax= 0.643E-04 ymin=-0.624E-04 ymxx= 0.643E-04
  1 TSS ymax= 0.894E-04 ymin=-0.997E-04 ymxx= 0.997E-04
  1 ZEP ymax= 0.257E-04 ymin=-0.245E-04 ymxx= 0.257E-04
  1 REP ymax= 0.175E-04 ymin=-0.160E-04 ymxx= 0.175E-04
 0.300000000E+02 0.300000000E+02
  1 ZDD ymax= 0.140E-03 ymin=-0.120E-03 ymxx= 0.140E-03
  1 RDD ymax= 0.127E-03 ymin=-0.133E-03 ymxx= 0.133E-03
  1 ZDS ymax= 0.167E-04 ymin=-0.208E-04 ymxx= 0.208E-04
  1 RDS ymax= 0.146E-04 ymin=-0.202E-04 ymxx= 0.202E-04
  1 TDS ymax= 0.101E-03 ymin=-0.934E-04 ymxx= 0.101E-03
  1 ZSS ymax= 0.377E-04 ymin=-0.472E-04 ymxx= 0.472E-04
  1 RSS ymax= 0.446E-04 ymin=-0.482E-04 ymxx= 0.482E-04
  1 TSS ymax= 0.100E-03 ymin=-0.110E-03 ymxx= 0.110E-03
  1 ZEP ymax= 0.187E-04 ymin=-0.181E-04 ymxx= 0.187E-04
  1 REP ymax= 0.180E-04 ymin=-0.166E-04 ymxx= 0.180E-04
 0.400000000E+02 0.300000000E+02
  1 ZDD ymax= 0.129E-03 ymin=-0.103E-03 ymxx= 0.129E-03
  1 RDD ymax= 0.805E-04 ymin=-0.751E-04 ymxx= 0.805E-04
  1 ZDS ymax= 0.277E-04 ymin=-0.316E-04 ymxx= 0.316E-04
  1 RDS ymax= 0.126E-04 ymin=-0.171E-04 ymxx= 0.171E-04
  1 TDS ymax= 0.615E-04 ymin=-0.571E-04 ymxx= 0.615E-04
  1 ZSS ymax= 0.336E-04 ymin=-0.441E-04 ymxx= 0.441E-04
  1 RSS ymax= 0.264E-04 ymin=-0.319E-04 ymxx= 0.319E-04
  1 TSS ymax= 0.842E-04 ymin=-0.927E-04 ymxx= 0.927E-04
  1 ZEP ymax= 0.140E-04 ymin=-0.136E-04 ymxx= 0.140E-04
  1 REP ymax= 0.166E-04 ymin=-0.157E-04 ymxx= 0.166E-04
[rbh@crust STANDOFF]$

Benchmark listing

The file pench is a tabulation of all runs of this benchmark.

Last Changed 26 January 2004