Lecturers prof dr ir H.E. Bal and dr. Rob van Nieuwpoort
Credits 6 ECTS
Time/location Mondays 13.30-15.15 (HG-04A05, main building) and Thursdays 9.00-10.45 (M143)
Content This lecture discusses how programs can be written that run in parallel on a large number of processors, with the goal of reducing execution time. The class has a brief introduction into parallel computing systems (architectures). The focus of the class, however, is on programming methods, languages, and applications. Both traditional techniques (like message passing) and more advanced techniques (like parallel object-oriented languages) will be discussed. Several parallel applications are discussed, including N-body simulations and search algorithms. About 4-5 lectures are devoted to an important new development: programming many-core machines such as Graphical Processing Units (GPUs). The class fits well with existing research projects within the department of Computing Systems. It is a good basis for M.Sc. projects in the area of parallel programming, which use the parallel computing systems of the department.
Assessment Written exam (no intermediate exams)
NB: There is a separate Practical course Parallel Programming of 6 ECTS that will start after the lectures. Details will eventually be made available on this page .
The material for the examination exists of:
An example exam is here (April 2008). Example questions for GPUs are here (Jan 2011).
2. Introduction parallel programming
3a. Parallel machines - Introduction
3b. Parallel machines - Cluster computers
4. Message passing
8. N-body methods
9. Parallel machines - Roofline model
10. Many-core computing: hardware (2/5)
11. Many-core computing: CUDA introduction (3/5)
12. Many-core computing: Advanced CUDA (4/5)
13. Many-core computing: The LOFAR software telescope (5/5)