MADbench2 is a tool for testing the integrated performance of the I/O, communication and calculation subsystems of massively parallel architectures under the stresses of a real scientific application. It is based on the MADspec code, which calculates the maximum likelihood angular power spectrum of the Cosmic Microwave Background radiation from a noisy pixelized map of the sky and its pixel-pixel noise correlation matrix.
For just IO benchmark we can skip the normal benchmark prerequisites ScaLapack, Lapack and BLAS. Compilation:
mpicc -D SYSTEM -D COLUMBIA -D IO -o MADbench2.x MADbench2.c -lm
Running MADbench2:
mpiexec -n $NO_PROC MADbench2.x $NO_PIX $NO_BIN $NO_GANG $SBLOCKSIZE $FBLOCKSIZE $RMOD $WMOD Parameters NO_PIX Sets the size of the pseudo-data - all the component matrices have NO_PIX x NO_PIX elements NO_BIN Sets the size of the pseudo-dataset - there are NO_BIN component matrices NO_GANG Sets the level of gang-parallelism - there are NO_GANG gangs SBLOCKSIZE Sets the ScaLAPACK blocksize - all matrices will be block-cycically distributed with side SBLOCKSIZE. FBLOCKSIZE Sets the file blocksize - all IO will start at a file-offset that is an integer multiple of FBLOCKSIZE. RMOD Sets the degree of simultaneous reading - 1:RMOD processors will read at once. WMOD Sets the degree of simultaneous writing - 1:WMOD processors will write at once. Additional environment variables IOMETHOD = POSIX | MPI IOMODE = SYNC | ASYNC FILETYPE = UNIQUE | SHARED REMAP = CUSTOM | SCALAPACK BWEXP = Any number
For example runnning mpiexec -n 4 MADbench2.x 640 80 1 8 8 4 4
results in the following output
MADbench 2.0 IO-mode no_pe = 4 no_pix = 640 no_bin = 80 no_gang = 1 sblocksize = 8 fblocksize = 8 r_mod = 4 w_mod = 4 IOMETHOD = POSIX IOMODE = SYNC FILETYPE = UNIQUE REMAP = CUSTOM S_cc 0.13 [ 0.05: 0.16] S_bw 0.09 [ 0.03: 0.11] S_w 5.57 [ 1.85: 6.81] ------- S_total 5.79 [ 1.92: 7.09] W_cc 0.37 [ 0.12: 0.50] W_bw 55.75 [ 18.49: 68.19] W_r 0.26 [ 0.09: 0.32] W_w 3.78 [ 1.25: 4.63] ------- W_total 60.16 [ 19.95: 73.57] C_cc 0.28 [ 0.10: 0.38] C_bw 0.13 [ 0.04: 0.16] C_r 0.39 [ 0.13: 0.52] ------- C_total 0.81 [ 0.27: 0.99] dC[0] = 0.00000e+00
Numbers are seconds spent in the S/W/C stages described on MADbench2 web page. Also there is an excel sheet to calculate MB/s.
Output has been created using version 2.0.