VL: Parallele Programmierung
VL 12067 Parallele Programmierung
Prof. Dr. R. Loogen
Mittwochs, 16.05 - 17.45 Uhr, LE HS IV (neu!) (Lahnberge)
Donnerstags, 9.00 - 10.45 Uhr, LE HS IV (neu!) (Lahnberge)
Beginn: 13. April 2005
Am Mittwoch, dem 6. Juli und am Mittwoch, dem 13. Juli findet die Vorlesung im Hörsaal II statt!
UE 12068 Jost Berthold
Montags, 11.15 - 13 Uhr, LE HS IV (neu!) (Lahnberge) oder dienstags, 11.15 - 12.45 Uhr, LE HS I (neu!) (Lahnberge)
Beginn: 18. April 2005
Am 4. und 5. Juli fallen die Übungen aus!
Fachgebiet Klassifikation Semester Fortsetzung Skript
Informatik Hauptstudium >=3 nein

Voraussetzungen: Gute Programmierkenntnisse, von Vorteil sind Kenntnisse in C und Linux
Querverbindungen: -
Scheinkriterien: Voraussetzungen für einen unbenoteten Schein:
  1. aktive Teilnahme an den Übungen
  2. erfolgreiche Bearbeitung von mindestens 50 % der Übungsaufgaben
  3. erfolgreiche Präsentation der Lösungen von Übungsaufgaben
Für einen benoteten Schein muss zusätzlich ein Kolloquium oder eine Klausur bestanden werden.
Klausurtermin: Donnerstag, 14. Juli, 9.00 - 11.00 Uhr, HS IV
Klausurergebnis: Das Ergebnis der Klausur vom 14.7.2005 hängt gegenüber
dem Informatik-Sekretariat auf Ebene D5 (Lahnberge) aus.
Von 28 Teilnehmern haben 18 bestanden.
Klausureinsicht: Di., 19.7.05, 10:30 im SR V


Literatur:
  • I. Foster: Designing and Building Parallel Programs, Addison Wesley 1995
  • M. Quinn: Designing Efficient Algorithms for Parallel Computers, Mc Graw Hill 1987
  • Thomas Bräunl: Parallele Programmierung - Eine Einführung, McGraw Hill 1994
  • Thomas Rauber, Gudula Rünger: Parallele und verteilte Programmierung, Springer-Verlag 2000
  • Gregory R. Andrews: Foundations of Multithreaded, Parallel, and Distributed Programming Addison-Wesley, 2000 (ISBN 0-201-35752-6)
  • Joseph Jaja: An Introduction to Parallel Algorithms, Addison Wesley 1992
  • A. Gibbons, W. Rytter: Efficient Parallel Algorithms, Cambridge University Press 1988
Folien/Programme aus der Vorlesung Thread-Synchronisation in Java (pdf-Datei), Beispielprogramme
MPI-Beispielprogramme
Algorithmische Skelette (pdf-Datei)
Alternative Konzepte (pdf-Datei)

Übungsblätter: Blatt 1, 18.04.2005 (zur ersten Übung) (Postscript, PDF)
Blatt 2, 21.04.2005 (Postscript, PDF)
Blatt 3, 28.04.2005 (Postscript, PDF)
Blatt 4, 04.05.2005 (Postscript, PDF)
Blatt 5, 12.05.2005 (Postscript, PDF)
Blatt 6, 19.05.2005 (Postscript, PDF)
Blatt 7, 25.05.2005 (Postscript, PDF)   Programm bubblesort_seq.c und Eingabedaten (groß, klein)
Zur LAM-Konfiguration siehe den Hinweis unten!
Blatt 8, 02.06.2005 (Postscript, PDF)
Blatt 9, 09.06.2005 (Postscript, PDF)
Blatt 10, 16.06.2005 (Postscript, PDF)
Abgabe vor der Übung, ab Montag, 27.6.2005
Blatt 11, 27/28.06.2005 (Übung) (Postscript, PDF)
Ausgabe in der Übung, Abgabe: 07.07.2005 (Vorlesung)

Links: Programmiersprache MPD: (am Fachbereich unter /app/lang/parallel/mpd zu finden)

MPD-StartseiteSprachübersichtOperatoren und Funktionen (PDF, lokal)Beispielprogramme (lokal) 

MPD-Beispiele aus der Vorlesung 
MPD Syntax-Highlighting

MPI (Message Passing Interface): MPI-Standard,   MPI-Kurzreferenz (pdf),  
und eine kurze Bedienungsanleitung (pdf, ps - lokal)
Einige Implementierungen: MPICH,   LAM-MPI (am Fachbereich unter /app/lang/parallel/lam-7.0.4 zu finden),   Open MPI (alpha)

C-Programmierung: (Wikipedia: Infos über die Sprache C)
Es gibt unzählige Webseiten, die bei der Programmierung in C helfen können.
Explizit genannt sei hier (willkürlich ausgewählt): Material von wikibooks(nicht sehr ausführlich), ein Online-Buch, eine kürzere Zusammenfassung, der Online Kurs C++ (was eigentlich nicht C ist!) unseres Fachbereichs, sowie der Obfuscated C Code Contest.


Inhalt:
  1. Einführung mit Begriffsbestimmungen und Klassifikation
  2. Entwurf paralleler Programme
  3. Grundkonzepte paralleler Programmierung
    -> Die nebenläufige Programmiersprache MPD
    Synchronisation und Kommunikation
    • über gemeinsame Variablen
    • über Nachrichten
  4. Programmierung nachrichtengekoppelter Multiprozessoren
    -> Die MPI-Bibliothek (Message-Passing-Interface)
  5. Parallele Algorithmen
  6. Algorithmische Skelette
  7. Alternative Ansätze zur parallelen Programmierung


Zuletzt geändert: Thursday, 03-Nov-2005 16:59:05 CET