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_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