MPIBlib: MPI Benchmark library

Measurement: base data structures and functions

Classes

struct  MPIB_result
struct  MPIB_msgset
struct  MPIB_precision

Functions

void MPIB_Comm (MPI_Comm comm, MPI_Comm *newcomm)
double MPIB_diff (MPIB_result result, MPIB_result results[2])
void MPIB_max_wtick (MPI_Comm comm, double *wtick)
double MPIB_ci (double cl, int reps, double *T)

Detailed Description

This module provides base data structures and functions for measurement:

benchmark.dot

Benchmark input:

  • The MPIB_precision data structure defines statistical precision of measurement. Statistical analysis is implemented with help of the GNU Scientific Library.
  • The MPIB_p2p_container and MPIB_coll_container data structures encapsulate the communication operation to be measured.

Benchmark output:

  • The MPIB_result data structure represents result of measurement and its reliability.

Most benchmark functions have a counterpart for measurement of execution time with a set of message sizes:

benchmark_msgset.dot

The counterpart has an extra input argument:

  • The MPIB_msgset data structure defines the message sizes for which the measurements are to be performed. Message sizes are selected either regularly or adaptively.

The output of the counterpart is an array of MPIB_result.


Function Documentation

void MPIB_Comm ( MPI_Comm  comm,
MPI_Comm *  newcomm 
)

Creates a copy of communicator that includes one process per processor.

double MPIB_diff ( MPIB_result  result,
MPIB_result  results[2] 
)

Compares the result of measurement with the linear model based on the results of two previous measurements. Required for adaptive selection of message sizes.

void MPIB_max_wtick ( MPI_Comm  comm,
double *  wtick 
)

Returns a resolution of MPI_Wtime, maximum in the communicator. Result can be used to check the execution time measured at several processors (MPIB_measure_max, MPIB_measure_global): $ T_{coll} < wtick_{max} $.

Parameters:
comm MPI communicator
wtick a maximum resolution
double MPIB_ci ( double  cl,
int  reps,
double *  T 
)

Returns a confidence interval that contains the average execution time with a certain probability: $ Pr(|\bar T - \mu| < ci) = cl $.

Note:
If communication operations in a series are isolated from each other, we can assume that the execution times form an independent sample from a normally distributed population, and use t distribution to estimate confidence interval.
Parameters:
cl confidence level
reps number of measurements (should be > 1)
T array of reps measurement results
Returns:
confidence interval