Autotuning

The autotuner functionality allows you to automatically choose the best algorithm per communicator and per message size for some collective operations. The autotuner iterates over algorithms defined in I_MPI_ADJUST Family Environment Variables.

The collectives that are currently available for autotuning: MPI_Allreduce, MPI_Bcast, MPI_Barrier, MPI_Reduce, MPI_Gather, MPI_Scatter, MPI_Alltoall, MPI_Allgatherv, MPI_Reduce_scatter_block, MPI_Scan, MPI_Exscan.

To get started with the tuner, follow these steps:

  1. Launch the application with the autotuner enabled and specify the dump file, which stores results:

    I_MPI_TUNING_AUTO=1
    I_MPI_TUNING_BIN_DUMP=<tuning_results.dat>
  2. Launch the application with the tuning results generated at the previous step:

    I_MPI_TUNING_BIN=<tuning_results.dat>
    Or use the -tune Hydra option.
  3. If you experience performance issues, see Environment Variables for Autotuning.

For example:

  1. $ export I_MPI_TUNING_AUTO=1
    $ export I_MPI_TUNING_AUTO_SYNC=1
    $ export I_MPI_TUNING_AUTO_ITER_NUM=5
    $ export I_MPI_TUNING_BIN_DUMP=./tuning_results.dat
    $ mpirun -n 128 -ppn 64 IMB-MPI1 allreduce -iter 1000,800 -time 4800
  2. $ export I_MPI_TUNING_BIN=./tuning_results.dat
    $ mpirun -n 128 -ppn 64 IMB-MPI1 allreduce -iter 1000,800 -time 4800

Note

To tune collectives on a communicator identified with the help of Application Performance Snapshot (APS), execute the following variable at step 1: I_MPI_TUNING_AUTO_COMM_LIST=comm_id_1, … , comm_id_n.

See Also

Environment Variables for Autotuning

Optimization Notice: 

standard

For more complete information about compiler optimizations, see our Optimization Notice.
Select sticky button color: 
Orange (only for download buttons)