LLOR: Automated Repair of OpenMP Programs

📅 2024-11-21
🏛️ arXiv.org
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This work addresses data races and redundant barrier directives in OpenMP-parallelized C/C++/Fortran programs, proposing the first fully automated repair framework. Methodologically, it integrates OpenMP semantic modeling, context-sensitive static analysis, constraint solving, and lightweight instrumentation-based validation, employing a language-agnostic synchronization construct insertion strategy to precisely localize race sources and generate minimal correctness-preserving patches. Evaluated on 415 real-world OpenMP programs, the tool achieves 100% zero false repairs, successfully fixes all detected data races, and reduces synchronization overhead by 12.7% on average. Its core contribution is the first end-to-end, fully automated repair solution for OpenMP programs—demonstrating generality across languages, high precision in patch generation, and practical deployability.

Technology Category

Application Category

📝 Abstract
In this paper, we present a technique for repairing data race errors in parallel programs written in C/C++ and Fortran using the OpenMP API. Our technique can also remove barriers that are deemed unnecessary for correctness. We implement these ideas in our tool called LLOR, which takes a language-independent approach to provide appropriate placements of synchronization constructs to avoid data races. To the best of our knowledge, LLOR is the only tool that can repair parallel programs that use the OpenMP API. We showcase the capabilities of LLOR by performing extensive experiments on 415 parallel programs.
Problem

Research questions and friction points this paper is trying to address.

Data Conflict Resolution
Parallel Programming
OpenMP Optimization
Innovation

Methods, ideas, or system contributions that make the work stand out.

LLOR
OpenMP API
Data Conflict Resolution