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: | 
  
    
   |