Art und Inhalt |
Titel: |
Theorie paralleler und verteilter Systeme (PVS) |
Veranstalter: |
Tantau |
Einordnung: |
Diplom-Studiengang 6. Semester, Pflicht |
Inhalt: |
Die Veranstaltungslernziele sind:
- Modellierung von parallelen und verteilten Systemen kennen
- Parallele und verteilte Algorithmen kennen, erstellen und analysieren können
- Grenzen der Parallelisierbarkeit kennen
- Verteilte Systeme modellieren und spezifizieren können
Lernziele der einzelnen Vorlesungen und der zugehörigen Übungen
Vorbereitung
- 1. VL: Einführung, Organisatorisches, Erwartungsabfrage
Parallele Systeme
- 2. VL: Parallele Modelle
Leitbild: Wie rechnet man parallel?
- Modell des DAGs kennen und anwenden können
- Modelle der PRAM kennen und anwenden können
- Modelle mit Netzwerkkommunikation kennen
- Vor- und Nachteile benennen können
- 3. VL: Ressourcemaße bei parallelen Programmen
Leitbild: Lohnt sich der ganze Aufwand?
- Die Ressourcen Zeit, Arbeit, Kosten, Speedup und Effizienz kennen
- Beziehungen unter diesen Ressourcen kennen
- Ressourceverbrauch von Algorithmen bestimmen können
- Optimalitätsbegriffe bei parallelen Algorithmen kennen
- 4. VL: Einfache parallele Algorithmen
Leitbild: Präfixsumme hilft immer
- Algorithmus für parallele Präfixsumme kennen
- Algorithmus Pointer-Jumping kennen
- Die Algorithmen in anderen Problemen anwenden können
- 5. VL: Paralle Divide-and-Conquer Algorithmen
Leitbild: Teile und Herrsche
- Divide-and-Conquer Algorithmus für die konvexe Hülle kennen
- Divide-and-Conquer Algorithmus für parallelen Merge-Sort kennen
- 6. VL: Pipelining Algorithmen
Leitbild: Arbeiter am Fließband
- Konzept des Pipelining verstehen und anwenden können
- Konzept des 2-3-Baumes verstehen
- Beispiel eines Pipelining Algorithmus kennen (Einfügen in 2-3-Bäume)
- 7. VL: Accelerated-Cascading
Leitbild: Gut und schnell
- Konzept des Accelerated Cascading verstehen und anwenden können
- Beispiel eines Accelerated-Cascading Algorithmus kennen (Maximum finden)
- 8. VL: Aufbrechen von Symmetrien
Leitbild: Alle Tiere sind gleich, aber manche sind gleicher als andere
- Problematik der Symmetrie kennen
- Einfachen 2-Färbealgorithmus kennen
- Schnellen und optimalen 3-Färbealgorithmus kennen
- 9. VL: List-Ranking Algorithmen
Leitbild: Bewerber in einer Reihenfolge bringen
- Problematik des List-Rankings kennen und anwenden können
- Schnellen und optimalen List-Ranking Algorithmus kennen
- 10. VL: Auswerten von arithmetischen Ausdrücken
Leitbild: Gemeinschaftliches Rechnen
- Algorithmen zur Blattsortierung in Bäumen kennen
- Konzept der Baumkontraktion kennen
- Schnelle und optimale Algorithmen zur Auswertung arithmetischer Ausdrücke kennen und eigene Erstellen können
- 11.+12. VL: Paralleles Sortieren
Leitbild: Gemeinschaftliches Sortieren
- Einfachen Merge-Sort kennen
- Bitonischen Merge-Sort kennen
- Coles Merge-Sort kennen
- 13. VL: Boolesche Schaltkreise
Leitbild: Die einfachsten Parallelrechner
- Formalisierung von Schaltkreisen kennen
- AC-, NC- und TC-Schaltkreisklassen kennen
- Verhältnis der Klassen kennen
- NC1-Additionsalgorithmus kennen
- 14. VL: Multiplizieren und Dividieren
Leitbild: Computer rechnen nicht so, wie wir es in der Schule gelernt haben
- NC1-Multiplikationsalgorithmus kennen
- NC2-Divisionsalgorithmus kennen
- 15. VL: Verhältnis von Platz und Parallelisierbarkeit
Leitbild: Wenig Platz = gut parallelisierbar
- Kleine Platz-Klassen wiederholen
- Logspace-Reduktion wiederholen
- Inklusionsstruktur der NC-Klassen und der kleinen Platzklassen kennen
- 16.+17. VL: Grenzen der Parallelisierbarkeit
Leitbild: Besser geht’s nicht
- Konzepte der unteren Schranke, des Vergleichsbaums und von Adversary-Argumenten kennen
- Untere-Schranken-Beweise für Comparison-PRAMS kennen und einfache führen können
- P-Schwere wichtiger Probleme kennen und einfache Härtebeweise führen können
Verteilte Systeme – Grundlegende Algorithmen
- 18. VL: Verteilte versus parallele Systeme
Leitbild: Von Agenten und Schwärmen
- Unterschiede zwischen parallen und verteilten Systemen benennen können
- Probleme für verteilte Systeme kennen
- Ressourcen für und Eigenschaften von verteilten Systeme kennen
- 19.+20. VL: Leader-Election
Leitbild: Von der Schwierigkeit, einen Kanzler zu wählen
- Das Leader-Election-Problem kennen
- Verteilte Algorithmen zur Leader-Election-Problem kennen
- Untere Schranken zum Leader-Election-Problem kennen
- 21. VL: Sychronisationsprobleme
Leitbild: Wir können nicht alle gleichzeitig drucken
- Das Mutex-Problem kennen
- Algorithmen für das Mutex-Problem kennen
- 22. VL: Weitere verteilte Algorithmen
Verteilte Systeme – Spezifikation mittels Petrinetzen
- 23. VL: Petrinetze
Leitbild: Visualisierung von verteilten Systemen
- Konzept des Petrinetz kennen
- Formalisierung von Petrinetzen kennen
- Problemstellungen mit Petrinetzen beschreiben können
- 24. VL: Netzdynamik
Leitbild: Werden wir jemals unser Geld bekommen?
- Problemstellungen der Netzdynamik kennen
- Bezug zur Linearen Algebra kennen
- Netzdynamik analysieren können
- 25.+26. VL: Weiteres zu Petrinetzen
Schluss
- 27. VL: Zusammenfassung, Abschlussevaluation, Diskussion, Ausblick
Puffer: 2VL
|
Buchempfehlungen: |
- J. JaJa: An Introduction to Parallel Algorithms. Addison-Wesley, 1992.
- N. Lynch: Distributed Algorithms. Morgan Kaufmann 1996
- Z. Manna and A. Pnueli: The Temporal Logic of Reactive and Concurrent Systems. Springer 1992
- W. Reisig: Elements of Distributed Algorithms : Modeling and Analysis with Petri Nets. Springer 1998
|
Vorlesung |
Veranstalter: |
Tantau |
Umfang: |
4 SWS |
Termine: |
Di, 14.00h – 16.00h und Fr, 08.30h – 10.00h, R3 |
Vorlesungkarte: |
Vorlesungskarte
|
Skripte: |
„Vorläufiges Script“ zu den ersten sechs Kapitel. Weitere Kapitel werden im Laufe des Semesters zur Verfügung gestellt.
- 02. Vorlesung, 13.04.06 (Druckversion)
- 03. Vorlesung, 20.04.06 (Druckversion)
- 04. Vorlesung, 27.04.06 (Druckversion)
- 05. Vorlesung, 04.05.06 (Druckversion)
- 06. Vorlesung, 11.05.06 (Druckversion)
- 07. Vorlesung, 18.05.06 (Druckversion)
- 08. Vorlesung, 01.06.06 (Druckversion)
- 09. Vorlesung, 08.06.06 (Druckversion)
- 10. Vorlesung, 15.06.06 (Druckversion)
- 11. Vorlesung, 22.06.06 (Druckversion)
- 12. Vorlesung, 06.07.06 (Druckversion)
- 13. Vorlesung, 13.07.06 (Druckversion)
- 14. Vorlesung, 13.04.06 (Druckversion)
- 15. Vorlesung, 20.04.06 (Druckversion)
- 16. Vorlesung, 27.04.06 (Druckversion)
- 17. Vorlesung, 04.05.06 (Druckversion)
- 18. Vorlesung, 11.05.06 (Druckversion)
- 19. Vorlesung, 18.05.06 (Druckversion)
- 20. Vorlesung, 01.06.06 (Druckversion)
- 21. Vorlesung, 08.06.06 (Druckversion)
- 22. Vorlesung, 15.06.06 (Druckversion)
- 23. Vorlesung, 22.06.06 (Druckversion)
- 24. Vorlesung, 06.07.06 (Druckversion)
- 25. Vorlesung, 13.07.06 (Druckversion)
- 26. Vorlesung, 13.04.06 (Druckversion)
- 27. Vorlesung, 20.04.06 (Druckversion)
- 28. Vorlesung, 27.04.06 (Druckversion)
- 29. Vorlesung, 04.05.06 (Druckversion)
|
Evaluation: |
09.05.2006
WS2005/06 und SS 2006
|
Übung |
Veranstalter: |
Tantau, Balbach |
Umfang: |
2 SWS
Für Erlangung des Übungsscheins müssen folgende Leistungen erbracht werden:
- Bearbeitung der ein- bis zweiwöchentlichen Übungsblätter in Einer- bis Dreiergruppen. Auf allen bis auf zwei Übungsblättern muss die Hälfte der möglichen Punkte erreicht werden.
- Bestehen der mündlichen Rücksprache am Semesterende.
|
Termine: |
Mo. 12.00h – 14.00h, ITCS-Seminarraum 21, 2. OG. u. Seminarraum Informatik 1 und 2*, Geb. 64 |
Übungsblätter: |
|