342.295, KV Parallel Computing, Armin Biere / Wolfgang Schreiner, 2017S
Topic outline
-
342.295, Time: Tuesday, 8:30-11:00, Room: S3 048, Start: March 7
This course introduces basic techniques and models for parallel computing. We will discuss the basic theory, algorithms, programming models, and design principles for building parallel programs on multi-core processors, shared memory multiprocessors, and distributed memory multiprocessors respectively cluster systems. Class presentation will be accompanied by hands-on experience, e.g. on an SGI Altix UltraViolet 1000 distributed shared memory multiprocessor.
Background in programming in C/C++ and Java is assumed. Course grades will be based on practical programming assignments.
-
The (preliminary) course schedule is as follows:
- March 7 (Schreiner): Parallel Computing - Architectures and Performance
- March 14 (Biere): Parallel Algorithms and Complexity
- March 21 (Schreiner): High Level Shared Memory Programming - OpenMP and Java
- April 4 (Biere): Low Level Shared Memory Programming - PThreads 1
- April 25 (Biere): Low Level Shared Memory Programming - PThreads 2
- May 9 (Schreiner): Designing Parallel Programs
- May 16 (Biere): Task Parallelism with Cilk
- May 23 (Schreiner): Presentation of Solutions of Exercise 1.
- May 30 (Schreiner): Message Passing Programming with MPI
- June 13 (Biere): Presentations of Solutions of Exercises 2/3.
- June 27 (Biere/Schreiner): Presentation of Solutions of Exercises 4/5.
- March 7 (Schreiner): Parallel Computing - Architectures and Performance
-
-
We will hand out five assignments that can be elaborated individually or by pairs of students. At least three assignments have to be turned in and graded positively to pass the course. Submitters may be asked for presentations of their solutions; be prepared to give at least one such presentation.