Software Technology

Programming Models and Runtimes

SOLLVE: Scaling OpenMP with LLVm for Exascale Performance and Portability

Principal Investigator: Barbara Chapman, Brookhaven National Laboratory

The SOLLVE project is centered on developing enhancements to OpenMP that meet critical needs of ECP applications. It will enable applications to use directives to create productive, performant, and performance-portable intra-node code; ensure that OpenMP evolves to support the needs of exascale applications; facilitate OpenMP-MPI interoperability; produce an enhanced LLVM compiler; and contribute to an ECP solution for lightweight threading.

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. Most ECP application proposals include OpenMP as part of their strategy for reaching exascale levels of performance. The applications teams have identified gaps in OpenMP functionality that must be addressed if it is to meet their exascale development needs, including portable data layout abstractions, movement of complex data structures to/from accelerator memories (deep copy), their use in conjunction with the latest C++ standards, tasks and the ability to create performance portable code. In addition, exascale computer hardware will exhibit a dramatic increase in the amount and complexity of intranode threading with greater heterogeneity and more complex hierarchical memory subsystems.