Parallele Programmierung (SS12)
Vorlesungsinhalt
Die parallele Programmierung hat vielfältige Einsatzmöglichkeiten auf einer breiten Palette von
Rechnerarchitekturen; diese umfassen große Parallelrechner, aber auch kostengünstige
Multiprozessor-Desktoprechner, Cluster von PCs, Plattformen mit Hyperthreading-Technologie oder
Multicore-Prozessoren. Parallele Programmiertechniken werden sich daher in viele Bereiche der
Softwareerstellung ausbreiten.
Die Vorlesung stellt verschiedene Ansätze der parallelen Programmierung anhand der Programmierumgebungen Pthreads, Java-Threads, OpenMP, MPI, PVM und UPC vor. Es werden die zugrunde liegenden Programmiermodelle, parallele Entwurfsmuster, Konzepte der Programmierumgebungen sowie die praktische Umsetzung paralleler Programme vermittelt.
Die Vorlesung stellt verschiedene Ansätze der parallelen Programmierung anhand der Programmierumgebungen Pthreads, Java-Threads, OpenMP, MPI, PVM und UPC vor. Es werden die zugrunde liegenden Programmiermodelle, parallele Entwurfsmuster, Konzepte der Programmierumgebungen sowie die praktische Umsetzung paralleler Programme vermittelt.
Literaturempfehlungen
- T. Rauber, G. Rünger: Parallele Programmierung, 2. Auflage, Springer-Verlag, 2007.
- T. Rauber, G. Rünger: Parallel Programming for Multicore and Cluster Systems, Springer-Verlag, 2010
- MPI: A Message-Passing Interface Standard, Message Passing Interface Forum (www.mpi-forum.org)
- Ausführliche Literaturangabe: pdf
Übungsaufgaben
- 1. Übungsblatt pdf Diagramme: pdf pdf
- 2. Übungsblatt pdf
- 3. Übungsblatt pdf
- 4. Übungsblatt pdf
- 5. Übungsblatt pdf
- 6. Übungsblatt pdf
- 7. Übungsblatt pdf
- Lösung Hello World hello_world.c
- Lösung zur Deadlockvermeidung gather_ring.c
- Berechnung von Pi: calc_pi.c Lösung: calc_pi_mpi.c
- Berechnung Mandelbrotmenge: mandelbrot2.c Lösung: mandelbrot2_mpi.c
- 8. Übungsblatt pdf
- Filteranwendung: image_filter.c Testbild: natureflowerblue1339.jpg
- Lösung: image_filter_mpi.c
- 9. Übungsblatt pdf
- Lösung Kartesischer Kommunikator cart_grid.c
- Lösung globale Synchronisation test_onesided2.c
- Lösung Teilsynchronisation test_onesided.c
- Lösung Locksynchronisation test_onesided3.c
- 10. Übungsblatt pdf
- Programm: dining_phils.c
- Lösung: hello.c
- Lösung: dining_phils_l.c
- Lösung: calc_pi_pthread2.c
- 11. Übungsblatt pdf
- Lösung: fifo_queue.c
Informationen zur Abschlussklausur
- Die Konsultation findet am Donnerstag, den 5.07.2012 von 11.30 Uhr bis 13.00 Uhr im Raum 1/346 statt.
- Die Klausur Parallele Programmierung findet am Dienstag, den 10.07.2012 von 13.45 Uhr bis 15.15 Uhr im Raum 1/204 statt.