Implementation of an OPARI back-end in the InstRO performance measurement framework
In high-performance computing (HPC) the runtime of an application is of great interest. With parallel hardware evolving, programming paradigms, such as OpenMP , have been established and are commonly applied to parallelize available software. To improve a software’s performance, first limiting factors need to be determined using performance analysis tools.
To support the performance measurement of OpenMP constructs with today’s performance analysis tools, such as Cube , the OPARI infrastructure has been developed. Yet, it does not allow selective measurements and, consequently, results in large runtime overhead. The InstRO framework was developed to support selective measurements. InstRO is based on the ROSE compiler infrastructure, which allows to perform source-to-source transformations on the AST level.
In this thesis, a back-end pass for OpenMP statements should be implemented within InstRO. The framework either manually or heuristically selects regions in the program’s source code and passes them on to the transformation passes and the back-end passes. Of special interest is the combination of filtering techniques and the newly implemented back-end.
The implemented back-end is evaluated w.r.t. runtime overhead using state-of-the-art high-performance-computing benchmarks, such as HPCG or selected „Coral“ benchmarks.
Technologies / Requirements
- Good command of C++
- Basic knowledge of compiler technology
- Software development in Linux environment