Skip to main content
QUICK REVIEW

[논문 리뷰] Learning to Parallelize with OpenMP by Augmented Heterogeneous AST Representation

Le Chen, Quazi Ishtiaque Mahmud|arXiv (Cornell University)|2023. 05. 09.
Software Engineering Research인용 수 5
한 줄 요약

이 논문은 OpenMP를 위한 C 코드에서 루프 수준의 병렬성을 탐지하기 위해 이질적 확장된 추상구문트리(aug-AST)를 사용하는 그래프 기반 기계학습 접근법인 Graph2Par를 제안한다. 새로운 코드 표현 방식과 이질적 그래프 신경망(HGT)을 활용하여, 병렬화 가능한 루프를 85%의 정확도로 식별하며, 토큰 기반 모델들을 능가하고 복잡하거나 중첩된 루프에서 기존에 발견되지 않았던 48개의 병렬성 기회를 탐지한다.

ABSTRACT

Detecting parallelizable code regions is a challenging task, even for experienced developers. Numerous recent studies have explored the use of machine learning for code analysis and program synthesis, including parallelization, in light of the success of machine learning in natural language processing. However, applying machine learning techniques to parallelism detection presents several challenges, such as the lack of an adequate dataset for training, an effective code representation with rich information, and a suitable machine learning model to learn the latent features of code for diverse analyses. To address these challenges, we propose a novel graph-based learning approach called Graph2Par that utilizes a heterogeneous augmented abstract syntax tree (Augmented-AST) representation for code. The proposed approach primarily focused on loop-level parallelization with OpenMP. Moreover, we create an OMP\_Serial dataset with 18598 parallelizable and 13972 non-parallelizable loops to train the machine learning models. Our results show that our proposed approach achieves the accuracy of parallelizable code region detection with 85\% accuracy and outperforms the state-of-the-art token-based machine learning approach. These results indicate that our approach is competitive with state-of-the-art tools and capable of handling loops with complex structures that other tools may overlook.

연구 동기 및 목표

  • 루프 수준 병렬성 탐지에서 기계학습 모델을 훈련하기 위한 고품질 레이블이 부여된 데이터셋의 부족 문제를 해결한다.
  • 병렬성 분석에 핵심적인 구조적 의존성 정보를 忽시하는 토큰 기반 코드 표현 방식의 한계를 극복한다.
  • 문법적 및 구조적 특징을 모두 포괄하는 더 표현력 있는 코드 표현 방식을 개발하여 모델의 일반화 능력을 향상시킨다.
  • 기존 정적 분석 도구가 놓친 복잡한 병렬성 패턴, 예를 들어 중첩 루프나 루프 간 의존성이 없는 경우를 포함한 패턴을 탐지할 수 있는 기계학습 파ip라인을 설계한다.
  • 프로그램 분석 및 자동 병렬화 연구에 광범위하게 적용 가능한 재사용 가능한 데이터셋과 모델 프레임워크를 구축한다.

제안 방법

  • GitHub, 벤치마크, 그리고 합성 생성을 통해 18,598개의 병렬화 가능한 루프와 13,972개의 병렬화 불가능한 루프를 포함하는 OMP_Serial 데이터셋을 구축한다.
  • 주석 및 공백 제거 등의 사전 처리 단계를 통해 C 코드에서 루프를 추출하고, OpenMP pragma의 존재 여부에 따라 각 루프를 레이블링한다.
  • 각 루프의 AST를 노드 유형, 제어/데이터 의존성, 감소 연산과 같은 루프 전용 속성을 인코딩한 이질적 확장된 추상구문트리(aug-AST)로 변환한다.
  • 다양한 노드 및 간선 유형을 갖는 이질적 그래프로 aug-AST를 표현하여 다양한 의미적 및 구조적 관계를 포착한다.
  • aug-AST를 기반으로 이질적 그래프 신경망(HGT)을 훈련시어 루프가 병렬화 가능한지 여부와 적용 가능한 OpenMP pragma를 분류한다.
  • 메시지 전달을 통해 이질적 그래프 구조를 활용하여 HGT 모델을 네 가지 후행 작업(병렬성 탐지, pragma 추천, 의존성 분석)에 적용한다.
Figure 1: Proposed methodology. Data collection and generation: our dataset contains data from GitHub crawling, benchmark collection, and synthetic data generation. Data pre-processing: we extracted loops from codes with pre-processing steps, e.g., removing comments and blank lines. We also label th
Figure 1: Proposed methodology. Data collection and generation: our dataset contains data from GitHub crawling, benchmark collection, and synthetic data generation. Data pre-processing: we extracted loops from codes with pre-processing steps, e.g., removing comments and blank lines. We also label th

실험 결과

연구 질문

  • RQ1구조적 특징과 텍스트적 특징을 결합한 그래프 기반 코드 표현 방식이 토큰 기반 모델 대비 루프 수준 병렬성 탐지 정확도를 향상시키는가?
  • RQ2이질적 확장된 AST가 전통적인 도구가 놓치는 복잡한 루프 패턴—예를 들어 감소 연산이 있는 루프나 루프 간 의존성이 없는 중첩 루프—을 얼마나 잘 포괄하는가?
  • RQ3제안된 HGT 기반 모델이 복잡한 제어 또는 데이터 의존성이 있는 루프에서 병렬성 기회를 얼마나 효과적으로 탐지하는가?
  • RQ4OMP_Serial 데이터셋이 향후 자동 병렬화 도구 및 모델의 훈련과 평가를 위한 신뢰할 수 있는 벤치마크로 기능할 수 있는가?
  • RQ5aug-AST 표현 방식을 생성하는 데 발생하는 실질적 오버헤드는 얼마이며, 실세계 정적 분석 파이프라인에 적용 가능한가?

주요 결과

  • Graph2Par 모델은 병렬화 가능한 루프를 85%의 정확도로 탐지하여 최신 토큰 기반 기계학습 접근 방식을 능가한다.
  • 모델은 세 가지 기존 도구(DiscoPoP, PLUTO, autoPar)가 놓친 48개의 병렬성 기회를 성공적으로 탐지한다.
  • aug-AST 표현 방식 덕분에 루프 간 의존성이 없고 중첩된 루프, 감소 연산이 있는 루프 등 복잡한 케이스에서도 병렬성을 탐지할 수 있다.
  • 모델은 2D 배열 접근과 단일 인덱스(j 등)에 대한 감소 연산이 있는 루프가 안전하게 병렬화될 수 있음을 정확히 식별한다. 이는 기존 도구가 실패하는 경우에도 해당된다.
  • aug-AST 생성 오버헤드는 평균 6.9줄의 일반적인 루프 기준으로 밀리초 수준이며, 정적 분석 파이프라인에 실용적으로 적용 가능하다.
  • OMP_Serial 데이터셋은 향후 자동 병렬화 및 기계학습 기반 코드 분석 연구에 매우 유용한 대규모 벤치마크 자원을 제공한다.
Figure 2: Category-wise loops missed by renowned parallelization assistant tools. The results are generated using the OMP_Serial dataset introduced in section 4 .
Figure 2: Category-wise loops missed by renowned parallelization assistant tools. The results are generated using the OMP_Serial dataset introduced in section 4 .

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

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

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

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