User Tools

Site Tools


Table of Contents

MADbench2

name:
MADbench2
layers:
POSIX, MPI-IO
features:
data
parallel:
MPI
type:
kernel
webpage:
http://crd.lbl.gov/departments/computational-science/c3/c3-research/madbench2/

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.

Usage

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

Example Output

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.