Advance program MCC2019

Wednesday November 27, 2019

8:45 - Registration opens

9:00 - Welcome

9:10 - High-level portable programming of heterogeneous systems using SkePU

Christoph Kessler and August Ernstsson, Linköping University

Abstract: Today's computer systems are increasingly heterogeneous and parallel, and expose different (often, low-level) programming models to the user, such as pthreads, OpenCL, CUDA or MPI. While this allows the (technically skilled) programmer to better exploit the performance potential of a given heterogeneous system, it leads to problems in programmability as well as in code and performance portability when migrating to new heterogeneous systems and configurations.

As a high-level approach to portable multi-/manycore computing, we present SkePU, a C++ based high-level portable programming framework that provides a simple and unified programming interface for specifying computations with the help of so-called (algorithmic) skeletons. Skeletons are pre-defined generic software building blocks derived from higher-order functions such as map, farm, scan, stencil and reduce, which can be parameterized in problem-specific user code and which implement certain frequently occurring patterns of control and data flow for which efficient target-specific implementations may exist. The SkePU skeletons have multiple implementations targeting different platforms including multi-core CPU, GPU and multi-GPU systems and clusters, and can automatically learn from sample executions to automatically switch to the expected fastest implementation.

SkePU also provides STL-based data-containers that abstract from the memory hierarchy and distribution, and that dynamically optimize memory management, communication and access locality.

SkePU is open-source, relatively easy to install, and is being actively used in both research and in teaching parallel programming classes.

In this tutorial we introduce SkePU, including some of its more technical aspects, and demonstrate how high-level portable programs can be written in SkePU and deployed. We also provide a guided hands-on programming exercise for participants and help with the installation process where necessary (a binary distribution for x86 Linux will be provided for quick installation). Participants are encouraged to bring their laptop if doing the programming exercise.

Slides

10:40 - Coffee break

11:00 - Session 1: Task-based programming

  • Recursive Task Generation for Scalable SDF Graph Execution on Multicore Processors, Georgios Georgakarakos and Johan Lilius, slides
  • Scheduling Moldable Parallel Streaming Tasks on Heterogeneous Platforms with Frequency Scaling, Sebastian Litzinger, Jörg Keller, and Christoph Kessler, slides
  • Towards an Energy Aware Task Scheduler for Asymmetric Architectures, Jing Chen, Madhavan Manivannan, Mustafa Abduljabbar, and Miquel Pericàs

12:00 - Lunch

13:15 - Session 2: Memory systems

  • LLC-guided Data Migration in Hybrid Memory Systems, Evangelos Vasilakis, Vassilis Papaefstathiou, Pedro Trancoso, and Ioannis Sourdis
  • AVR: Reducing Memory Traffic with Approximate Value Reconstruction, Albin Eldstål-Damlin, Pedro Trancoso and Ioannis Sourdis

14:00 - Session 3: Industrial and invited session

  • Boosting Memory Performance with Ziptilion, Angelos Arelakis, Zeropoint Technologies, slides
  • Ericsson Research Future Vision... and Device Research, Sven Karlsson, Ericsson Research
  • Resource Management in Heterogeneous Systems - Challenges, Research Topics and Experiments, Felix Eberhardt, Hasso Plattner Institute, Potsdam, Germany, slides

15:30 - Coffee break

15:50 - Session 4: Energy and performance

  • Multi-variant User Functions for Platform-aware Skeleton Programming, August Ernstsson and Christoph Kessler, slides
  • SaC: Exploiting Execution-Time Slack to Save Energy in Heterogeneous Multicore Systems, M Waqar Azhar, Miquel Pericàs, and Per Stenström, slides
  • Performance Modelling of Deep Learning on Intel Many Integrated Core Architectures, André Viebke, Sabri Pllana, Suejb Memti, and Joanna Kolodziej, slides

16:50 - Closing remarks