General-Purpose Performance Portable Programming Models for Productive Exascale Computing
Alister Johnson
Committee: Allen Malony (chair), Boyana Norris, Zena Ariola, Michael Wolfe
Area Exam(Jun 2020)
Keywords: exascale, performance portability, programming languages, compilers

Modern supercomputer architectures have grown increasingly complex and diverse since the end of Moore's law in the mid-2000s, and are far more difficult to program than their predecessors. While HPC programming models have improved such that applications are now generally portable between architectures, their performance can still vary wildly, and developers now need to spend a great deal of time tuning or even rewriting their applications for each new machine to get the performance they need. New performance portable programming models aim to solve this problem and give high performance on all architectures with minimal effort from developers.

This area exam will survey many of these proposed general-purpose programming models, including libraries, parallel languages, directive-based language extensions, and source-to-source translators, and compare them in terms of use cases, performance, portability, and developer productivity. It will also discuss compiler and general-purpose language standard (e.g., C++) support for performance portability features.