MVAPICH2 Performance Optimization Options

When using MVAPICH2 as the MPI library, you can configure inter-process communication algorithms by setting environment variables within your job script. The key options are listed below, and users can optimize execution performance by setting environment variables for collective communications that are heavily used within their code.

The MV2_INTRA environment variable is used for MPI process communication within a node, while the MV2_INTER environment variable is used for MPI process communication between nodes. For MPI_Alltoall, the same algorithm is applied for both INTRA and INTER cases. Routines for transmitting data of varying sizes (e.g., MPI_Alltoallv) or non-blocking routines (e.g., MPI_Ibcast), the same settings can be applied, and the configuration method is as follows:

  • Key Environment Variables for MVAPICH2 Library Collective Communication

MPI communication
Environment variable
Setting range

MPI_Gather

MV2_INTRA_GATHER_TUNING

MV2_INTER_GATHER_TUNING

0 ~ 3

MPI_Bcast

MV2_INTRA_BCAST_TUNING

MV2_INTER_BCAST_TUNING

0 ~ 10

MPI_Scatter

MV2_INTRA_SCATTER_TUNING

MV2_INTER_SCATTER_TUNING

1 ~ 5

MPI_Allreduce

MV2_INTRA_ALLREDUCE_TUNING

MV2_INTER_ALLREDUCE_TUNING

1 ~ 6

MPI_Reduce

MV2_INTRA_REDUCE_TUNING

MV2_INTER_REDUCE_TUNING

1 ~ 6

MPI_Allgather

MV2_INTRA_ALLGATHER_TUNING

MV2_INTER_ALLGATHER_TUNING

1 ~ 11

MPI_Alltoall

MV2_ALLTOALL_TUNING

0 ~ 4

※ Usage example (when creating a bash script): export MV2_INTER_ALLREDUCE_TUNING=2

※ For detailed explanations of each environment variable, refer to http://mvapich.cse.ohio-state.edu/userguide/

Last updated on November 08, 2024.

Last updated