Parameters Controlling Intel® MPI Benchmarks

Parameters controlling the default settings of the Intel® MPI Benchmarks are set by preprocessor definition in files IMB_settings.h (for IMB-MPI1 and IMB-EXT benchmarks) and IMB_settings_io.h (for IMB-IO benchmarks). Both include files have identical structure, but differ in the predefined parameter values.

To enable the optional mode, define the IMB_OPTIONAL parameter in the IMB_settings.h/IMB_settings_io.h. After you change the settings in the optional section, you need to recompile the Intel® MPI Benchmarks.

The following table describes the Intel MPI Benchmarks parameters and lists their values for the standard mode.

Parameter

Values in IMB_settings.h

Values in IMB_settings_io.h

Description

USE_MPI_INIT_THREAD

Not set

Not set

Set to initialize Intel® MPI Benchmarks by MPI_Init_thread() instead of MPI_Init()

IMB_OPTIONAL

Not set

Not set

Set to activate optional settings

MINMSGLOG

0

0

The second smallest data transfer size is max(unit,2MINMSGLOG (the smallest size is always 0), where unit=sizeof(float) for reductions, unit=1 for all other cases.

You can override this parameter value using the -msglog flag.

MAXMSGLOG

22

24

The largest message size used is 2MAXMSGLOG

You can override this parameter value using the -msglog flag.

ITER_POLICY

imode_dynamic

 

The policy used for calculating the number of iterations.

You can override this parameter value using the -iter_policy or -iter flag.

MSGSPERSAMPLE

1000

50

The maximum repetition count for all IMB-MPI1 benchmarks. You can override this parameter value using the -iter flag.

MSGS_NONAGGR

100

10

The maximum repetition count for non-aggregate benchmarks (relevant only for IMB-EXT). You can override this parameter value using the -time flag.

OVERALL_VOL

40 Mbytes

16*1048576

For all sizes smaller than OVERALL_VOL, the repetition count is reduced so that not more than OVERALL_VOL bytes are processed all in all. This permits you to avoid unnecessary repetitions for large message sizes. Finally, the real repetition count for message size X is MSGSPERSAMPLE (X=0),

max(1,min(MSGSPERSAMPLE,OVERALL_VOL/X)) (X>0)

Note that OVERALL_VOL does not restrict the size of the maximum data transfer. 2MAXMSGLOG OVERALL_VOL.

You can override this parameter value using the -mem flag.

SECS_PER_SAMPLE

10

 

Number of iterations is dynamically set so that this number of run time seconds is not exceeded per message length.

N_BARR

2

2

Number of MPI_Barrier for synchronization.

TARGET_CPU_SECS

0.01 seconds

0.1 seconds

CPU seconds (as float) to run concurrently with nonblocking benchmarks (irrelevant for IMB-MPI1)

In the example below, the IMB_settings_io.h. file has the IMB_OPTIONAL parameter enabled, so that user-defined parameters are used. I/O sizes of 32 and 64 MB, and a smaller repetition count are selected, extending the standard mode tables. You can modify the optional values as required.

#define FILENAME IMB_out
#define IMB_OPTIONAL
#ifdef IMB_OPTIONAL
#define MINMSGLOG  25
#define MAXMSGLOG  26
#define MSGSPERSAMPLE  10
#define MSGS_NONAGGR  10
#define OVERALL_VOL  16*1048576
#define SECS_PER_SAMPLE  10
#define TARGET_CPU_SECS 0.1 /* unit seconds */
#define N_BARR   2
#else
/*Do not change anything below this line*/
#define MINMSGLOG  0
#define MAXMSGLOG  24
#define MSGSPERSAMPLE  50
#define MSGS_NONAGGR  10
#define OVERALL_VOL 16*1048576
#define TARGET_CPU_SECS  0.1 /* unit seconds */
#define N_BARR   2
#endif

If IMB_OPTIONAL is deactivated, Intel MPI Benchmarks uses the default standard mode values.