The cost of data movement has always been an important concern in high performance computing (HPC) systems. It has now become the dominant factor in terms of both energy consumption and performance. Support for expression of data locality has been explored in the past, but those efforts have had only modest success in being adopted in HPC applications for various reasons. them However, with the increasing complexity of the memory hierarchy and higher parallelism in emerging HPC systems, locality management has acquired a new urgency. Developers can no longer limit themselves to low-level solutions and ignore the potential for productivity and performance portability obtained by using locality abstractions. Fortunately, the trend emerging in recent literature on the topic alleviates many of the concerns that got in the way of their adoption by application developers. Data locality abstractions are available in the forms of libraries, data structures, languages and runtime systems; a common theme is increasing productivity without sacrificing performance. This paper examines these trends and identifies commonalities that can combine various locality concepts to develop a comprehensive approach to expressing and managing data locality on future large-scale high-performance computing systems.
KAUST Repository Item: Exported on 2020-10-01
Acknowledgements: Authors would like to thank other PADAL14 and PADAL15 workshop participants: Maciej Besta, Jed Brown, Cy Chan, Sung-Eun Choi, Jack Choquette, Brice Goglin, Jesus Labarta, Leonidas Linardakis, Edward Luke, Satoshi Matsuoka, Peter Messmer, Lawrence Mitchell, Kathryn O'Brien, David Padua, Robert B. Ross, Marie-Christine Sawley, Robert Schreiber, Thomas Schulthess. James Sexton, Suzanne Michelle Shontz, Adrian Tate, Gysi Tobias, Engo Toshio, Mohamed Wahib, Chih-Chieh Yang. This work was partially supported by the German Research Foundation under contract TE163/17-1. This work was partially supported by the Grant 655965 by the European Commission.