MPIBlib: MPI Benchmark library

Point-to-point benchmarks

Defines

#define MPIB_C2(n)   (n) * ((n) - 1) / 2
#define MPIB_IJ2INDEX(n, i, j)   (2 * (n) - ((i) < (j) ? (i) : (j)) - 1) * (((i) < (j) ? (i) : (j))) / 2 + (((i) < (j) ? (j) : (i))) - (((i) < (j) ? (i) : (j))) - 1

Functions

void MPIB_measure_p2p (MPIB_Send send, MPIB_Recv recv, MPI_Comm comm, int measure, int mirror, int M, MPIB_precision precision, MPIB_result *result)
void MPIB_measure_p2p_msgset (MPIB_Send send, MPIB_Recv recv, MPI_Comm comm, int measure, int mirror, MPIB_msgset msgset, MPIB_precision precision, int *count, MPIB_result **results)
void MPIB_measure_p2p_parallel_msgset (MPIB_Send send, MPIB_Recv recv, MPI_Comm comm, MPIB_msgset msgset, MPIB_precision precision, int *count, MPIB_result **results)
void MPIB_measure_allp2p (MPIB_Send send, MPIB_Recv recv, MPI_Comm comm, int parallel, int M, MPIB_precision precision, MPIB_result *results)

Detailed Description

This module provides the point-to-point benchmarks.


Define Documentation

#define MPIB_C2 (   n  )     (n) * ((n) - 1) / 2

$ C_n^2 $

#define MPIB_IJ2INDEX (   n,
  i,
  j 
)    (2 * (n) - ((i) < (j) ? (i) : (j)) - 1) * (((i) < (j) ? (i) : (j))) / 2 + (((i) < (j) ? (j) : (i))) - (((i) < (j) ? (i) : (j))) - 1

For a symmetric square matrix stored in the array of $ C_n^2 $ elements, returns the index of the $ (i, j) $ element, $ i \ne j < n $: $ \displaystyle\frac{(n - 1) + (n - I)}{2} I + (J - I - 1) $, $ I = min(i, j) $, $ J = max(i, j) $


Function Documentation

void MPIB_measure_p2p ( MPIB_Send  send,
MPIB_Recv  recv,
MPI_Comm  comm,
int  measure,
int  mirror,
int  M,
MPIB_precision  precision,
MPIB_result result 
)

Point-to-point benchmark. Estimates the execution time of the point-to-point communications between a pair of processors in the MPI communicator. Performs series of communication experiments to obtain reliable results.

Parameters:
send send
recv recv
comm communicator, number of nodes should be $ \ge 2 $
measure measure processor
mirror mirror processor
M message size
precision measurement precision
result measurement result (significant only at the measure processor)
void MPIB_measure_p2p_msgset ( MPIB_Send  send,
MPIB_Recv  recv,
MPI_Comm  comm,
int  measure,
int  mirror,
MPIB_msgset  msgset,
MPIB_precision  precision,
int *  count,
MPIB_result **  results 
)

Point-to-point benchmark. Estimates the execution time of the point-to-point communication between a pair of processors in the MPI communicator for different message sizes. Performs series of communication experiments to obtain reliable results.

Parameters:
container communication operation container
comm communicator, number of nodes should be $ \ge 2 $
measure measure processor
mirror mirror processor
msgset message sizes
precision measurement precision
count the number of measurements performed (significant only at the measure processor)
results array of measurement results (significant only at the measure processor, allocated by this function and must be deallocated by user)
void MPIB_measure_p2p_parallel_msgset ( MPIB_Send  send,
MPIB_Recv  recv,
MPI_Comm  comm,
MPIB_msgset  msgset,
MPIB_precision  precision,
int *  count,
MPIB_result **  results 
)

Parallel point-to-point benchmark for two partitions of processes. Estimates the execution time of the parallel point-to-point communication between two partitions of processors in the MPI communicator for different message sizes. Performs series of communication experiments to obtain reliable results.

Parameters:
container communication operation container
comm communicator, number of nodes should be $ \ge 2 $
msgset message sizes
precision measurement precision
count the number of measurements performed (significant only at the measure processor)
results array of measurement results (significant only at the measure processor, allocated by this function and must be deallocated by user)
void MPIB_measure_allp2p ( MPIB_Send  send,
MPIB_Recv  recv,
MPI_Comm  comm,
int  parallel,
int  M,
MPIB_precision  precision,
MPIB_result results 
)

Point-to-point benchmark. Estimates the execution time of the point-to-point communications between all pairs of processors in the MPI communicator. Performs series of communication experiments to obtain reliable results.

Parameters:
container communication operation container
comm communicator, number of nodes should be $ \ge 2 $
parallel several non-overlapped point-to-point communications at the same time if non-zero
M message size
precision measurement precision
results array of $ C_n^2 $ measurement results