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.