Paralleles Computing Flashcards
Welche Ziele verfolgt man mit Parallelisierung
- Aufgaben in kürzerer Zeit erledigen
- Algorithmen mit großem Speicherbedarf realisieren
- Redundanz/Fehlertoleranz
- Genauere Resultate in kürzerer (vertretbarer Zeit) erzielen (Komplexe Aufgabenstellungen)
In welcher Beziehung stehen Algorithmus und Architektur zueinander
- Entwurf algorithmenspezifischer Hardware
- Performance Voraussagen für Algorithmen auf spezifischer Hardware
- Evaluierung paralleler Architekturen
- Parallele Maschinen entwerfen, die algorithmus- und systemzustandsunabhängig sind
Womit befasst sich Rechnerarchitektur
Analyse, Bewertung, Entwurf und Synthese von Rechnern und Rechnerkomponenten
Welche Teilbereiche werden in einer Rechnerarchitektur untersucht
Struktur: Anzahl von Prozessoren, Speichereinheiten, etc. –> Eigenschaften
Organisation: Steuerungsaspekte, Organisationsform von Caches
Implementierung: Möglichkeit der Realisierung einer spezifischen Architektur/ Probleme dabei, erzielbare Leistung
Auf welchen drei Ebenen kann eine Rechnerarchitektur betrachtet werden?
Systemebene: Konfiguration von Prozessoren, Speichern, IO-Systemen
Befehlssatzebene: RISC, CISC, VLIW, Zusammenarbeit mit Betriebssystem und Compilern
Mikroarchitekturebene: Entscheidung über Prozessorimplementierung
Beschreiben Sie den klassischen Universalrechner nach von Neumann
Rechenwerk + Speicherwerk + Leitwerk + E/A-Werk
- Unabhängigkeit (universelle Einsetzbarkeit) von Algorithmus
- Befehl laden -> Befehl entschlüsseln -> Befehl ausführen
- Adressen wie Daten behandelbar
- Programme zusammen mit Daten -> Speicherbelegung
Leistungsengpass durch einmaliges Vorkommen der zentralen Komponenten -> streng sequenzielle Abarbeitung
Beschreiben Sie die Taxonomie nach Flynn
Aufteilung in Befehls (Steuerinformation Rechenwerk) und Datenstrom
4 Klassen: SISD, SIMD, MISD, MIMD
Wie funktioniert ein SIMD-Rechner, wozu ist er geeignet?
Single Instruction Multiple Data
- Gleiche Operation auf mehrere Daten ausführen, synchrone Befehlsausführung auf unterschiedlichen Daten
- Bsp.: Illiac IV, MasPar M
- gut geeignet für Matrizen/Vektor-Operationen
–> GPU, Bildbearbeitung
Was verstehen Sie unter der MMX von Intel Prozessoren
Multimedia Extension:
Befehlswörter der Länge von bis zu 64 Bit, darin entweder 8 8-Byte op, 4 16-Byte op, etc.
- Möglichkeit mit einem Befehl zwei Pixelpaare mit RGB-Werten miteinander zu verrechnen
Was verstehen Sie unter MISD
Multiple Instruction Single Data
–> spezieller Modus von MIMD (Prozessorpipelining)
Woraus besteht ein einfaches Parallelrechnermodell
Processing Elements (PEs): mit eigenem lokalen Speicher
Memory Modules (MMs): gemeinsamer Speicher
Interconnection Structure (ICS): Verbindungsnetzwerk
Definieren Sie paralleles Prozessorsystem
Menge von PEs und MMs, welche über ein Verbindungsnetzwerk verbunden sind und so kooperieren können, um gemeinsam Algorithmen zu lösen
Definieren Sie paralleles Rechnersystem
Paralleles Prozessorsystem + Softwarekomponenten (Betriebssystem, Compiler, Bibliotheken)
Wie ist die generelle Vorgehensweise zum Entwurf eines parallelen Algorithmus?
Ausgangspunkt: Sequenzieller Algorithmus
- Zerlegung der Berechnung
in parallel ausführbare Tasks (kleinste parallel ausführbare Einheit) - Bildung von Prozessen
Zuweisung Tasks an Prozesse –> Scheduling (dynamisch/statisch) - Mapping von Prozessen auf Prozessoren
gleichmäßige Verteilung Prozesse auf Prozessoren
Auf welchen drei (Granularitäts-)Ebenen kann man Parallelität erzielen?
Instruktionsebene - feinkörnig
Schleifenebene - mittelkörnig
Prozedurebene - grobkörnig
Was verstehen Sie unter einem Parallelen Programmiermodell?
- Sicht auf Prozessor-/Rechnersystem
- Unterstützung durch Programmiersprache, Laufzeitbibliothek
Kriterien:
- Parallelitätsebene
- Wie wird Parallelität spezifiziert
- Abarbeitung der parallelen Einheiten
- Informationsaustausch, Synchronisationsmöglichkeiten
Was ist ein Prozess?
Codebereich + Datenbereich + Ausführungszustand
Nennen Sie Formen der Prozessorganisation
Fork-Join-Konstrukt:
Parbeginn - Parend:
Master-Slave-Organisation:
Pipeline-Organisation
Baum-Struktur
Was versteht man unter dem SPMD-Prinzip und in welchem Bezug steht es zu MPMD?
Single Programm Multiple Data
Alle Prozessoren haben gleichen Code
–> Unterscheidung der Ausführung über Prozessor-ID –> MPMD (Multiple Programm Multiple Data)
Nennen Sie drei relevante Paradigmen der Parallelisierung
Compute-Aggregate-Broadcast
Geometrische Parallelisierung
Divide&Conquer
Was verstehen Sie unter Distributed Computing und wie unterscheidet es sich von Parallel Computing
Parallel Computing: System organisatorisch abgeschlossen –> eine komplexe Maschine
Distributed Computing: Verbund mehrerer (heterogener) Systeme, schwache Bindung
Was verstehen Sie unter Internet Computing
Nutzung CPU-Reserven von diversen über Internet verbundenen Computern zur Bearbeitung eines komplexen Problems
Bsp.: BOINC - Berkeley Open Infrastructure for Network Computing
Kriterien: Robustheit, Diversität (Client-Software verfügbar), Attraktivität
Was verstehen Sie unter Grid Computing
Bearbeitung einer komplexen Problemstellung mit mehreren Rechnern über Bildung von dynamischen Nutzer-/Institutions- und Prozessorgruppen
- koordinierte Nutzung gemeinsamer Ressourcen
- koordinierte Lösung (kollaboratives Arbeiten)
Was verstehen Sie unter Cluster Computing
Verbund von Rechnern zu einem Cluster, Verbunden über Gigabit-Ethernet, Nutzung lokaler verteilter Speicher)
- sehr kostengünstig (Verwendung ausrangierter PCs)
- TOP 500 Liste (75%)
Welche Cluster-Dienste gibt es
Message-Passing-Bibliotheken: Ausführung von Programmen, Prozesserzeugung, Kommunikation von Prozessen, etc.
Batch-Systeme: Ausführen von Jobs auf dem Cluster
Cluster-Management-Systeme: Aufbau + Administration von Clustersystemen