LRR-TUM-Logo Fakultät für Informatik
der Technischen Universität München
Informatik X: Rechnertechnik und Rechnerorganisation / Parallelrechnerarchitektur
Prof. Dr. Arndt Bode , Prof. Dr. Hans Michael Gerndt
abakus50x50.gif
 Home  | Adressen  | Personen  | Forschung  | Lehrveranstaltungen 
Suche 

Vorlesung im Sommersemester 2001


Symmetrische Multiprozessorsysteme:
Aufbau und Programmierung

Dr. Roland Wismüller


Bereich: Informatik II ,,Technische Informatik und systemnahe Programmierung``,
2.1 ,,Rechnerbausteine und Rechnerarchitektur``,
Vertiefungsvorlesung

Ort und Zeit: Di., 12:00 - 13:00, N1090
Fr., 11:00 - 13:00, S0144 (Änderung!)

Stundenzahl: 3

Beginn: 24.04.2001

Übung: Keine.
Übungs- und Programmieraufgaben sind in die Vorlesung integriert.

Inhalt:
Symmetrische Multiprozessorsysteme (SMPs) sind die derzeit am meisten verbreitete Form paralleler Rechensysteme. Hochleistungsserver für Datenbanksysteme, WWW-Server oder Dateiserver basieren heute überwiegend auf der SMP-Technologie. Selbst im Bereich der High-End PCs finden sich SMP-Systeme, wenn auch noch mit sehr bescheidenen Prozessorzahlen (typischerweise 2 oder 4). Ein Verständnis des Aufbaus und der Programmierung von SMPs wird daher für immer breitere Anwendungsgebiete erforderlich.

Die Vorlesung behandelt detailliert sowohl die Architektur als auch die Programmierung von SMP-Systemen. Die charakterisierende Architektureigenschaft dieser Systeme ist das Vorhandensein mehrerer gleichberechtigter Prozessoren, die (bei kleineren Systemen) über einen Bus an einen gemeinsamen Arbeitsspeicher und die Peripherie angebunden sind. Zur effizienten Programmierung von SMPs werden v.a. leichtgewichtige Prozesse (Threads) und verschiedene Synchronisationskonstrukte (Semaphore, mutex locks) eingesetzt.

Inhaltsübersicht:
(Der geplante Inhalt kann je nach der Interessenslage der Zuhörer noch modifiziert werden. Die Angaben in [ ] geben die voraussichtliche Zahl der Vorlesungsstunden an.)

  1. Einführung [2]
    Lernziele, Inhalt
    1.1
    Motivation: Warum SMPs?
    1.2
    Grundbegriffe zur Parallelverarbeitung
    1.3
    Grundlagen Multiprozessorsysteme
  2. Architektur von SMPs [9]
    2.1
    Prinzipieller Aufbau von SMPs
    Architektureigenschaften; Entwurfs-Alternativen; Notwendigkeit von Caches
    2.2
    Kohärenz und Konsistenz
    Problem: Caches können noch alte (ungültige) Werte gespeichert haben
    Beispiele; Definitionen; Möglichkeiten zur Kohärenz-/Konsistenzsicherung
    2.3
    Zur Realisierung von SMPs
    2.3.1
    Prozessor
    Synchronisationsunterstützung; Befehle zur Konsistenzsicherung
    2.3.2
    Cache
    Grundlagen; Cache-Kohärenz-Protokolle; Realisierungen
    2.3.3
    Speicher
    2.3.4
    Verbindungsstruktur
    zwei grundlegende Strukturen:
    • zentraler Speicher und Bus
      Busse; Leistungssteigerung; Split-Transaction-Busse
    • verteilter Speicher und Punkt-zu-Punkt-Verbindungen
      CC-NUMA/COMA Architekturen; Directory-basierte Kohärenz-Protokolle
    2.4
    Konkrete Beispiele
    Sun Enterprise 6000/10000; SGI Origin 2000/3000
    2.5
    Übersicht SMP-Systeme
  3. Betriebssystem-Aspekte [6]
    3.1
    Einprozessor- vs. SMP-Betriebssysteme
    Anforderungen; Probleme
    3.2
    Multithreaded Betriebssysteme
    Synchronisation
    3.3
    Threads
    Definition, Arten, Scheduling
    3.4
    Speicherverwaltung
    Gemeinsamer Speicher für Prozesse
  4. Programmierung von SMPs [9]
    4.1
    Allgemeines
    Alternativen: unabhängige Prozesse, kommunizierende Prozesse, Threads
    4.2
    Programmierung mit Threads
    Konzepte und Probleme am Beispiel POSIX-Threads;
    Hinweise zur (parallelen) Programmierung mit Threads;
    Übungsaufgabe
    4.3
    (Semi-)Automatische Parallelisierung
    Beispiel: Werkzeug KAP; OpenMP
    4.4
    Praktische Übungen am Rechner
  5. Leistungsbewertung und -optimierung [3]
    5.1
    Benchmarks für SMPs
    SPEC; TPC; STREAM
    5.2
    Optimierung von SMP-Programmen
    Leistungsanalyse; Erhöhung der Datenlokalität

Hörerkreis:
Informatiker und Interessierte anderer Fachrichtungen nach dem Vordiplom

Voraussetzungen:
Die Vorlesung Rechnerarchitektur ist empfehlenswert, wird aber nicht vorausgesetzt.

Empfehlenswert für:
  1. Kennenlernen der in der Praxis am häufigsten vorzufindenden Server und Hochleistungsrechner
  2. Einführung in die Programmierung mit Threads, mit Übungen
  3. Vertiefung im Bereich ,,Technische Informatik und systemnahe Programmierung``
  4. Vorbereitung für Systementwicklungsprojekte oder Diplomarbeiten im Gebiet parallele/verteilte Programmierung

Übungsschein:
Keiner

Skript/Literatur:
Folienkopien und weitere Unterlagen werden im WWW bereitgestellt.

Sprechstunde:
nach Vereinbarung per Email


NAVIGATE:

Back: Mikroprozessoren

Up

Next: Grid Computing (Hochleistungsrechnen im World Wide Web)



Roland Wismüller
Last modified: Sun Aug 25 16:38:19 2002