Lecture Parallel Programming (2009)



NB There is no lecture on Thursday 15 October

NB: The examination date is 22 October; please register at least 8 days in advance at https://tisvu.vu.nl

NB: There is a separate Practical course Parallel Programming of 6 ECTS that will start after the lectures. See here for last year's PPP website.

Lecturer prof dr ir H.E. Bal

Period Fall

Credits 6 ECTS

Time/location First block, Tuesdays 9-11.45 (M143) and Thursdays 13.30-15.15 (various rooms, see blackboard)

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, search algorithms, and bioinformatics. Finally, parallel programming on (world-wide) Grids is discussed, including an interesting and modern application: multi-media content analysis. 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.

Form Lectures

Assessment Written exam (no intermediate exams)

Literature

The material for the examination exists of:

Example exams are here (old one, April 2002) and here (April 2008)

Overhead sheets

1. Background

2. Introduction parallel programming

3a. Parallel machines - Introduction

3b. Parallel machines - Cluster computers

3c. Blue Gene

3d. Parallel machines - Performance metrics

4. Message passing

5. MPI

6. Java

7. HPF

8. N-body methods

9. Transposition-Driven Scheduling

10. Genomic repeats detection

11. Parallel computing on Grids

12. Multimedia computing

13. Summary