MVAPICH2 성능 최적화 옵션
Last updated
Last updated
MPI 라이브러리로 MVAPICH2를 활용하는 경우 작업 스크립트 내에서 환경변수를 사용하여 프로세스 간 통신 알고리즘을 설정할 수 있다. 주요 키워드는 아래와 같으며, 사용자는 코드 내에서 많이 활용되는 collective communication에 대하여 환경변수 설정을 활용하여 실행 성능을 최적화할 수 있다.
MV2_INTRA 환경변수는 노드 내 MPI 프로세스 통신에서 활용되며 MV2_INTER 환경변수는 노드 간 MPI 프로세스 통신에서 활용된다. MPI_Alltoall의 경우 INTRA 및 INTER 두가지 경우에 대하여 동일한 알고리즘이 적용된다. 크기가 다른 데이터 전송을 위한 루틴(예: MPI_Alltoallv) 또는 non-blocking 기반 루틴(예: MPI_Ibcast)에도 동일하게 적용 가능하며 설정 방법은 아래와 같다.
MVAPICH2 라이브러리 collective communication 주요 환경 변수
※ 사용 예시 (bash 스크립트 작성 경우) : export MV2_INTER_ALLREDUCE_TUNING=2
※ 각 환경변수에 대한 자세한 설명은 http://mvapich.cse.ohio-state.edu/userguide/ 참조
2022년 9월 22일에 마지막으로 업데이트되었습니다.
MPI 통신
환경변수
설정범위
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