After 50 years, the steady exponential growth rate in CMOS chip density postulated by Moore’s Law finally shows signs of slowing down. With radically different hardware technologies not ready yet to take over, this implies that multi-core, many-core and heterogeneous computer architectures are here to stay for the foreseeable future. It also implies that, in future, a larger share of ICT performance improvement must come from the software side. For best-effort resource utilization, programmers need frameworks and tools that help e.g. to coordinate computations using many cores, exploit available accelerators such as GPUs where appropriate, and prepare programs to automatically adapt to new execution environments and runtime contexts.
This presentation makes the point that a high level of programming abstraction and of portability is not necessarily a hinder for resource-aware heterogeneous computing, but can even support it. We follow an approach of composing computations from software building blocks that each may offer multiple implementation variants, especially also variants for the different types of execution units in heterogeneous systems. We show that such a multi-variant compositional approach provides a powerful means of optimizing program execution flow automatically, which leads to better performance-portability of programs. We give examples of some recent multi-variant programming frameworks for high-level, portable programming of heterogeneous parallel systems (especially, CPU-GPU-based systems), and present solutions to performance modeling and optimization problems to be addressed for efficient execution on such systems.
September 4 @ 09:20
09:20 — 10:00 (40′)

Christoph Kessler (Linköping University)