paper-with-me

Papers

OMPar: Automatic Parallelization with AI-Driven Source-to-Source Compilation

2024-09-23 · Tal Kadosh, Niranjan Hasabnis, Prema Soundararajan, Vy A. Vo, Mihai Capota, Nesreen Ahmed, Yuval Pinter, Gal Oren

Manual parallelization of code remains a significant challenge due to the complexities of modern software systems and the widespread adoption of multi-core architectures. This paper introduces OMPar, an AI-driven tool designed to automate the parallelization of C/C++ code using OpenMP pragmas. OMPar integrates Large Language Models (LLMs) through two key components: OMPify, which assesses loop parallelization potential, and MonoCoder-OMP, a new fine-tuned model which generates precise OpenMP pragmas. The evaluation of OMPar follows the same rigorous process applied to traditional tools like source-to-source AutoPar and ICPC compilers: (1) ensuring the generated code compiles and runs correctly in serial form, (2) assessing performance with the gradual addition of threads and corresponding physical cores, and (3) verifying and validating the correctness of the code's output. Benchmarks from HeCBench and ParEval are used to evaluate accuracy and performance. Experimental results demonstrate that OMPar significantly outperforms traditional methods, achieving higher accuracy in identifying parallelizable loops and generating efficient pragmas. Beyond accuracy, OMPar offers advantages such as the ability to work on partial or incomplete codebases and the capacity to continuously learn from new code patterns, enhancing its parallelization capabilities over time. These results underscore the potential of LLMs in revolutionizing automatic parallelization techniques, paving the way for more efficient and scalable parallel computing systems.

📄 PDF Abstract BibTeX arXiv:2409.14771

Code (0)

등록된 구현이 없습니다.

Tasks

C++ code

Similar Papers 제목 키워드 기반

Automatic Identification of Parallelizable Loops Using Transformer-Based Source Code Representations

2026-03-31 · Izavan dos S. Correia, Henrique C. T. Santos, Tiago A. E. Ferreira arxiv

Automatic parallelization remains a challenging problem in software engineering, particularly in identifying code regions where loops can be safely executed in parallel on modern multi-core architectures. Traditional sta…

Computational Efficiency

Learning to Parallelize in a Shared-Memory Environment with Transformers

2022-04-27 · Re'em Harel, Yuval Pinter, Gal Oren

In past years, the world has switched to many-core and multi-core shared memory architectures. As a result, there is a growing need to utilize these architectures by introducing shared memory parallelization schemes to s…

Management

Advising OpenMP Parallelization via a Graph-Based Approach with Transformers

2023-05-16 · Tal Kadosh, Nadav Schneider, Niranjan Hasabnis, Timothy Mattson 외

There is an ever-present need for shared memory parallelization schemes to exploit the full potential of multi-core architectures. The most common parallelization API addressing this need today is OpenMP. Nevertheless, w…

Data Augmentation

MPI-rical: Data-Driven MPI Distributed Parallelism Assistance with Transformers

2023-05-16 · Nadav Schneider, Tal Kadosh, Niranjan Hasabnis, Timothy Mattson 외

Message Passing Interface (MPI) plays a crucial role in distributed memory parallelization across multiple nodes. However, parallelizing MPI code manually, and specifically, performing domain decomposition, is a challeng…

Code CompletionCode GenerationCode TranslationLanguage Modeling+2

A Wall-time Minimizing Parallelization Strategy for Approximate Bayesian Computation

2023-04-30 · Emad Alamoudi, Felipe Reck, Nils Bundgaard, Frederik Graw 외

Approximate Bayesian Computation (ABC) is a widely applicable and popular approach to estimating unknown parameters of mechanistic models. As ABC analyses are computationally expensive, parallelization on high-performanc…

Scheduling