Bachelor/Master-Praktikum: Future Trends in High Performance Computing - Summer 16

From Sccswiki
Jump to navigation Jump to search
Summer 16
Univ.-Prof. Dr. Michael Bader, Emily Mo-Hellenbrand, M.Sc., Alexander Pöppl, M.Sc.
Time and Place
Initial Meeting: January 26th, 10:00-11:00, room 02.07.023
Students from Master CSE (TBA), Master Informatics (IN2106, IN2257), Advanced Bachelor (IN0012)
Introduction to PGAS language X10 (Time: TBA, Room: TBA)
No written exam.
Semesterwochenstunden / ECTS Credits
6 SWS (2S) / 10 Credits


  • Max. number of participants: 12

Initial meeting

  • The slides of the initial meeting may be found here.


In the last ten years the period of vast increases in processing power mostly achieved by increasing the clock frequency of a processor has come to an end. Instead, computer architectures are getting more complex in order to accommodate the growing demand for processing power. Modern CPUs typically have a wide range of SIMD instructions for fine-grained data parallelism, and are capable of executing several threads on each of their several cores. Memory accesses are passed through multiple cache levels to hide memory access latencies. In addition to that, hardware specialized in performing massively parallel computations is getting more and more popular. Examples are GPUs and accelerators such as the Xeon Phi. In the HPC context, several nodes, each with its own CPU(s) and GPU(s) may be joined into a cluster.

Regular programming techniques and paradigms are no longer sufficient to fully utilize this hardware. Frameworks such as OpenCL take the structure and heterogeneity of the underlying hardware into account and provide the programming environment to expose all available resources, such as GPUs and accelerators. Novel approaches (such as invasive computing) expose the allocation of resources to the users, allowing them to request required resources and, by offering the reallocation of resources at runtime, enabling them to adapt to changing computing demands.

The behavior of the hardware at runtime also needs to be considered. Modern Cluster architectures are not necessarily capable to run at peak utilization 100% of the time. To avoid the overheating of the hardware and the resulting degradation of the silicon, the clock frequency of the CPU may be drastically reduced, or single nodes may even be shut down completely for a time. Taking these problems into account is an additional challenge developers face today.

Background: The seminar will (partly) discuss research executed in the collaborative research unit Invasive Computing funded by the German Research Foundation (DFG).


  • PGAS language X10 (distributed- and shared-memory parallelization)
  • Vectorization
  • Linear solvers
  • Shallow water equation simulation
  • GPU programming
  • Mesh refinement scheme


Lecture week Time Room Description Material
2 April 19, Tue, 10:00-18:00 IGSSE 5530.EG.003 X10 Interactive Tutorial Day 1: • Basic syntax introduction • Parallel features 0_Hello_World 1_Basic_Syntax 2_Parallel_Features Writer SimulationArea
2 April 20, Wed, 10:00-18:00 IGSSE 5530.EG.003 X10 Interactive Tutorial Day 2: • PGAS features • Advanced features 3_PGAS_Features 4_Advanced_Features
3 April 25, Mon, 14:00-15:30 MI 02.07.023 Lecture: Iterative linear solver and parallelization Worksheet 1 class NSSim
4 May 2, Mon, 14:00-15:30 MI 02.07.023 Office hour -
5 May 9, Mon, 14:00-15:30 MI 02.07.023 Lecture: Shallow water equation (SWE) block implementation (serial) SWE project templateWorksheet 2
6 May 19, Thur, 14:00-15:30 MI 02.07.023 Office hour -
7 May 23, Mon, 14:00-15:30 MI 02.07.023 Lecture: Multi-block coordination, global time-stepping scheme (distributed-memory parallelization) -
8 May 30, Mon, 14:00-15:30 MI 02.07.023 Office hour -
9 June 6, Mon, 14:00-15:30 MI 02.07.023 Lecture: Block parallelization (shared-memory parallelization) & solver vectorization (introduction to native interface coupling) -
10 June 13, Mon, 14:00-15:30 MI 02.07.023 Office hour -
11 June 20, Mon, 14:00-15:30 MI 02.07.023 Lecture: Individual project phase (GPU implementation or mesh refinement, load-balancing) -
12 June 27, Mon, 14:00-15:30 MI 02.07.023 Office hour -
13 July 4, Mon, 14:00-15:30 MI 02.07.023 Office hour -
14 July 11, Mon, 14:00-15:30 MI 02.07.023 Final presentation (20 min per group). Submission of code and final report. -

NOTE: Please bring your laptop to the "X10 Interactive Tutorial", as there will be coding exercises.


  • Course language: English
  • Programming language: familiar with Java or C++
  • Basic knowledge in linear algebra


WS 1 (5%) + WS 2 (15%) + WS 3 (15%) + WS 4 (15%) + Project (25%) + Final Report (15%) + Presentation (10%)