[논문 리뷰] MPI Derived Datatypes: Performance Expectations and Status Quo
이 논문은 MPI에서 파생된 자료형의 성능을 기본적인 기대치와 비교하여 평가하며, 일반적인 MPI 라이브러리들이 최적화되지 않은 형식 정규화로 인해 기본 성능 지침(예: 의미적으로 동일한 자료형 간 동일한 성능)을 자주 위반함을 드러낸다. 이는 MPI 자료형 생성자 선택이 성능에 상당한 영향을 미친다는 것을 보여주며, 일부 라이브러리(예: MVAPICH2-2.1)는 성능이 떨어지며, 심지어 단순한 레이아웃이라도 MPI_Type_create_struct와 같은 완전한 자료형 생성자를 사용해 자세히 자료형을 기술하는 것이 최적의 효율성을 얻는 데 유리하다는 것을 보여준다.
We examine natural expectations on communication performance using MPI derived datatypes in comparison to the baseline, "raw" performance of communicating simple, non-contiguous data layouts. We show that common MPI libraries sometimes violate these datatype performance expectations, and discuss reasons why this happens, but also show cases where MPI libraries perform well. Our findings are in many ways surprising and disappointing. First, the performance of derived datatypes is sometimes worse than the semantically equivalent packing and unpacking using the corresponding MPI functionality. Second, the communication performance equivalence stated in the MPI standard between a single contiguous datatype and the repetition of its constituent datatype does not hold universally. Third, the heuristics that are typically employed by MPI libraries at type-commit time are insufficient to enforce natural performance guidelines, and better type normalization heuristics may have a significant performance impact. We show cases where all the MPI type constructors are necessary to achieve the expected performance for certain data layouts. We describe our benchmarking approach to verify the datatype performance guidelines, and present extensive verification results for different MPI libraries.
연구 동기 및 목표
- MPI에서 파생된 자료형이 원시적인 패킹/언패킹과 비교할 때 자연스러운 성능 기대치를 충족하는지 조사하기.
- MPI 표준에서 연속형과 반복형 자료형 간 성능 동일성 보장이 실제로 적용되는지 평가하기.
- 다양한 MPI 자료형 생성자(MPI_Type_create_struct, MPI_Type_indexed 등)가 통신 성능에 미치는 영향을 평가하기.
- MPI_Type_commit 시점에 자료형 정규화를 위한 현재 MPI 라이브러리 히وري스틱의 한계를 평가하기.
- 다양한 MPI 구현 환경에서 자료형 성능 지침을 검증할 수 있는 벤치마킹 프레임워크 제공하기.
제안 방법
- 비연속적이고 타일링된 데이터 레이아웃(예: 스트라이드가 있는 부분행렬)을 대상으로 하여 제어된 조건에서 성능을 테스트할 수 있도록 합성적이고 파rameterized된 벤치마크 설계하기.
- 이전 연구를 바탕으로 의미적 동일성, 정규화, 성능 일관성에 중점을 둔 네 가지 구체적 성능 지침(GL1–GL4) 수립 및 테스트하기.
- NEC MPI, MVAPICH2, Open MPI 등 여러 MPI 라이브러리에서 피н퐁 통신 벤치마크를 구현하여 다양한 자료형 기술 방식에 대한 지연과 대역폭 측정하기.
- 동일한 데이터 레이아웃에 대해 세 가지 다른 파생 자료형 표현 방식(완전 인덱스 기반, 연속형 및 인덱스 기반, 구조체 기반) 간 성능 비교하기.
- 결과 분석을 통해 기대되는 성능 동일성 위반 여부를 탐지하고, 자료형 정규화 히وري스틱의 효과성 평가하기.
- 합성 패턴과 실제 HPC 애플리케이션에 적용 가능한 실제 레이아웃 모티프를 조합하여 실제 응용 프로그램과의 관련성 확보하기.
실험 결과
연구 질문
- RQ1MPI 라이브러리들은 의미적으로 동일한 파생 자료형에 대해 일관되게 동일한 성능을 보장하는가? (MPI 표준에서 요구하는 바)
- RQ2일반적인 MPI 라이브러리들이 단일 연속형 자료형과 그 반복 요소로 구성된 자료형 간 성능 동일성과 같은 기본 성능 기대치를 얼마나 위반하는가?
- RQ3동일한 데이터 레이아웃에서 MPI 자료형 생성자 선택(MPI_Type_create_struct 대비 MPI_Type_indexed 등)이 통신 성능에 어떤 영향을 미치는가?
- RQ4MPI_Type_commit 과정에서 사용되는 히وري스틱이 최적의 성능을 보장하기에 충분한가, 아니면 자료형을 효과적으로 정규화하지 못하는가?
- RQ5자료형 기술 방식 간 성능 차이가 알고리즘적 또는 아키텍처적 제약이 아닌, 실행 구현 수준의 비효율성 때문인가?
주요 결과
- 파생 자료형의 성능이 의미적으로 동일한 MPI_Pack 및 MPI_Unpack 사용보다 열 劣하는 경우가 있으며, 이는 자료형이 최소한 동일한 효율성을 가져야 한다는 기대와 배치된다.
- MPI 표준에서 단일 연속형 자료형과 그 반복 요소로 구성된 자료형 간 성능 동일성 보장이 모든 MPI 라이브러리에서 일관되게 적용되지 않는다.
- MVAPICH2-2.1는 동일한 자료형 기술 방식에서 NEC MPI-1.3.1 및 Open MPI-1.10.1보다 성능이著しく 열 劣하며, 특히 큰 스트라이드를 가진 경우 두드러진다.
- MPI_Type_create_struct를 사용하는 RowCol-struct 표현 방식은 RowCol-fully-indexed 및 RowCol-contiguous-and-indexed를 항상 뛰어넘으며, 일부 케이스에서 최대 두 배의 성능 향상을 기록한다.
- MPI_Type_commit에서 사용하는 히وري스틱은 자료형을 최적의 내부 표현으로 정규화하는 데 부족하여, 사용자 정의 기술 방식에 따라 성능 격차가 발생한다.
- 통신 호출 도중 실시간으로 정규화를 수행하는 것은 높은 계산 비용으로 인해 효율적이지 않으며, 이는 사전에 정규화를 수행하는 것이 필수적임을 시사하며, MPI에서 더 나은 쿼리 및 안내 메커니즘의 필요성을 강조한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.