[논문 리뷰] A Tale of Three Runtimes
이 논문은 계층적 매핑 전략과 런타임에 종속되지 않는 C++ 추상화 계층을 사용하여, 세 가지 별개의 런타임—Intel의 CnC, ETI의 SWARM, OCR—을 대상으로 순차적 C 코드에서 이벤트 기반, 튜플 스페이스 기반 프로그램을 자동으로 생성하는 컴파일러 기반 접근법을 제시한다. 이 방법은 루프 순열 가능 유형을 활용하여 효율적이고 보수적인 동기화를 가능하게 하며, 최적의 작업 크기에서 최소한의 오버헤드로 높은 성능을 달성한다.
This contribution discusses the automatic generation of event-driven, tuple-space based programs for task-oriented execution models from a sequential C specification. We developed a hierarchical mapping solution using auto-parallelizing compiler technology to target three different runtimes relying on event-driven tasks (EDTs). Our solution benefits from the important observation that loop types encode short, transitive relations among EDTs that are compact and efficiently evaluated at runtime. In this context, permutable loops are of particular importance as they translate immediately into conservative point-to-point synchronizations of distance 1. Our solution generates calls into a runtime-agnostic C++ layer, which we have retargeted to Intel's Concurrent Collections (CnC), ETI's SWARM, and the Open Community Runtime (OCR). Experience with other runtime systems motivates our introduction of support for hierarchical async-finishes in CnC. Experimental data is provided to show the benefit of automatically generated code for EDT-based runtimes as well as comparisons across runtimes.
연구 동기 및 목표
- 다양한 런타임을 대상으로 순차적 C 명세에서 이벤트 기반, 튜플 스페이스 기반 프로그램을 자동으로 생성하고 이식 가능하게 하는 것.
- 깊은 메모리 계층에서 확장 가능하고 세밀한 작업 기반 실행 모델로 순차적 코드를 매핑하는 데 도전하는 것.
- 루프 유형 분석을 통한 작업 생성 및 의존성 관리 최적화로 세밀한 작업 기반에서의 런타임 오버헤드를 줄이는 것.
- 통합되고 재타겟 가능한 추상화 계층을 통해 고성능 커널의 런타임 간 비교 및 이식을 가능하게 하는 것.
- 이식 가능하고 재사용 가능한 코드 생성을 통해 향후 아키텍처의 진화, 특히 깊은 메모리 계층을 가진 엑사스케일 시스템을 지원하는 것.
제안 방법
- 자동 병렬화 컴파일러 기술을 사용하여 루프 네스트를 논리적 트리 표현으로 재구조화하여 계층적 작업 분해를 가능하게 한다.
- 특히 순열 가능한 루프를 식별하여 이벤트 기반 작업(EDT) 간의 보수적이고 거리 1의 점 대 점 동기화를 유추한다.
- 공통된 EDT 프로그래밍 모델 패턴을 추상화하는 런타임에 종속되지 않는 C++ 레이어(RAL)를 사용하여 CnC, SWARM, OCR로의 재타겟팅을 가능하게 한다.
- 프레임워크는 계층적 async-finish를 지원하여 대규모 실행에서 로드 밸런싱을 향상시키고 동기화 병목 현상을 줄인다.
- 재구조화된 루프에서 의존성 정보를 추출하여 컴파일 시점에 튜플 스페이스 기반의 작업 의존성을 생성한다.
- 표현 템플릿을 사용하여 다차원 의존성 공간을 표현하고 런타임에서 효율적이고 확장 가능한 의존성 해결을 가능하게 한다.
실험 결과
연구 질문
- RQ1단일 컴파일러 기반 프레임워크가 여러 EDT 기반 런타임에 대해 효율적이고 이식 가능한 이벤트 기반 코드를 자동으로 생성할 수 있는가?
- RQ2순열 가능한 루프 유형의 사용이 이벤트 기반 작업 그래프에서 효율적이고 보수적인 동기화를 어떻게 가능하게 하는가?
- RQ3다양한 런타임에서 세밀한 작업 관리의 성능 오버헤드는 얼마이며, 작업 크기에 따라 어떻게 스케일링되는가?
- RQ4통합되고 재타겟 가능한 추상화 계층이 다양한 런타임 시스템 간 고성능 커널 이식의 노력을 줄일 수 있는가?
- RQ5작업 크기의 영향이 이벤트 기반 실행 모델에서 유효한 작업 비율과 전체 성능에 미치는 영향은 무엇인가?
주요 결과
- 프레임워크는 Intel의 CnC, ETI의 SWARM, Open Community Runtime(OCR)로 성공적으로 재타겟되었으며, 런타임 간 이식 가능성의 가능성을 입증했다.
- 최적의 작업 크기(예: 16-16-16 타일)에서 OCR에서 SOR 커널의 성능은 최대 14.39 Gflop/s에 도달하여 강력한 확장성을 보였다.
- 작업 크기가 4일 경우, OCR에서 비대기 시간의 85% 이상이 유효한 작업에 소비되어 중간 크기의 작업에서 낮은 오버헤드를 나타냈다.
- 더 세밀한 작업 크기(예: 10-10-100)에서는 유효한 작업 비율이 10%로 떨어졌고, 최대 80%의 시간이 작업 도난 및 큐 관리에 소비되어 중요한 성능 한계를 드러냈다.
- 세밀한 EDT 관리의 오버헤드는 여전히 높으며, 특히 일정 작업 크기 이하에서는 런타임 시스템의 추가 최적화가 필요하다는 것을 시사한다.
- 순열 가능한 루프의 사용은 거리 1의 즉각적이고 보수적인 동기화를 가능하게 하여 의존성 관리의 단순화와 성능 향상을 이끌었다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.