Core Concepts
OMP-Engineer는 구문 분석과 문맥 학습을 결합하여 OpenMP 병렬화를 자동화하고 성능을 향상시킨다.
Abstract
OMP-Engineer는 기존의 소스 대 소스(S2S) 변환 방식과 자연어 처리(NLP) 기반 방식의 장점을 결합한 새로운 접근법이다.
구문 분석 단계에서는 ANTLR을 사용하여 추상 구문 트리(AST)를 생성하고, 병렬화가 어려운 코드 부분(예: I/O 작업)과 데이터 의존성을 식별한다.
이후 대규모 언어 모델(LLM)에 OpenMP 지시어 사용에 대한 문맥 학습 자료를 제공하여, 정확하고 효율적인 병렬 코드를 생성할 수 있도록 한다.
성능 평가 결과, OMP-Engineer는 기존 도구들에 비해 BT, LU, SP 벤치마크에서 실행 시간을 크게 단축시켰다. 특히 ChatGPT와 같은 NLP 기반 도구들은 병렬 코드 생성 시 오류가 많아 비교에서 제외되었다.
향후 연구 방향으로는 다양한 병렬화 패턴과 지시어에 대한 문맥 학습 자료 확장, 대규모 코드베이스 지원을 위한 확장성 향상 등이 있다.
Stats
순차 실행 시간: BT 122.93초, LU 102.00초, SP 83.44초
OMP-Engineer 실행 시간: BT 52.47초, LU 56.81초, SP 44.18초
Autopar 실행 시간: BT 510.42초, LU 361.55초, SP 82.23초
Par4all 실행 시간: BT 71.01초, LU 380.06초, SP 52.19초
Quotes
"OMP-Engineer는 구문 분석과 문맥 학습을 결합하여 정확하고 효율적인 병렬 코드를 생성한다."
"OMP-Engineer의 성능 평가 결과는 기존 도구들에 비해 월등한 실행 시간 단축을 보여준다."