Presentation
ompTest – Unit Testing with OMPT
DescriptionOpenMP® is a widely used API in high-performance computing that enables parallelization on the host as well as offload work to an accelerator, such as a GPU. The OpenMP specification defines an OpenMP Tool Interface (OMPT), which allows a third-party tool be notified about OpenMP runtime events. Ensuring that the runtime correctly reports such events is thus important. We propose a unit testing framework for testing OpenMP implementations, like the ROCm™ compiler. It offers a simple-to-use framework that allows a tester to check for OMPT events in addition to the regular unit testing code. It also facilitates writing concise tests while bridging the semantic gap between the unit under test and the OMPT-event testing. Our experimental results show that for the ROCm compiler, ompTest provides coverage similar to its existing test cases, with better readability, and a compile and runtime speedup close to 2.5× for the ROCm OMPT test suite.