Skip to main content
QUICK REVIEW

[논문 리뷰] Automated Synthesis of Divide and Conquer Parallelism

Azadeh Farzan, Victor Nicolet|arXiv (Cornell University)|2017. 01. 29.
Parallel Computing and Optimization Techniques참고 문헌 31인용 수 3
한 줄 요약

이 논문은 순차적 코드에서 분할 정복 병렬 처리를 자동으로 합성하는 기술을 제안한다. 이 기술은 정확한 조인 연산을 자동으로 생성하고, 필요에 따라 원본 코드에 보조 누적 변수를 추가하여 병렬 처리를 가능하게 한다. 접근 방식은 문법 유도 합성과 기계 검증된 정확성 증명을 사용하여 런타임 오버헤드 없이 다양한 벤치마크에서 거의 이상적인 성능 향상을 달성한다.

ABSTRACT

This paper focuses on automated synthesis of divide-and-conquer parallelism, which is a common parallel programming skeleton supported by many cross-platform multithreaded libraries. The challenges of producing (manually or automatically) a correct divide-and-conquer parallel program from a given sequential code are two-fold: (1) assuming that individual worker threads execute a code identical to the sequential code, the programmer has to provide the extra code for dividing the tasks and combining the computation results, and (2) sometimes, the sequential code may not be usable as is, and may need to be modified by the programmer. We address both challenges in this paper. We present an automated synthesis technique for the case where no modifications to the sequential code are required, and we propose an algorithm for modifying the sequential code to make it suitable for parallelization when some modification is necessary. The paper presents theoretical results for when this {\em modification} is efficiently possible, and experimental evaluation of the technique and the quality of the produced parallel programs.

연구 동기 및 목표

  • 순차적 코드에서 분할 정복 병렬 처리를 위한 정확한 조인 연산을 자동으로 합성하는 것.
  • 자연스러운 조인 연산이 없는 루프를 병렬 처리할 수 있도록 보조 누적 변수를 자동으로 확장하여 처리하는 문제를 해결하는 것.
  • 이러한 확장을 효율적으로 가능하게 하고 자동으로 발견할 수 있는 이론적 기초를 제공하는 것.
  • 모든 합성된 조인 연산에 대해 기계 검증된 정확성 증명을 생성하여 모든 입력에 대해 정확성을 보장하는 것.
  • 합성된 병렬 프로그램의 성능와 확장성 을 실제 벤치마크에서 평가하는 것.

제안 방법

  • 제약적이지만 표현력이 뛰어난 검색 공간에서 정확한 조인 연산자를 찾기 위해 문법 유도 합성(SGS)을 사용하는 것.
  • 분할 정복 병렬 처리를 가능하게 하기 위해 순차 루프에 보조 누적 변수를 자동으로 확장하는 형식적 프레임워크를 정의하는 것.
  • 세 번째 동형정리와 관련된 대수적 원리를 활용하여 조인 함수의 합성을 이끄는 것.
  • 모든 입력 도메인에서 합성된 조인 연산의 정확성을 검증하기 위해 자동 증명 생성을 통합하는 것.
  • 정확성, 효율성, 낮은 오버헤드를 균형 잡는 알고리즘 설계.
  • 감소 연산과 is-sorted, 길이와 같은 비결합 연산을 포함한 다양한 벤치마크에 방법을 적용하는 것.

실험 결과

연구 질문

  • RQ1정확한 조인 연산자가 존재할 경우, 분할 정복 병렬 처리를 위해 자동으로 합성할 수 있는가?
  • RQ2비병렬 처리가 가능한 루프는 어떤 조건에서 자동으로 보조 누적 변수를 확장하여 효율적인 분할 정복 병렬 처리를 가능하게 할 수 있는가?
  • RQ3합성된 조인 연산에 대해 기계 검증된 정확성 증명을 자동으로 생성할 수 있는가?
  • RQ4코드 확장의 오버헤드를 낮게 유지하면서도 병렬 처리에서 성능 향상을 확보할 수 있는가?
  • RQ5합성된 병렬 프로그램의 성능는 순차적 및 수작업 최적화된 버전과 비교해 어떻게 되는가?

주요 결과

  • 제안된 방법은 is-sorted와 길이와 같이 조인이 명백하지 않은 복잡한 케이스를 포함한 모든 테스트된 벤치마크에서 정확한 조인 연산을 성공적으로 합성하였다.
  • 알고리즘은 이전에는 불가능했던 병렬 처리를 가능하게 하기 위해 보조 누적 변수를 포함한 코드 확장을 자동으로 생성한다.
  • 모든 합성된 조인 연산은 기계 검증된 정확성 증명을 동반하여 전체 입력 도메인에서 정확성을 보장한다.
  • 평균적으로 거의 이상적인 성능 향상을 달성하였으며, 평균 속도 향상은 9.8이며 표준편차는 0.04로 일관성과 확장성의 높음을 보여준다.
  • SYMPA와 [33]과 같은 이전 작업보다 우수한 성능을 보였으며, 왼쪽 및 오른쪽 방향 순회가 필요한 방법들과 달리 단일 순차적 구현만 필요로 한다.
  • 길이와 is-sorted와 같이 기본적으로 결합 법칙이 성립하지 않는 함수에 대해서도 자동으로 필요한 보조 정보를 추론함으로써 이 방법은 효과적이다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.