Diplomarbeit, 2007
74 Seiten, Note: 1,0
1. Einleitung
1.1. Motivation
1.2. Erkenntnisgegenstand
1.3. Problemstellung
1.4. Geschichte und Ziele von Parallel Computing
2. Klassifizierung
2.1. Flynnsche Klassifikation
2.1.1. SISD – Single Instruction, Single Data
2.1.2. MISD – Multiple Instruction, Single Data
2.1.3. SIMD – Single Instruction, Multiple Data
2.1.4. MIMD – Multiple Instruction, Multiple Data
2.1.5. Weitere Klassen
2.2. Speicherverwaltung
2.2.1. Shared Memory
2.2.2. Distributed Memory
2.2.3. Hybrid Distributed-Shared Memory
3. Cluster und Grids
3.1. Cluster
3.1.1. Architektur und interne Strukturen
3.1.2. Kategorisierung nach Anwendungszweck
3.1.3. Clustersoftware
3.2. Grids
3.2.1. Architektur und Arbeitsweise
3.2.2. Kategorisierung
4. Supercomputer
4.1. Entwicklung
4.2. Aufbau
4.3. Einsatzbereiche
4.4. TOP500
5. Programmiermodelle
5.1. Shared Memory
5.1.1. Locks
5.1.2. Semaphore
5.2. Threads und gemeinsame Variablen
5.2.1. POSIX Threads
5.2.2. OpenMP
5.3. Message Passing
5.3.1. MPI
5.3.2. MPI-2
5.3.3. PVM
6. Zusammenfassung
A. Parallelisierter Sortieralgorithmus
Die Diplomarbeit hat zum Ziel, einen umfassenden Überblick über die Systemarchitekturen und Programmiermethoden im Bereich des "Parallel Computing" zu geben, um die Komplexität und die verschiedenen Möglichkeiten der parallelen Datenverarbeitung für Einsteiger und Interessierte systematisch darzustellen.
1.3. Problemstellung
Welche Lösungen von Parallel Computing bei der Datenanlyse zum Einsatz kommen, hängt meist von der genauen Art der Anwendung und den damit verbundenen Anforderungen ab. Entscheidende Unterschiede ergeben sich hierbei beispielsweise im Bedarf an CPU-Rechenzeit, Hauptspeicher oder Festplattenspeicher.
Häufig befinden sich die zu verarbeiteten Daten auch nicht auf einem System, sondern sind an sich bereits auf unterschiedliche Orte verteilt: mehrere Rechner an einer Position oder überhaupt verschiedene Standorte. In diesem Fall ergeben sich weitere zu beachtende Komponenten durch den Bedarf an Übertragungsgeschwindigkeit, Verfügbarkeit und Auslastung des Netzwerks.
Darüber hinaus erfordert jedes Computersystem ganz eigene Methoden der Programmierung. Dies trifft somit auch auf parallele Architekturen zu.
Daraus ergeben sich folgende Fragestellungen:
• Welche Parallel Computing Architekturen gibt es? Wie kann man diese über die Unterscheidung nach Soft- und Hardwarelösung hinaus kategorisieren?
• Welche Konzepte stehen dahinter und wie funktionieren sie? Wo liegen die Unterschiede, wo ergeben sich Überschneidungen und Gemeinsamkeiten?
• Wie sind parallele Architekturen in der Softwareentwicklung zu berücksichtigen? Welche Möglichkeiten der Programmierung paralleler Systeme gibt es?
1. Einleitung: Beschreibt die Motivation hinter der Arbeit, die Definition von Parallel Computing und die grundlegende Problemstellung bei der effizienten Datenverarbeitung.
2. Klassifizierung: Erläutert die Flynnsche Klassifikation von Rechnerarchitekturen und die Unterscheidung nach Speicherverwaltungsmodellen wie Shared und Distributed Memory.
3. Cluster und Grids: Untersucht den strukturellen Aufbau und die Kategorisierung von Cluster-Systemen sowie die Vision und die Layer-Modelle von Grid-Computing.
4. Supercomputer: Bietet einen Einblick in die historische Entwicklung, den Aufbau, die Einsatzbereiche und die Top500-Statistiken der weltweit leistungsstärksten Rechnersysteme.
5. Programmiermodelle: Stellt verschiedene Ansätze zur parallelen Programmierung vor, darunter Locks, Semaphore, POSIX Threads, OpenMP, MPI und PVM.
6. Zusammenfassung: Fasst die wesentlichen Erkenntnisse über parallele Architekturen und die zugehörigen Programmierkonzepte abschließend zusammen.
A. Parallelisierter Sortieralgorithmus: Zeigt ein praktisches C-Programmbeispiel, das den Einsatz von PThreads zur parallelen Sortierung einer Liste veranschaulicht.
Parallel Computing, Systemarchitekturen, Cluster, Grid Computing, Supercomputer, TOP500, MPI, Pthreads, OpenMP, Speicherverwaltung, Shared Memory, Distributed Memory, Programmierung, Thread-Modelle, Hochleistungsrechnen.
Die Arbeit behandelt die Grundlagen und Konzepte des Parallel Computing, inklusive verschiedener Systemarchitekturen und gängiger Programmiermodelle.
Die Schwerpunkte liegen auf der Klassifizierung von Parallelrechnern, dem Aufbau von Clustern und Grids, der Analyse von Supercomputern sowie verschiedenen Methoden der Softwareentwicklung für parallele Systeme.
Das Ziel ist es, einen strukturierten Gesamtüberblick über die vielfältigen Möglichkeiten der parallelen Datenverarbeitung zu bieten, da hierzu oft nur fragmentierte Informationen existieren.
Es handelt sich um eine theoretische Arbeit, die auf Literaturrecherche und der Analyse bestehender Konzepte sowie einem praktischen Programmierbeispiel basiert.
Der Hauptteil umfasst detaillierte Kapitel zur Klassifizierung von Architekturen, den Unterschieden zwischen Cluster- und Grid-Systemen, der Entwicklung von Supercomputern sowie konkreten Programmiermodellen wie MPI und OpenMP.
Wichtige Begriffe sind unter anderem Parallel Computing, Cluster, Grids, Supercomputer, Shared Memory, Message Passing, MPI, Pthreads und Hochleistungsrechnen.
Shared Memory Systeme teilen sich physikalisch einen globalen Speicher, während Distributed Memory Systeme jedem Prozessor einen eigenen lokalen Speicher zuordnen, was Auswirkungen auf die Skalierbarkeit und die Programmierung hat.
Im Anhang wird ein parallelisierter "Bubblesort"-Algorithmus in der Sprache C vorgestellt, der PThreads nutzt, um eine Liste von Zahlen auf mehreren Threads gleichzeitig zu sortieren.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

