Skip to Main content Skip to Navigation

Programming Abstractions for Data Locality

Adrian Tate 1 Amir Kamil 2 Anshu Dubey 2 Armin Größlinger 3 Brad Chamberlain 1 Brice Goglin 4, 5 Carter Edwards 6 Chris J. Newburn 7 David Padua 8 Didem Unat 2 Emmanuel Jeannot 4, 5 Frank Hannig 9 Tobias Gysi 10 Hatem Ltaief 11 James Sexton 12 Jesus Labarta 13 John Shalf 2 Karl Fürlinger 14 Kathryn O’brien 12 Leonidas Linardakis 15 Maciej Besta 10 Marie-Christine Sawley 7 Mark Abraham 16 Mauro Bianco 17 Miquel Pericàs 18 Naoya Maruyama 19 Paul H. J. Kelly 20 Peter Messmer 21 Robert B. Ross 22 Romain Cledat 7 Satoshi Matsuoka 23 Thomas Schulthess 17 Torsten Hoefler 10 Vitus J. Leung 6
Abstract : The goal of the workshop and this report is to identify common themes and standardize concepts for locality-preserving abstractions for exascale programming models. Current software tools are built on the premise that computing is the most expensive component, we are rapidly moving to an era that computing is cheap and massively parallel while data movement dominates energy and performance costs. In order to respond to exascale systems (the next generation of high performance computing systems), the scientific computing community needs to refactor their applications to align with the emerging data-centric paradigm. Our applications must be evolved to express information about data locality. Unfortunately current programming environments offer few ways to do so. They ignore the incurred cost of communication and simply rely on the hardware cache coherency to virtualize data movement. With the increasing importance of task-level parallelism on future systems, task models have to support constructs that express data locality and affinity. At the system level, communication libraries implicitly assume all the processing elements are equidistant to each other. In order to take advantage of emerging technologies, application developers need a set of programming abstractions to describe data locality for the new computing ecosystem. The new programming paradigm should be more data centric and allow to describe how to decompose and how to layout data in the memory.Fortunately, there are many emerging concepts such as constructs for tiling, data layout, array views, task and thread affinity, and topology aware communication libraries for managing data locality. There is an opportunity to identify commonalities in strategy to enable us to combine the best of these concepts to develop a comprehensive approach to expressing and managing data locality on exascale programming systems. These programming model abstractions can expose crucial information about data locality to the compiler and runtime system to enable performance-portable code. The research question is to identify the right level of abstraction, which includes techniques that range from template libraries all the way to completely new languages to achieve this goal.
Complete list of metadata

Cited literature [89 references]  Display  Hide  Download
Contributor : Brice Goglin Connect in order to contact the contributor
Submitted on : Saturday, November 15, 2014 - 11:33:04 AM
Last modification on : Monday, December 20, 2021 - 4:50:12 PM
Long-term archiving on: : Friday, April 14, 2017 - 4:54:09 PM


Files produced by the author(s)


  • HAL Id : hal-01083080, version 1



Adrian Tate, Amir Kamil, Anshu Dubey, Armin Größlinger, Brad Chamberlain, et al.. Programming Abstractions for Data Locality. [Research Report] PADAL Workshop 2014, April 28--29, Swiss National Supercomputing Center (CSCS), Lugano, Switzerland. 2014, pp.54. ⟨hal-01083080⟩



Les métriques sont temporairement indisponibles