Developments in memory management in OpenMP. (2019) - Sewall, Jason; Pennycook, S. John; Duran, Alejandro; Terboven, Christian; Tian, Xinmin; Narayanaswamy, Ravi
Modern computers with multi-/many-core processors and accelerators feature a sophisticated and deep memory hierarchy, potentially including distinct main memory, high-bandwidth memory, texture memory and scratchpad memory. The performance characteristics of these memories are varied, and studies have demonstrated the importance of using them effectively. In this article, we explore some of the major issues in developing software to effectively and portably implement these technologies and describe enhancements being added to the OpenMP language to bridge this software-hardware gap. Our proposal separately exposes the characteristics of memory resources (such as kind) and the characteristics of allocations (such as alignment), and is fully compatible with existing OpenMP constructs.