Scaling OpenMP via LLVM for Exascale Performance and Portability (SOLLVE)
OpenMP, the de facto directive-based standard for on-node programming provides a convenient and flexible mechanism to exploit the substantial compute power within the nodes of today’s leadership class facilities. Despite significant enhancements in recent years, however, several gaps remain, in particular with respect to portable data layout abstractions, movement of complex data structures to/from accelerator memories, their use in conjunction with the latest C++ standards, and the ability to create performance portable code. Moreover, OpenMP will need to be adapted to exascale hardware's use of intranode threading with greater heterogeneity and more complex hierarchical memory subsystems.
This project will deliver a high-quality, robust implementation of OpenMP, extensions to the an open source compiler infrastructure, and development of the runtime system to exploit lightweight threading for scalability and facilitate interoperability with MPI. We also will create a validation suite to assess our progress. Moreover, twe will encourage the accelerated development of high-quality, complete vendor implementations and facilitate extensive interactions between the applications developers and OpenMP developers in industry.