These benchmark tests enable to estimate computer's performance in terms of its applicability to seismic data processing. They are supposed to run under any UNIX-like operating system including but not limited to Linux and NetBSD. Each test script, listed in the table below, compiles related C/C++ programs, which then do real job. The time a program work is measured with a standard time utility. Test environment (CPU type/clock, main memory size, operating system version, compiler), parameters, and results are printed on standard output. Everything but results is prefixed with # in order to plot the results easily with a plotting utility, such as gnuplot. The table below lists all available test scrips. See more detailed descriptions below.
|CPU and CPU+memory benchmarks||cpu_benchmark.sh|
|Disk reading/writing benchmarks||file_benchmark.sh|
|Cluster disk reading/writing benchmarks||file_cluster_benchmark.sh|
|Multi-CPU + memory benchmark||run_srmp_x86.sh.sh|
The first test of this group estimates pure CPU performance, which is the main factor for single-channel data processing algorithms. The script compiles and runs one C++ program doing iterations of forward/inverse Fast Fourier Transform (FFT) for one trace, of which the length is changed. The time of each run is measured and printed on standard output.
The second test attempts to estimate CPU+memory performance, which is critical for most multi-channel processing algorithms, e.g. Radon transform, or migration. See the relevant C program for what it is doing.
These tests simulate processing modules with heavy input/output, such as trace reading/writing/sorting. The script first invokes the writing performance test program. It successively writes traces to a disk file, and the writing rate is measured. The script then invokes the reading performance test program, which starts from reading the file successively then simulating the sorting procedure. The results are printed on standard output.
The present test serves the same goal, as the previous ones, for cluster systems. It runs the MPI program. on the given number of nodes so that each node reads/writes data on the same file system. The I/O performance figures are printed on the standard output.
This test is designed to estimate the "seismic" performance of SMP computers. We consider a simple parallelized implementation of a Kirchhoff migration algorithm (inspired by "Basic Earth Imaging" by John Claerbout) to be a good representative for this purpose. The idea is that the input traces are all in the main memory, and computing lightweight processes (threads) start doing the actual job thus competing for memory. The source code is here.
This test is designed to estimate the performance of SMP computers on the "memory access sensitive" algorithms. One iteration of the simplified surface-related multiple prediction (SRMP) algorithm is used for this purpose. The idea is that each trace of multiples is obtained by summing-up pairwise convolutions of corresponding traces of CSP and CRP gathers. Traces are all in the main memory, and computing threads do intensive memory accessing. The source code is here.
Please download and unpack the TAR archive
tar xvfz benchmark*gz
Run test shell scripts (files with *.sh suffixes) like this:
This software can be used, copied, modified without limitations.
Should you have any questions, or remarks, please contact Evgeny Kurin.