Parallel Programming Languages, Libraries, Models and Notations
TimeMonday, November 13th5pm - 5:07pm
DescriptionAs directive based programming APIs like OpenMP introduce directives for accelerator devices and people are starting to use them in production codes, it is critical to have a mechanism that checks for an implementation’s conformance to the standard to make sure they work correctly across architectures. This process at the same time uncovers possible ambiguities in the standard for implementors and users. We try to fill this gap through a validation and verification test-suite. This ongoing work focus first on the offload directives available in OpenMP 4.5. Our tests focus on functionality as well as use-cases from kernels extracted from applications. We have tested our tests with LLVM OpenMP compiler and runtime implementation amongst other compilers (GNU, IBM XL, Cray CCE), and we document some interesting test-cases that have uncovered implementation bugs in LLVM as well as ambiguities in the standard. In this paper, we share our methodology and experiences toward a comprehensive validation and verification test suite.