342.295, KV Parallel Computing, Armin Biere / Wolfgang Schreiner, 2018S
Aperçu des sections
-
342.295, Time: Tuesday, 8:30-11:00, Room: S3 048, Start: March 6
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 6 (Biere): Introduction and Organization, Parallel Algorithms and Complexity
- March 13 (Schreiner): Parallel Architectures and Performance
- March 20 (Schreiner): Shared Memory Programming with OpenMP and Java
- April 10 (Biere): Shared Memory Programming, Lockless Data Structures
- April 17 (Schreiner): Presentations of Solutions 1
- April 24 (Biere/van Diijk): Shared Memory Programming with Cilk, Lace, Work Stealing
- May 8 (Biere): Shared Memory Programming with PThreads 2
- May 15 (Schreiner): Message Passing Programming with MPI
- May 29 (Schreiner): Designing Parallel Programs
- June 5 (Biere): Presentations of Solutions 2
- June 26 (Biere/Schreiner): Presentation of Solutions of Exercises 3/4.
- March 6 (Biere): Introduction and Organization, Parallel Algorithms and Complexity
-
-
We will hand out four 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.