Performance Portability with Data-Centric Parallel Programming

Event Sponsor: 
Mathmatics and Computer Science Division Seminar
Start Date: 
Jul 23 2019 - 3:00pm
Building/Room: 
Building 240/Room 1406-1407
Location: 
Argonne National Laboratory
Speaker(s): 
Torsten Hoefler
Speaker(s) Title: 
ETH Zurich
Host: 
Stefan Wild

The ubiquity of accelerators in high-performance computing has driven programming complexity beyond the skill-set of the average domain scientist. To maintain performance portability in the future, it is imperative to decouple architecture-specific programming paradigms from the underlying scientific computations. We present the Stateful DataFlow multiGraph (SDFG), a data-centric intermediate representation that enables separating code definition from its optimization. We show how to tune several applications in this model and IR. Furthermore, we show a global, data-centric view of a state-of-the-art quantum transport simulator to optimize its execution on supercomputers. The approach yields coarse and fine-grained data-movement characteristics, which are used for performance and communication modeling, communication avoidance, and data-layout transformations. The transformations are tuned for the Piz Daint and Summit supercomputers, where each platform requires different caching and fusion strategies to perform optimally. We show that SDFGs deliver competitive performance, allowing domain scientists to develop applications naturally and port them to approach peak hardware performance without modifying the original scientific code.