Keynote Speakers
An Overview of High Performance Computing and Future Requirements
Abstract
In this talk we examine how high performance computing has changed over the last ten years and look toward the future in terms of trends. These changes have had and will continue to impact our numerical scientific software significantly. A new generation of software libraries and algorithms are needed for the effective and reliable use of (wide area) dynamic, distributed, and parallel environments. Some of the software and algorithm challenges have already been encountered, such as management of communication and memory hierarchies through a combination of compile-time and run-time techniques, but the increased scale of computation, depth of memory hierarchies, range of latencies, and increased run-time environment variability will make these problems much harder.
Specialization vs. Abstraction: Parallel Programming Perspectives
Abstract
While different kinds of faster and more complex accelerators compete with more and more sophisticated “classical” multi/many cores shared and distributed memory architectures, new and different parallel programming models and frameworks have been proposed with the aim of improving programmer efficiency, implementing faster applications and efficiently targeting different, heterogeneous hardware architectures. High level programming abstractions usually improve programmer experience and code portability. On the other hand, specialized programming abstractions usually improve efficiency of the application code. In front of a few de facto standard programming models used for the majority of HPC applications, we discuss how abstraction and specializations may be synergically used at different levels of a modern parallel programming toolchain to keep both the advantages relative to programmability and portability—not only across different architectures with similar amounts of parallel resources, but also across similar of different architectures with sensibly different amounts of parallel resources to be exploited—and efficiency of applications.