High Performance Computing I
This lecture provides an introduction to parallel computer architectures and standard programming interfaces for parallel numerical algorithms. We focus on few numerical algorithms like dense matrix multiplications and LU decompositions which allow us to approach step by step the theoretical peak performance.
- Introduction to the programming language C++ with a special focus on numerical linear algebra
- Memory hierarchies
- Parallel computer architectures
- shared memory with POSIX threads and OpenMP
- distributed systems with MPI
Tentative schedule which is possibly changed:
- Lecture: Monday, 2 pm to 6 pm, Helmholtzstraße 18, room E.20, and in the labs Helmholtzstraße 18, room E.44, and O27/211.
- Lab: Friday, 2 pm to 4 pm, Helmholtzstraße 22, room E.04, and in the labs Helmholtzstraße 18, room E.44, and O27/211. Please note that Friday sessions are open-ended, i.e. we provide support in the labs until 6 pm.
The first lecture will be on Monday, 16 October 2017.
Linear algebra, calculus, numerical linear algebra, and programming are required. We expect some basic knowledge of C. Knowledge of C++ is not required as we provide an introduction to C++. Introduction to High Performance Computing is recommended but not strictly required. Consider, however, that probably considerable more time will be required for the assignments of the lab sessions without the associated introductory lecture of the bachelor program.
The exams will be held orally in March, and April 2018. An oral exam takes about 45 minutes. You are free to chose English or German as exam language. An active and successful participation in the labs (at least half of the quizzes are passed) and an registration for the exam at HIS is required. Following days are offered for oral exams:
- 8 March 2018 (no free slots left)
- 21 March 2018 (no free slots left)
- 27 March 2018 (no free slots left)
- 6 April 2018 (no free slots left)
All slots are gone. Please send an email to Andreas F. Borchert if you still need an exam. We will offer you then an appointment at the beginning of the summer semester. Please understand that we cannot offer concrete days right now as we do not have yet our schedules for the summer semester.
Resources and examples of the lectures will be posted here:
- utilities random-chase, linear-chase, and fused-linear-chase (on github)
- Introduction to CUDA (slides for session 24)
Lab sessions will be held on Monday and Friday. Each session comes with an online guide that summarizes the preceding lecture and provides practical exercises. We will provide support in the labs on Monday and Friday until 6pm.
A registration at SLC for HPC I is necessary to participate in the lab sessions.
All accounts at Justus will be closed on March 2nd, 2018. Please backup your files.
Some of the lab sessions come with a quiz which are due a week later:
|1||27 October 2017||3 November 2017, 2pm|
|2||3 November 2017||10 November 2017, 2pm|
|3||10 November 2017||17 November 2017, 2pm|
|4||20 November 2017||27 November 2017, 2pm|
|5||1 December 2017||8 December 2017, 2pm|
|6||22 December 2017||12 Januar 2018, 2pm|
- ISO 9899:TC3
- ISO/IEC 14882 (draft of C++ standard of 13 October 2013)
- In German language: Zur Einführung in die Programmiersprache C empfiehlt sich der Vorlesungsbegleiter der Vorlesung Systemnahe Software I
- Manual of gnuplot 5.0 (PDF)
- fmt::printf (type-safe alternative to std::printf)
Dr. Andreas F. Borchert
Dr. Michael Lehn