Bachelor/Master-Praktikum: Future Trends in High Performance Computing - Summer 16
From Sccswiki
- Term
- Summer 16
- Lecturer
- 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
- Audience
- Students from Master CSE (TBA), Master Informatics (IN2106, IN2257), Advanced Bachelor (IN0012)
- Tutorials
- Introduction to PGAS language X10 (Time: TBA, Room: TBA)
- Exam
- No written exam.
- Semesterwochenstunden / ECTS Credits
- 6 SWS (2S) / 10 Credits
- TUMonline
- Link
Contents |
Capacity
- Max. number of participants: 12
Initial meeting
- The slides of the initial meeting may be found here.
Description
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).
Topics
- PGAS language X10 (distributed- and shared-memory parallelization)
- Vectorization
- Linear solvers
- Shallow water equation simulation
- GPU programming
- Mesh refinement scheme
Schedule
Lecture week | Time | Room | Description | Material |
1 | ||||
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.
Requirements
- Course language: English
- Programming language: familiar with Java or C++
- Basic knowledge in linear algebra
Grading
WS 1 (5%) + WS 2 (15%) + WS 3 (15%) + WS 4 (15%) + Project (25%) + Final Report (15%) + Presentation (10%)