The Role of Programming Systems on the Road to Exascale Computing
Oak Ridge National Laboratory
Detailed lecture notes and references are available here. (PDF)
From the perspective of computational scientists, programming systems are the most visible component of HPC systems and they serve a critical role in facilitating HPC architectures that are high performance, energy efficient, scalable, robust, and productive. However, these goals must be balanced against the trends of increasing architectural complexity and increasing hierarchical parallelism, and the inertia and investments in legacy software. The fulcrum point of this balance is dependent on programming systems like compilers, libraries, and runtime systems. Recent reports illustrate that the road to Exascale Computing will increase these challenges substantially. Indeed, many of these challenges are already emerging in today’s multicore and heterogeneous computing systems. In this talk, I will present this motivation, and then explore emerging approaches to programming systems including recent research on graphics processors.