Go to main content
Formats
Format
BibTeX
MARCXML
TextMARC
MARC
DublinCore
EndNote
NLM
RefWorks
RIS

Files

Abstract

The growing complexity of high-performance computing (HPC) systems has led to the development of parallel programming models, such as OpenMP and OpenACC, to make it easier to utilize modern HPC architectures. These models provide a higher-level interface for specifying parallelism patterns and reducing programming effort, but performance optimization and customization are left to the compilers. Despite the availability of state-of-the-art OpenMP compilers, including LLVM, GCC, and ROSE, there remains a need for a compiler that is easily usable and extendable by researchers and students who are not in the field of compiler development, supports multiple parallel programming models, and has comparable performance to mainstream compilers.The REX compiler has been proposed as a solution to these challenges. It is built upon the ROSE compiler and uses a unified parallel intermediate representation (UPIR), targeting the LLVM OpenMP runtime for optimal performance. REX provides essential OpenMP 5.0/5.1 constructs and preliminary support for OpenACC 3.2. Its source-to-source transformation capabilities offer flexibility and ease of use with minimal overhead. It can be installed as a Docker image or used through a cloud service. The REX compiler's performance has been evaluated using an enhanced version of the parallel benchmark, Rodinia, which compares GPU offloading performance across different parallel programming models and compilers. In conclusion, the REX compiler provides a unique solution for parallel programming research and education, balancing performance, portability, flexibility, and usability.

Details

PDF

Statistics

from
to
Export
Download Full History