Plan
Lecture with practical project part (VU), attendendance is mandatory and really recommended. Lectures by Jesper Larsson Träff.Lectures on Mondays 15.15 - 17.00 in lecture hall "Informatikhörsaal". Additional slots for exercises Tuesdays, 15:15 - 17:00 (Informatikhörsaal). See TISS and TUWEL.
- Rules, regulations and important dates (slides from the "Vorbesprechung", Monday 4.3.2019)
- Current announcements.
- Course in TUWEL
Overview
The aim of this lecture is to given an introduction to parallel computing on different types of dedicated, parallel computing systems. This includes basic concepts on how to achieve and estimate parallel performance, and practical exposure to some of the most common, current programming models, frameworks and paradigms.Contents: basic concepts, history, motivation. Shared-memory parallel computing, concrete languages: pthreads, OpenMP and Cilk. Distributed memory computing, concrete interface: MPI. New architectures (GPU and others), new languages, other paradigms.
Lectures / Exercise discussions (in lecture hall)
- Monday, 04.03.2019: Planning, Intro, Basics
- Monday, 11.03.2019: Principles (I): time, work, cost, speed-up, Amdahls Law, scalability
- Monday, 18.03.2019: Principles (II): Patterns, tasks
- Monday, 25.03.2019: Examples and Algorithms
- Monday, 01.04.2019: Shared-memory systems, (p)threads
- Monday, 08.04.2019: OpenMP
- Tuesday, 09.04.2019: Feedback (lecture) on Exercise 1
Monday, 15.04.2019: No lecture (Easter holidays)Monday, 22.04.2019: No lecture (Easter holidays)- Monday, 29.04.2019: OpenMP
- Monday, 06.05.2019: Distributed memory systems
- Monday, 13.05.2019: MPI
- Tuesday, 14.05.2019: Feedback (lecture) on Exercise 2
- Monday, 20.05.2019: MPI
- Monday, 27.05.2019: MPI
- Monday, 03.06.2019: Cilk/OpenMP tasks
- Tuesday, 04.06.2019: Feedback (lecture) on Exercise 3
Monday, 10.06.2019: No lecture (Whitsun holiday)- Monday, 17.06.2019: More efficient shared-memory programming
- Monday, 24.06.2019: Exam
Exercises / Projects (Hand-in/Abgabe via TUWEL)
- Tuesday, 26.03.2019: Hand-in, Exercise 0, upload ssh key (Getting access to the system)
- Tuesday, 02.04.2019: Hand-in, Exercise 1
- Tuesday, 07.05.2019: Hand-in, Exercise 2
- Tuesday, 14.05.2019: Hand-in, Project 1 (OpenMP)
- Tuesday, 28.05.2019: Hand-in, Exercise 3
- Tuesday, 04.06.2019: Hand-in, Project 2 (MPI)
Final exam
Monday 24.6.Resources
- Asymptotic definitions; sums; recurrences
- Concepts and keywords for the lecture
- OpenMP standard and documents
- MPI standard and documents
- Merging in parallel, method 1
- Merging in parallel, method 2
Standards
Canonical, indispensable when programming and debugging
- OpenMP 4.5 Specification(was: OpenMP 4.0 Specification, OpenMP 3.1 Specification)
- MPI 3.1 Standard (was: MPI 3.0 Standard, MPI 2.2 Standard)
- CilkPlus resources (obsolete: Cilk 5.4.6 Reference Manual)
Programs
mpihello.c
Compile withmpicc -o mpihello -O3 mpihello.c
, execute withmpirun -np 4 ./mpihello
openmphello.c
Compile withgcc -Wall -fopenmp -o openmphello -O3 openmphello.c
, execute with./openmphello -t 10
pthreadshello.c
Compile withgcc -Wall -o pthreadshello -O3 Opthreadshello.c -pthread
, execute with./pthreadshello -t 25
cilkhello.c
Compile withgcc -Wall -fcilkplus -O3 cilkhello.c -o cilkhello
, execute with./cilkhello
cilkqsort.c
Compile withgcc -Wall -fcilkplus -O3 cilkqsort.c -o cqs
, execute with./cqs -n 1000000 -s 2
(etc.)ompquick.c
Compile withgcc -Wall -fopenmp -O3 ompqsort.c -o oqs
, execute with./oqs -n 1000000 -s 2
(etc.)
Literature
- Thomas Rauber, Gudula Rünger: Parallel Programming for Multicore and Cluster Systems. Second edition, Springer 2013.
Good overview, complements lecture well, covers some topics/applications not in lecture (and the other way round). -
Bertil Schmidt, Jorge Gonzaalez-Domiinguez and
Christian Hundt and Moritz Schlarb:
Parallel Programming. Concepts and Practice. Morgan Kaufmann, 2018.
Newer introduction, more focus on GPU programming (that will not be covered in the lecture).
Additional literature
- Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar: Introduction to Parallel Computing. Pearson Addison-Wesley 2003.
Standard selection of material, good coverage. Beware, many detail mistakes/typos.