Blue Gene/L

Werbung
Schwerpunktseminar
technisch wissenschaftliche Anwendungen
Blue Gene/L
Fachbereich Mathematik, Naturwissenschaften und Informatik
Fachhochschule Gießen-Friedberg
Sven Wagner
Matrikelnummer 712880
September 2007
Prof. Dr. Kneisel
Inhaltsverzeichnis
1 Einleitung
4
1.1
Geschichte des Blue Gene Projekts . . . . . . . . . . . . . . . . . . . . .
5
1.2
Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2 Hardware
8
2.1
Architektur von Blue Gene/L . . . . . . . . . . . . . . . . . . . . . . . .
9
2.2
Blue Gene/L Knoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.3
Der Blue Gene Compute ASIC . . . . . . . . . . . . . . . . . . . . . . . .
13
2.3.1
PowerPC 440 FPU . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.3.2
Speicher Hierarchie . . . . . . . . . . . . . . . . . . . . . . . . . .
16
Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.4.1
Karten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
Netzwerke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.5.1
Torus Netzwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
2.5.2
Global Collective Network . . . . . . . . . . . . . . . . . . . . . .
24
2.5.3
Barrier Netzwerk und Interrupt Netzwerk . . . . . . . . . . . . .
25
2.5.4
Kontrollnetzwerk . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
2.4
2.5
3 Software
29
3.1
Betriebssystem Architektur . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.2
Parallelprogrammierung MPI . . . . . . . . . . . . . . . . . . . . . . . .
31
4 Zusammenfassung
33
2
Abbildungsverzeichnis
1.1
Effizienz Power vs GFlops [2] . . . . . . . . . . . . . . . . . . . . . . . .
7
2.1
Blue Gene/L Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.2
Link Chip mit 6 Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.3
Blue Gene Compute ASIC [1] . . . . . . . . . . . . . . . . . . . . . . . .
14
2.4
Blue Gene/L compute (BLC) chip Architektur[1] . . . . . . . . . . . . .
15
2.5
PowerPC Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
2.6
Blue Gene/L Speicherarchitektur im Rechen ASIC [3] . . . . . . . . . . .
17
2.7
Rechen Karte [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.8
Knoten Karte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
2.9
Midplane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.10 Service Karte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
2.11 Link Karte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.12 Blue Gene/L Kontroll System . . . . . . . . . . . . . . . . . . . . . . . .
26
2.13 Typische multi Midplane Kontroll System Konfiguration . . . . . . . . .
28
3
1 Einleitung
Blue Gene ist ein Projekt von IBM, dass sich mit Supercomputer befasst. Blue Gene/L
repäsentiert eine neue Komplexitätsebene von paralleler System Software mit speziellen
Schwierigkeiten in den Gebieten der Skalierbarkeit, Instandhaltung und Verwendbarkeit.
Derzeit gibt es vier aktuelle Projekte unter dem Namen Blue Gene, die derzeit weiterentwickelt werden. Dieses Dokument bezieht sich auf das Projekt Blue Gene/L, wobei L
für Linux steht. Es wird gezeigt wie der Supercomputer aufgebaut ist und welche Funktionen gegeben sind. Ausserdem wird erläutert welche Software zum Einsatz kommt und
welchen Nutzen die Anwendung der Software hat. Da Blue Gene/L eine sehr komplexe
Architektur und eine äußerst spezielle Anwendung findet kann in den folgenden Kapitel
nur eine bestimmte Auswahl des ganzen Projektes beschrieben werden. Blue Gene/L in
dem Lawrence Livermore National Laboratory beinhaltet 64 Racks mit insgesamt 65536
high performance Rechen Knoten. Jeder Rechen Knoten enthält zwei eingebettete 32bit PowerPC Prozessoren. Weiterhin wird der gleiche Chip für die maximale Anzahl von
1024 I/O Knoten benutzt. Ein drei dimensionales Torus Netzwerk und ein gemeinsames
Tree Netzwerk verbindet alle Knoten miteinander. Das ganze System beinhaltet 33 Terra
Byte Hauptspeicher. Dies wurde entwickelt um eine Spitzenleistung von 300 TFlops zu
erreichen. Blue Gene/L kann so benutzt werden, dass der erste Prozessor eines Knotens
für Berrechnungen eingesetzt wird und der zweite Prozessor für die Kommunikation. Es
ist aber auch möglich beide Prozessoren für Berrechnungen zu benutzen.
Blue Gene/L ist ein Supercomputer der von IBM in Zusammenarbeit mit dem Lawrence Livermore National Laboratory (LLNL) entwickelt wurde um zum Beispiel komplexe biologische Prozesse zu berrechnen oder auch die Grenzen des Supercomputings
4
1 Einleitung
zu erforschen.
Blue Gene/C (inzwischen umbenannt in Cyclops64) ist ein Schwesterprojekt von
BlueGene/L und dient als Earth Simluator. Die Architektur unterscheidet sich von
Blue Gene/L durch einen andere Netzwerkstruktur. Ausserdem arbeitet jeder 64-bit
Cyclops64 Chip mit einer Frquenz von 500 MHz und beinhaltet 80 Prozessoren.
Blue Gene/P erstmals vorgestellt im Juni 2007 auf der International Supercomuting
Conference in Dresden ist die zweite Generation des Blue Gene Projektes. Blue Gene/P
wurde entickelt um erstmals ein PFlops (Peta Flops = 1015 ) im Durchschnitt zu erreichen. Vier 850 MHz PowerPC 450 Prozessoren sind in jedem Blue Gene Chip enthalten.
Das ergibt 294412 Prozessoren in einem 72 rack System gespannt in einem high-speed,
optischen Netzwerk. Blue Gene/P kann bis zu 884736 Prozessoren in einem 216 rack
skaliert werden um die gewünschten drei PFlops zu erreichen.
Blue Gene/Q soll bis etwa 2010-2012 10 PFlops erreichen. Das Projekt soll die BlueGene/L und /P Architekur mit einer höheren Frequenz pro Performance/Watt erweitern.
Blue Gene/Q hat die gleiche Anzahl von Knoten aber mehrere Kerne pro Knoten.
1.1 Geschichte des Blue Gene Projekts
Im Dezember 1999 kündigte IBM an 100 Millionen US Dollar in ein Projekt zu investieren, einen parallel Computer zu entwickeln, der es ermöglicht biomolekulare Phänomene,
wie zum Beispiel Proteinfaltung zu erforschen. Das Projekt hatte 2 Ziele: Zum einen sollen die Mechanismen der Proteinfaltung per Simulation verstanden werden und zum
anderen sollten neue Ideen für parallel arbeitende Architekturen und Software erforscht
werden. Dabei wurde stets darauf geachtet die Kosten für den Betrieb geringer zu halten
als bisher bei anderen Supercomputer erreicht wurde.
5
1 Einleitung
Im November 2001 trat das Lawrence Livermore National Laboratory dem Projekt
bei und wurde ein Forschungspartner des Blue Gene Projektes.
Im November 2004 wurde in Pittsburgh auf der Supercomputer Conference Blue Gene/L zum ersten Mal als schnellster Supercomputer der Welt gekürt. Der damalige von
IBM entwickelte Supercomputer führte die 24. TOP500 (www.top500.org) Liste mit
32768 Prozessoren und einer durchschnittlichen Leistung von 70720 GFlops ( ein Giga floating point operations per second ) beim Linpack Benchmark an. Linpack ist ein
Benchmark-Programm, das die Geschwindigkeit eines Computers durch das Lösen von
linearen Gleichungssystemen misst.
Der aktuell schnellste Supercomputer Blue Gene/L mit dem Standort im Lawrence
Livermore National Laboratory hat derzeit 131072 Prozessoren und schafft beim Benchmark 280600 GFlops.
1.2 Motivation
Ziel des Projektes Blue Gene/L ist es ein gutes Kosten-Performance Verhältnis für ein
breites Spektrum von Anwendungen zu erreichen. Ebenso soll ein gutes Performance/Power Verhältnis erreicht werden. Im Gegensatz zu anderen Supercomputer sind die
Kosten pro Flop wesentlich teurer als bei Blue Gene/L. Die Abbildung 1.1 zeigt die
Effizienz durch das Verhältnis von verbrauchter Leistung in Watt und der Performance
Leistung pro Giga Flops. Das Blue Gene/L Team versuchte nicht eine Maschine zu entwickeln die alle Anwendungsbereiche abdeckt, viel wichtiger war es eine Architektur zu
bauen, die Kosteneffektiv für eine breite Anwendung ist.
6
1 Einleitung
Abbildung 1.1: Effizienz Power vs GFlops [2]
7
2 Hardware
Dieses Kapitel gibt einen Überblick über die Hardware von Blue Gene/L. Im ersten
Abschnitt dieses Kapitels wird der ASIC und seine Komponenten genauer beschrieben.
Danach erfolgt eine genaue Erläuterung des Packaging Modells von Blue Gene/L. Zum
Abschluss des Kapitels wird verdeutlicht welche Netzwerkstruktur vorhanden ist.
Abbildung 2.1: Blue Gene/L Packaging
8
2 Hardware
2.1 Architektur von Blue Gene/L
Die Architektur wurde so entwickelt, um ein außergewöhnliches Verhältnis der cost /
performance, performance / power und performance / volume zu erreichen. Die Vorgehensweise richtete sich nach eine sehr hohen Integration, die ein einfaches Packaging
und Design ermöglichen soll. Dieses Ziel richtete sich nach bereits speziell eingesetzten
Maschinen wie QCDSP, die schon erfolgreich ein hervorragendes cost/performance Verhältnis erreicht hat. Ebenfalls wurden Annäherungsversuche an die Maschinen QCDSP
und QCDOC in den Bereichen von floating-point, network und memory performance
gemacht.
Um eine höhere Integration zu erreichen wurde das System einem SoC ASIC angepasst.
Warum diese Art von Entwicklung gewählt wurde lag in dem SoC Design, dass eben eine
hohe Integration erreicht sowie ein geringer Verbrauch und niedrige Entwicklungskosten.
Alleine der Verbrauch um ein Rack zu kühlen liegt etwa bei 20kW. Die Entwickler
von Blue Gene fanden heraus, dass eine niedrige Frequenz des PowerPC Kerns das
performance/watt Verhältnis wesentlich verbessert als bei Frequenzen, die 2 bis 10 mal
höher sind.
Blue Gene/L ist ein skalierbarer Supercomputer der bis zu 65536 Knoten fassen kann.
Die kleinste (sichtbare) Einheit ist ein Knoten, der einen ASIC mit je zwei Prozessoren
beinhaltet. Eine Rechen Karte umfasst zwei ASIC’s und die dazugehörigen SDRAM
Modulen. Die Rechen Karten sind auf einer Knoten Karte gesteckt, dass jeweils 32 solcher
Rechen Karten umfasst. Ein Rack kann 32 Knoten Karten (node cards) enthalten. Zu
Blue Gene/L in Livermore gehören 64 solcher Racks. Die Abbildung 2.1 soll nochmal die
Abhängigkeiten verdeutlichen. Ein Knoten wurde in der IBM CMOS 8SFG Technologie
produziert. Jeder Rechen Knoten ist sehr einfach aufgebaut: Ein ASIC (Application
Specific Integrated Circuit) enthält zwei Prozessoren und hat als Arbeitsspeicher neun
DDR SDRAM Module. Jede Knoten Karte ist mit zwei BLC (Blue Gene/L Compute)
ASIC’s und 18 SDRAM bestückt.
9
2 Hardware
Component
Description
No. per rack
Compute card
Two compute ASICs, DRAM
512
Node card
16 compute cards, two I/O cards
32
I/O card
Two compute ASICs, DRAM, Gigabit Ethernet
Link card
Six-port ASICs
8
Service card
One to twenty clock fan-out,
2
2 to 64,selectable
two Gbit Ethernet to 22 Fast Ethernet fan-out,
miscellaneous rack functions,
2.5/3.3-V persistent dc
Midplane
16 node cards
2
Fan unit
Three fans, local control
20
Power system
ac/dc
1
Compute rack
With fans, ac/dc power
1
Tabelle 2.1: Major Blue Gene/L rack components [2]
Die Knoten können mit 5 Netzwerken verbunden sein. Das wichtigste ist das Torus
Netzwerk. Ein Torus ist ein geometrisches Gebilde, das in sich geschlossen ist. Das heisst
es gibt kein Anfang und kein Ende. Jeder Knoten ist also mit jedem anderen Knoten,
wenn auch indirekt, verbunden. Ein Knoten hat 6 Nachbarknoten mit denen er direkt
kommunizieren kann. Blue Gene/L hat ein drei dimensionales 64x32x32 Torus Netzwerk. Die Zahlen geben an wieviele Knoten in x,y und z Richtung vorhanden sind. Es
gibt virtuell gesehen keine asymetrie in der Verbindung. Jeder Knoten kommuniziert
mit seinem Nachbar Knoten die physikalisch auf der gleichen Knoten Karte sind. Die
Verbindungen auf der Knoten Karte haben die gleiche Bandbreite und Zugriffszeit wie
mit Rechen Knoten die auf benachbarten Knoten Karten sind. Dies erlaubt ein einfaches
Programmiermodell, da es keine Endpunkte in einem Torus gibt.
10
2 Hardware
Englische Bezeichnung
Deutsche Bezeichnung
Compute card
Rechen Karte
Node card
Knoten Karte
I/O card
I/O Karte (Ein/Ausgabe Karte)
Link card
Link Karte
Service card
Service Karte
Midplane
Midplane (Mittelebene)
Fan unit
Lüfter Einheit
Power system
Energieversorgung
Compute rack
Rack
Tabelle 2.2: Übersetzung
2.2 Blue Gene/L Knoten
Der Blue Gene Compute (BLC) ASIC, der das Herz eines Blue Gene/L Knotens bildet,
ist ein System On Chip (SoC) produziert in der Cu11 (130 nm CMOS) Technologie.
Dieser ASIC integriert alle Funktionen eines Rechners und reduziert dabei die Grösse und
den Verbrauch wesentlich für einen Knoten. Der ASIC enthält zwei eingebettet PowerPC
440 (PPC440) Kerne. Ein floating-point Kern für jeden Prozessor, eingebetter DRAM,
einen integrierten DDR Speicher Controller, ein Gigabit Ethernet Adapter und alle für
das Torus Netzwerk benötigte „durchreiche“ Buffer. Der gleiche BLC ASIC wird für die
Rechenknoten und I/O Knoten benutzt, wobei nur der I/O Knoten dazu verwendet wird
die Verbindung zum Gigabit Ethernet und Dateisystem zu ermöglichen.
Die beiden PPC440s sind vollständig symetrisch in Design, Performance und im Zugriff auf alle Chip Ressourcen. Es gibt keine andere Hardware um beide Prozessoren für
Nachrichtenaustausch oder auch die Weitergabe von Nachrichten an benachbarte Knoten
zu verwenden. Für bestimmte Anwendungen wird der eine Prozessor dazu benutzt Nachrichten zu bearbeiten und der andere zum Berechnen oder Ausführen der Anwendung.
11
2 Hardware
Diesen Modus nennt man co-prozessor mode. Ein anderer Modus in dem ein Knoten
benutzt werden kann ist dass beide Prozessoren für die Anwendung verwendet werden.
Diesen Modus nennt man virtual node mode.
Ein Link Knoten enthält ebenfalls den gleichen ASIC. Link Knoten dienen zwei Funktionen: Die Link Knoten sind dafür zuständig Signale von Rack zu Rack über ein Kabel
weiterzureichen. Dabei werden die Signale verstärkt und aufbereitet. Die zweite Funktion ist die Signale innerhalb des ASICs umzuleiten. Damit ist es möglich das System
logisch zu partitionieren. Die Kommunikation zwischen den weiter entfernten Knoten
wird nicht per Software gemacht sondern „auf dem Sprung“ von der Hardware.
Der Link Chip hat sechs Ports wie auf der Abbildung 2.2 zu sehen. Port A und B
sind direkt mit den Knoten der Midplanes verbunden. Ein Midplane ist eine Einheit
in einem Rack mit 16 Knoten Karten (siehe Tabelle 2.1) Die anderen vier Ports sind
mit dem Kabel verbunden, dass auf Abbildung 2.11 zu sehen ist. Die Logik in so einem
Link Chip unterstützt eine frei wählbare Verbindung von einem Port zu einem beliebigen
anderen Port. Dieses Routing wird einmal programmiert und ist solange verwendbar bis
eine andere Verwendung vorgesehen ist.[6]
12
2 Hardware
Abbildung 2.2: Link Chip mit 6 Ports
2.3 Der Blue Gene Compute ASIC
Der BLC ASIC beinhaltet alle Komponenten, die nötig sind diesen Chip als SoC zu bezeichnen. Zwei Prozessor Kerne PowerPC 440 FPU, Ethernet Schnittstelle, SRAM und
DRAM. Zur Architektur gehörend haben die beiden Mikroprozessoren, jeder mit einem
FPU Co Prozessor, einer kompletten L1/L2/L3 Speicher Hierarchie, eine Schnittstelle zu
externem double-data-rate (DDR) DRAM, und 5 verschiedene Kommunikationsschnittstellen. Der Chip arbeitet bis zu 700 MHz, in kritischen Ausnahmefällen sogar bis zu 1,4
GHz.
Abbildung 2.3 zeigt eine Übersicht über die Plazierung der einzelnen Komponenten auf
dem ASIC. Die beiden PowerPC 440 Prozessoren (PU0 und PU1) und die dazugehörigen
Floating Pount Units (FPU0 und FPU1), Netzwerk Schnittstellen Controller (collective,
torus, JTAG und Eth), und die Speicher Hierachie (L1 cache in den Prozessor Einheiten,
L2 und L3). Die vier grösseren Arrays in den Gebieten von L3 sind die 4 MB des
eingebetteten DRAMs.
13
2 Hardware
Abbildung 2.3: Blue Gene Compute ASIC [1]
Ein Blockdiagramm des BLC ASIC ist in Abbildung 2.4 zu sehen. Die grünen Blöcke
im Diagramm sind Kerne, die in der Standard IBM ASIC Bibliothek verfügbar sind, also
gewöhnlich von internen und externen Kunden bereits verwendet wurden. Die Rechtecke,
die als „Double-hummer FPU“ bezeichnet sind sind neue Kerne. Die doublehummer FPU
beinhalten zwei gekoppelte Standard floatingpoint units (FPUs), die eine Spitzenleistung
von vier Gleitkommaoperationen pro Prozessorzyklus erreichen. Die anderen Blöcke sind
neu entwickelt worden.
14
2 Hardware
Abbildung 2.4: Blue Gene/L compute (BLC) chip Architektur[1]
2.3.1 PowerPC 440 FPU
Die PowerPC 440 floating-point Unit, mit einer arithmetik-spezifischen Erweiterung, ist
im ASIC eingebettet um von dem PowerPC 440 Prozessorkern benutzt zu werden. Der
FPU Kern implementiert den floating-point Befehlssatz der PowerPC Architektur. Die
floating-point Befehlserweiterungen wurden entwickelt um spezielle Matrizenberechnungen durchführen zu können. Die erweiterten FPU Befehle dienen dazu um primär SIMD
(single-instruction multiple-data) Operationen ausführen zu können. Hierzu werden zwei
15
2 Hardware
Pipelines und zusätzliche floating-pount Register benötigt. Das heisst es ist möglich auf
jedem Prozessor das gleiche Programm mit unterschiedlichen Eingabedaten ausführen
zu können.
Abbildung 2.5: PowerPC Core
2.3.2 Speicher Hierarchie
Ein Ziel der Entwicklung des ASIC war es ein hohe Bandbreite und eine geringe Latenzzeit zu erreichen. Die Lösung des SoC war ein gut gewählter Weg zu diesem Ziel. Jeder
PPC440 Prozessor hat einen unabhängigen 16 Byte Lese und Schreib Datenbus und
einen unabhängign 16 Byte Befehlsbus. Die Bandbreite des zweiten und dritten Level
Cache und des externen Speichers ist angepasst an die maximale Bandbreite des PPC440
Prozessors. Dieses flache Speichersystem ist ideal für Speicher intensive Anwendungen.
16
2 Hardware
Der first-level Cache L1 ist im PPC440 Kern integriert. Der second-level Cache L2 ist
sehr klein und wird grundsätzlich als Prefetcher zum Schreiben in den L1 Cache genutzt.
Für sequentiellen Zugriff hat der L2 Cache einen so schnellen Zugriff auf jeden Level in
der Speicher Hiearchie wie der Prozessor verarbeiten kann. Der L2 Cache ist relativ klein
(2 KB). Der third-level Cache L3 ist gross und ist zuständig um ein hohe Bandbreite
zu ermöglichen mit einer geringen Latenzzeit. L3 wird geteilt benutzt für Befehle und
Daten. Der Hauptspeicher ist extern in DRAM Speicherbausteinen. Abbildung 2.6 zeigt
die Architektur eines ASIC auf einer Rechen Karte.
Abbildung 2.6: Blue Gene/L Speicherarchitektur im Rechen ASIC [3]
2.4 Packaging
Als IBM 1999 mit der Entwicklung von Blue Gene/L begann war es Ziel einen massiv parallel Supersomputer zu entwickeln, der skalierbar und somit an die Anwendung
angepasst werden kann. Das derzeit grösste System im Lawrence Livermore National
Laboratory (LLNL) kann mit 65536 Knoten in 64 Racks kann so angepasst werden, dass
verschiedene einzelne Programme laufen können. Jeder Knoten enthält einen ASIC und
17
2 Hardware
den dazugehörigen Hauptspeicher. Die Knoten sind verbunden mit fünf Netzwerken:
einem drei dimensionalen Torus Netzwerk, dem global collective network, einem globalen Barrier und Interrupt Netzwerk, einem Ein und Ausgabe Netzwerk welches Gigabit
Ethernet benutzt und zuletzt ein Service Netzwerk. Die Verarbeitung in den Netzwerken erfolgt durch einen zusätzlichen Link ASIC, einem field-programmable gate array
(FPGA) und anderen speziellen Komponenten, die in diesem Abschnitt beschrieben werden.
Ein Blue Gene/L System kann so konfiguriert werden um einfache Anwendungen auszuführen. Die gängige Methode ist es das System in kleinere System zu partitionieren.
Zum Beispiel wurde im Watson Research Center ein 20 Rack System so unterteilt, dass
vier Reihen mit vier Racks verwendet werden und die restlichen 4 Racks im Standby
Betrieb laufen und im Ausfall sofort eingesetzt werden können. Blue Gene/L beinhaltet zwei Host Computer um die Maschine zu kontrollieren und Anwendungen zu starten, Ein/Ausgabe Racks für redundante Bereiche für unabhängige Festplattenspeicher
(RAID) sowie Verteiler Racks mit einem Gigabit Ethernet um die Rechen Racks, I/O
Racks und die Host Rechner zu verbinden.
2.4.1 Karten
Ein System kann logisch per Software partitioniert werden. Um ein Skalierbarkeit des
Systems zu ermöglichen wurde die Hardware in einzelne Komponenten unterteilt. Dieser
Abschnitt zeigt alle Hardwarekomponenten in einem Blue Gene System und beschreibt
diese. In Bezug auf die Hardware ist das System in folgende Teile unterteilt:
Rechenkarte
Die kleinste Komponente ist der ASIC, der sich auf der Rechenkarte (compute card)
befindet. Auf dieser Karte sind jeweils zwei ASIC und neun DRAMs als externen Hauptspeicher, die zu den zwei Prozessoren auf dem ASIC gehören. Ein Rechenkarte beinhaltet
18
2 Hardware
somit zwei Knoten. Ein Knoten ist ein ASIC plus 512 MB Speicher, die in neun Speichermodulen auf der Karte angeordnet sind.
Abbildung 2.7: Rechen Karte [5]
Knotenkarte
Eine Knotenkarte unterstützt 16 Rechenkarten mit Energie, Clock und diversen Kontrollfunktionen. Ausserdem werden alle 32 Knoten auf einer Knotenkarte (x,y,z = 4*4*2)
zusammengefasst. Jede Knotenkarte kann optional zwei zusätzliche Karten beinhalten:
die I/O Karten.
19
2 Hardware
Abbildung 2.8: Knoten Karte
I/O Karte
Die I/O Karte ist ähnlich wie eine Rechenkarte, allerdings kann jede I/O Karte zwei
Kanäle zu einem Gigabit Ethernet anbieten. Eine I/O Karte ist somit die Schnittstelle
für die Rechenkarte zu externen Speichermedien wie Datenserver oder Datenbanken.
Eine I/O Karte arbeitet mit dem gleichen ASIC wie eine Rechenkarte.
Midplane
Die sogenannte Midplane besteht aus 16 Knotenkarten (x,y,z = 8*8*8). Es handelt sich
bei der Midplane nur um einen Bereich der verschiedene Karten enthält, die Midplane
selbst ist also keine physikalische Karte. Die Midplanes sind über Link Karten mitein-
20
2 Hardware
ander verbunden. Midplanes sind in einem Rack vertikal angeordnet. Zwei Midplanes
an der Frontseite eines Racks und zwei Midplanes an der Rückseite eines Racks. Die
Midplanes sind übereinander angeordnet. Neber den 16 Knotenkarten beinhaltet jede
Midplane vier Link Karten. Letztendlich beinhaltet jede Midplane noch eine Service
Karte.
Abbildung 2.9: Midplane
Service Karte
Die Service Karte bietet die Funktion der System Clock, diverse Kontrollfunktionen für
das Rack und bietet individuelle Fast Ethernet Verbindungen von den vier Link Karten
und den 16 Knoten Karten zu einem einzigen Gigabit Ethernet. Ein zusätzliches Gigabit
Ethernet verbindet die Midplanes über die Service karte mit einem Kontrollrechner. Auf
der Service Karte befindet sich ein Kontroll-FPGA, der das Fast Ethernet von jeder Link
Karte und Knoten Karte in ein anderes Bussystem, wie I2C oder JTAG konvertiert. I2C
und JTAG sind zusätzliche Bussysteme für Geräte mit verschiedenen Sensoren sowie
21
2 Hardware
zur Unterstützung der Initilialsierung des Systems oder auch Monitoring, Debug und
anderen Funktionen.
Abbildung 2.10: Service Karte
Link Karten
Link Karten sind dafür zuständig die Midplanes mit dem Torus Netzwerk, Global Collective Netzwerk und dem Barriere Netzwerk zu verbinden. Link Karten sind notwendig
um Signale zwischenzuspeichern und über kabel an andere Midplanes weiterzusenden.
Um diesen Service anbieten zu können wurde ein Link ASIC entwickelt. Jeder der sechs
Ausgänge ist an ein Kabel angeschlossen. Die Kanäle sind so installiert, dass sie zwei
verschiedene Wege benutzten können um die Midplane zu verlassen. Diese Art der Verbindung zwischen den einzelnen Komponenten bietet die Möglichkeit das System in
eine variable Art von kleineren Systemen zu unterteilen und unbenutzte Racks zu überbrücken. In den Link Karten sind die Ports so verschaltewt, dass es möglich ist eine
beliebige Verteilung der Signale vorzunehmen.
22
2 Hardware
Abbildung 2.11: Link Karte
2.5 Netzwerke
Einer der wichtigsten Funktionen eines massiv parallelen Supercomputer ist das Netzwerk, dass alle Prozessoren miteinander verbindet. Dieses Netzwerk erlaubt es das ganze
System als eine grosse zusammenhängende Instanz zu sehen. In Blue Gene/L ist das primäre Netzwerk für das point-to-point Messaging ein drei dimensionales Torus Netzwerk.
Für den Datenaustausch zwischen den Knoten und anderen Systemen wie Datei Server
oder Datenbanken ausserhalb des Blue Gene/L Systems dient das Global Collective Network. Das Global Collective Network ist ein Gigabit Ethernet verbunden mit den I/O
Karten, die jeweils mehrere Rechen Karten bzw Knoten mit der Aussenwelt verbindet.
Das globale Barriernetzwerk schützt das Systeme bei Fehlern und regelt das Abschalten
23
2 Hardware
des Racks. Das Kontrollnetzwerk überwacht das System. Dazu gehören diverse Temperaturüberwachungen der ASICs, Spannungsversorgung, Kühlung uvm.. Ein Serviceknoten
übernimmt die eigentliche Überwachung über eine Service Karte auf einem seperaten
Rechner. Dazu gehört auch die Initialisierung und das Debuggen der Anlage. Dieses Kapitel zeigt wie die verschiedenen Netzwerke im Blue Gene/L System aufgebaut sind und
welche Funktion dahinter steht.
2.5.1 Torus Netzwerk
Die Knoten in einem Torus Netzwerk sind in einem 3D Würfel Gitter angeordnet und
jeder Knoten ist verbunden zu seinen sechs nächsten Nachbarn. Ein Torus wurde von den
Entwicklern gewählt weil es eine hohe Bandbreite bietet während die Konstruktion des
Netzwerkes keine Enden bietet. Dies bietet eine Kosten Effektive Verbindung, die skalierbar ist und direkt anwendbar auf viele wissenschaftliche und datenintensive Probleme.
Ein Torus kann ohne lange Kabel realisiert werden indem man jedes Rack mit seinem
nächst nähsten Nachbarn entlang der x,y und z Richtung verbindet. Stelle man sich vor
man hat sechs Racks in einer Dimension, so würden die Racks in der Reihenfolge 1, 3, 5,
6, 4, 2, 1 verkabelt werden. Der Netzwerk Switch ist integriert in den gleichen Chip der
die Berrechnungen durchführt. Es wird kein anderer Switch und Adapter Karten benötigt wie es in anderen Supercomputer der Fall ist. Vorgänger wie der Cray T3E haben
ebenfalls ein Torus Netzwerk verwendet. Das Torus Netzwerk benutzt das dynamische
(adaptive) und deterministische Routing mit virtuellem Zwischenspeichern und der cutthrough Einsatzmöglichkeit. Der Nachrichtenaustausch basiert auf Hardware Packeten
mit einer variablen Länge. Dieses Feature bietet eine exzellente Kommunikationseigenschaft für viele verschiedene Entwürfe in den meisten speziellen Anwendungsgebieten.[4]
2.5.2 Global Collective Network
Das Global Collective Network bietet eine high-performance Broadcast Funktion. Das
Netzwerk bietet eine Latenzzeit von etwa 2,5 micro Sekunden für ein 65536 Knoten
System wie es in Livermore anzutreffen ist. Zusätzlich bietet das Netzwerk point-to-
24
2 Hardware
point messaging was genutzt wird um die Kommunikation zwischen den I/O Knoten
und den Rechenknoten zu realisieren. Das collective Netzwerk dient zwei Zwecken. Es
ist dafür entwickelt MPI Funktionen effizient zu unterstützen. Der Hauptzweck ist aber
die Kommunikation zwischen den I/O Knoten und den Rechenknoten. Das Netzwerk
unterstützt point-to-point Nachrichten mit einer definierten Länge von 256 Bytes. Davon
werden vier Bits pro CPU Zyklus verarbeitet (350 MB/s). Die Zuverlässigkeit ist dem
des Torus Netzwerkes. Die 256 Byte sind reine Nutzdaten. Dazu kommen 10 Byte bei
jedem Packet für Kontroll und Verbindungssicherheit. Daraus erfolgt eine Effizienz von
96% (256 Byte / 266 Byte).
Die ALU in der collective network Hardware kann eingehende und lokale Packete
kombinieren indem bitweise und Integer Operationen genutzt werden und die Resulatet dann ins Netzwerk eingespeist werden. Dieser Mechanismus kann genutzt werden
um MPI Sammel Funktionen zu implementieren. Sammelfunktionen wie zum Beispiel
Broadcast werden umgestzt indem jeder Knoten die Daten im Netzwerk bearbeitet und
das Ergebnis wieder ins Netzwerk einspeist. Da die ALU nur Integer Operationen durchführen kann werden floating-point MPI Reduzierungen in zwei Phasen umgesetzt: In der
ersten Phase wird der Exponent berrechnet und in der zweiten Phase die Mantisse. Die
Streckenplanung der Packete im global collective network basiert auf Packet Klassen.
Die Konfiguration des Netzwerkes ist ein globale Operation die eine Konfiguration aller
Knoten in einer Job Partition benötigt.
2.5.3 Barrier Netzwerk und Interrupt Netzwerk
Das globale Interruptnetzwerk bietet konfigurierbare OR Verbindungen um eine komplette Abdeckung des Systems in 1,5 micro Sekunden zu erfüllen. Um Anwendungen
auf grössere Prozessoren und Knoten zu skalieren muss die Latenz Charakteristik auf
globale Operatione deutlich verbessert werden. Dazu wurde ein unabhängiges Barrier
Netzwerk entwickelt um diesen architektonische Sachverhalt anzugehen. Das Netzwerk
beinhaltet vier unabhängige Kanäle und ist gewissermassen ein globales OR über alle
25
2 Hardware
Knoten. Individuelle Signale sind kombiniert in Hardware und verbreiten sich bis zur
phyiskalischen Spitze der vereinigten Baumstruktur. Das resultierende Signal ist dann
ein Broadcast über diesen Baum. Ein globales AND kann über eine invertierte Logik
benutzt werden. Das AND wird als globale Abdeckung benutzt während das OR als
globales Interrupt benutzt wird, wenn eine komplette Maschine oder Partition so schnell
wie möglich für diagnostische Zwecke gestoppt werden muss. Das Barrier Netzwerk ist
optimiert für eine geringe Latenzzeit kleiner als 1,5 micro Sekunden bei einem System
mit 65536 Knoten. In dieser Zeit soll es möglich sein alle Knoten im System anzusprechen. Das Netzwerk kann auch in der gleichen Midplane partitioniert werden, abgegrenzt
zu den anderen Netzwerken wie das drei dimensionale Torus Netzwerk oder das Global
Collective Network.
2.5.4 Kontrollnetzwerk
Abbildung 2.12: Blue Gene/L Kontroll System
26
2 Hardware
Ein abgestimmtes Überwachungssystem für Blue Gene/L ist über einen Service Knoten
realisiert: das Kontrollnetzwerk. Geräteinformationen wir Kühlerdrehzahlen, Spannungsversorgung kann direkt über das Kontrollnetzwerk überwacht werden. Die Rechen und
I/O Karten nutzen ein Kommunikationsprotokoll um Ereignisse, die von einem Service
Knoten protokolliert oder aktiviert werden können. In Abbildung 2.13 ist zu sehen wie
die Servie Karten in einem Rack auf verschiedene Midplanes verteilt ist. Jede Service
Karte ist über eine Ethernetverbindung mit einem Host verbunden. Dieser Ansatz ermöglicht eine von anderen Netzwerken separate und komplette Überwachung. Das Kontrollnetzwerk ist als ein Fast Ethernet mit einem FPGA (in Abbildung 2.12 zu sehen)
als Controller realisiert. Dieser Control FPGA (CFPGA) konvertiert JTAG, dass in den
Knoten Karten verwendet wird, in andere benutzte Bussysteme wie I2C. Ist zum Beispiel
ein ASIC auf einer Rechenkarte überhitzt so wird ein Signal über die Hardware an den
FPGA gesendet und dieser leitet die Fehlermeldung an das Kontrollnetzwerk weiter.
27
2 Hardware
Abbildung 2.13: Typische multi Midplane Kontroll System Konfiguration
28
3 Software
Die System Software für Blue Gene/L ist eine Kombination von Standard und Kundenspezifischen Lösungen. Die Software Architektur für die Maschine ist eingeteilt in
drei funktionale Gebiete, die hierarisch angeordnet ist: ein Kern für Berrechnungen, eine
Verwaltungs und Kontroll Infrastruktur und eine Service Infrastruktur. Die I/O Knoten
( Teil der Kontroll Infrasturktur) führt eine Version eines Linux Kernels aus und ist die
primäre off-load Maschine für die meisten Systemdienste. Kein User Code wird direkt
auf den I/O Knoten ausgeführt. Die Rechenknoten im dazugehörigen Berrechnungskern
führen einen single User, single Prozess minimalistischen gebräuchlichen Kernel aus und
sind dafür zuständig User Anwndungen effizient auszuführen. Der Blue Gene/L Komplex
beinhaltet die Service Infrastruktur die sich zusammensetzt aus kommerziellen verfügbaren Systemen, die zu dem restlichen System über ein Ethernet verbunden ist. Die Sicht
des Anwenders über das System ist eine flache, ringförmige, 64k Knoten System. Die
Sicht des Systems von Blue Gene/L ist hierarich: Die Maschine sieht aus wie ein 1024
Knoten Linux Cluster, wobei jeder Knoten als 64-way Multiprozessor anzusehen ist.
Skalierbare Software, die eine effiziente Ausführung von parallelen Anwendungen unterstützt ist ein wesentlicher Teil der Blue Gene/L Architektur. Eine Blue Gene/L Anwendung ist aufgebaut aus einer Sammlung von Rechenprozessen. Die Ausführung dieser
Prozesse erfolgt auf einem Rechen Knoten als ein Teil des Systems. I/O Knoten bieten
zusätzliche Service für die Ausführung von Anwendungen. In diesem Abschnitt wird
beschrieben welche Software im System Blue Gene/L benutzt wird. Das L von Blue
Gene/L bedeutet Linux.
29
3 Software
3.1 Betriebssystem Architektur
Ziel der Entwickler war es eine Umgebung zu entwickeln, die einfach stukturiert ist und
eine hohe Anwendungsperformance bietet. Die Anwendungen finden sich in einem Unix
ähnlichen System wieder. Die Betriebssystem Funktionalität wurde zwischen den Rechen
und I/O Knoten getrennt. Jeder Rechen Knoten ist zuständig für die Ausführung eines
einzelnen Anwendungsprozesses. Die I/O Knoten bieten eine phyiskalische Schnittstelle
zum Datei System. Die I/O Knoten sind ebenso zuständig Prozesse laufen zu lassen die
es ermöglichen das Blue Gene/L System zu kontrollieren, booten, debuggen oder Jobs
auszuführen. Dieser Ansatz ermöglicht es die Rechenknoten sehr einfach zu halten.
Das Betriebssystem auf den Rechen Knoten, auch Blue Gene/L Ccompute Node Kernel (CNK) genannt, ist ein einfaches, single-user Betriebssystem, dass die Ausführung
von dual-threaded Anwendungen unterstützt. Jeder Thread eines Rechen Prozesses ist
gebunden an einen Prozessor im Rechen Knoten. Der CNK ergänzt sich zu einer userlevel Run Time Bibliothek, die dem Prozess direkten Zugriff auf das Torus und Tree
Netzwerk ermöglicht. Der Kernel und die Run Time Bibliothek implementieren die Knoten zu Knoten Kommunikation über das Torus Netzwerk und die Knoten zu I/O Knoten
Kommunikation durch das Tree Netzwerk. Die Rechen Knoten zu Rechen Knoten Kommunikation ist gedacht für den Austausch von Daten, die durch die Anwendung enstehen.
Die Rechen Knoten zu I/O Knoten Kommunikation ist in erster Linie dafür gedacht den
Rechen Prozess in den I/O Knoten auszudehnen, sodass der I/O Knoten diverse Funktionen für diesen Knoten ausführen kann. Der Blue Gene/L Compute Kernel bietet eine
einzelne und statische virtuelle Adressierung um einen Rechenprozess auszuführen. Dadurch ist es nicht nötig einen Kontextwechsel vorzunehmen. Seitenabrufe werden somit
nicht unterstützt. Daraus erfolgt eine volle Auslastung der Ressourcen auf einer Rechen
Karte.
Auf I/O Knoten läuft ein Linux Betriebssystem. Dieses System unterstützt die Ausführung mehrerer Prozesse. Auf den I/O Knoten wird nur System Software ausgeführt,
30
3 Software
keine Anwendungen. Der Zweck der I/O Knoten ist während der Ausführung von Anwendungen auf den Rechenknoten diese mit Service zu unterstützten die nicht auf den
Rechen Knoten vorhanden sind. I/O Knoten bieten ein aktuelles Datei System für die
laufenden Anwendungen an. Sie bieten ebenfalls Socket Verbindungen zu Prozessen in
anderen Systemen. Wenn ein Rechenprozess in einem Rechen Knoten eine I/O Operation ausführen möchte, zum Beispiel ein Lesen oder Schreiben, wird diese I/O Operation
in das Tree Netzwerk durch einen I/O Knoten durchgereicht. Der Rückgabewert erreicht
dann den Rechen Knoten wieder über den I/O Knoten. Der I/O Knoten bietet also
Prozesse zur Identifzierung, Bestätigung und ein Logging für den Rechen Knoten. I/O
Knoten bieten Möglichkeiten zum Debuggen der Benutzeranwendung. Debugger die auf
den I/O Knoten laufen können die Anwendungen und Prozesse auf den Rechen Knoten debuggen. In diesem Fall erfolgt die Weiterleitung in die entgegengestzte Richtung.
Debug Operation die auf einem I/O Knoten ausgeführt werden sind abhängig von der
aktuellen Anwendung im Rechen Knoten. Das Ergebnis wird dann wieder zurück zum
I/O Knoten gesendet.
3.2 Parallelprogrammierung MPI
Zur parallelen Ausführung der Anwendungen auf den Prozessoren kommt hinzu, dass
es auch möglich ist gleichzeitig Nachrichten zwischen den einzelnen Prozessen auszutauschen. Hierzu wurde der Standard MPI verwendet. Dieser Standard bietet eine Schnittstelle, sprich eine Sammlung von Operationen, um Parallelprogrammierung duchführen
zu können.
Eine MPI-Applikation besteht in der Regel aus mehreren miteinander kommunizierenden Prozessen, die alle zu Beginn der Programmausführung parallel gestartet werden.
Alle diese Prozesse arbeiten dann gemeinsam an einem Problem und nutzen zum Datenaustausch Nachrichten, welche explizit von einem zum anderen Prozess geschickt werden.
Ein Vorteil dieses Prinzips ist es, dass der Nachrichtenaustausch auch über Rechnergrenzen hinweg funktioniert.
31
3 Software
Blue Gene/L bietet mit der speziell angepassten MPICH2 Bibiliothek die Möglichkeit Punkt zu Punkt Kommunikation durchzuführen. Dazu gibt es Funktionen wie
MPI_SEND und MPI_RECV mit denen es möglich ist Nachrichten direkt an einen
bestimmten Prozess zu senden oder von einem Prozess zu empfangen. Die Rechen Knoten sind wie in den bisherigen Kapitel beschrieben an das global collective network
angeschlossen. Hier ist es möglich mit MPI_GATHER und MPI_SCATTER Nachrichten zu verteilen bzw. einzusammeln. Das heisst jeder Prozess kann Daten von einem
anderen Prozess verarbeiten und nach einer gewissen Zeit werden die Ergebnisse wieder
eingesammelt. Da das Tree Netzwerk die Broadcast Funktion bietet ist es auch möglich
per MPI_BCAST von einem Prozess aus an alle anderen Prozesse in einer bestimmten
Gruppe Daten zu senden.
MPI bietet viele Möglichkeiten Prozesse parallel kommunizieren zu lassen. Dieser Abschnitt gab einen kurzen Einblick in die Funktionen von MPI. Mit dem MPI Prozess
Managment ist es zusätzlich möglich Prozesse zu starten und zu beenden. MPICH2
beinhaltet eine Vielzahl an den Prozess Manager angepasst für gängige Cluster Systeme
mit universellen Arbeitsbereichen. Der Blue Gene/L Prozess Manager verfügt über eine
komplette Verwendung der hierarisch aufgebauten System Managment Software, die in
den I/O Knoten über einen speziellen Dämon gestartet und beendet werden kann. Die
Blue Gene/L System Managment Software ist explizit entwickelt worden um Probleme
der Skalierbarkeit im Moment des Startens, Synchronisieren und Beenden der maximal
65536 MPI Prozessen zu behandeln.
32
4 Zusammenfassung
Das Blue Gene/L System wie es im Lawrence Livermore National Laboratory aufgebaut
ist zeigt, dass Blue Gene zu dem derzeit erfolgreichsten Supercomputer der Welt gehört.
Das 1999 von IBM gestartete Projekt ist bis zur heutigen Zeit sehr erfolgreich. Der
Einsatz von Blue Gene/L in den grossen amerikanischen Forschungslabors zeigt welche
komplexen Anwendungen auf dem Supercomputer laufen. Dazu gehören Simulationen
im Bereich der Chemie, Physik, Biologie und anderen naturwissenschaftlichen Gebieten.
Das Verhältnis von erbrachter Leistung (im Tera Flops Bereich) zu verbrauchter Energie
(mit mehreren Mega Watt wie in Livermore) bei Blue Gene/L ist verglichen mit anderen
Supercomputer, zum Beispiel von der Firma Cray oder Intel, effektiver und hat somit
einen höheren Wirkungsgrad. Durch die Verwendung von vielen Prozessoren mit einer
geringen Verlustleistung konnte ein System erschaffen werden das gut skalierbar und die
gewünschte Anwendung flexibel angepasst werden kann.
Die Hardware ist speziell an ein möglichst breite Anwendung angepasst, aber auch
einfach und gut strukturiert aufgebaut. Das Packaging Modell von Blue Gene/L ist
übersichtlich und einfach gehalten. Durch Vorgänger im Bereich des Supercomputing
konnten Erfahrungen in die Entwicklung der Hardware übernommen werden. So wurde
zur Kommunikation zwischen den Komponenten bereits etablierte Netzwerke wie das
Torus Netzwerk integriert werden. Dadurch erreichte man eine hohe Bandbreite und eine
sichere Verbindung zwischen den Knoten im System. Die Hardware ist so konzepiert,
dass jeder Bereich für eine bestimmte Aufgabe optimiert ist. Die Rechen Knoten für
die Anwendungen, die I/O Knoten für die Ein und Ausgabe Kommunikation zwischen
externen Speichermedien und den Rechen Knoten. Die Kontrolle über das System ist
33
4 Zusammenfassung
über eine Ethernetverbindung dezentral möglich. Die Netzwerke bieten einen schnellen
Datenaustausch und sind an das System angepasst.
Die Software ist an die Hardware von Blue Gene/L angepasst. Die Betriebssysteme
erfüllen ihren Zweck für die gewünschte Anwendung. Soll auf der Hardware nur System Funktionen ausgeführt werden so bietet das Betriebssystem nur diese gewünschten
Operationen. Die Software die auf den Rechen Knoten ausgeführt wird ist für die Parallelprogrammierung optimiert. Alle Funktionen die von den Rechen Knoten benötigt
werden sind somit vorhanden. Durch die Hierarchie im Softwarebereich ist eine schnelle
Ausführung der Anwendung möglich. Eine Verwaltung von merheren tausend Prozessen
kann einfach über externe Hostrechner gestartet und diagnostiziert werden.
Blue Gene/L ist in sich stimmig und genau aufeinander abgestimmt. Ausfälle sind
selten und der Wirkungsgrad des Systems somit sehr hoch. Abschliessend lässt sich sagen,
dass das beschriebene Thema dieser Arbeit interessant war und ein guten Einblick in
die komplexe Welt des Supercomuting und High Performance Computing geboten hat.
34
Literaturverzeichnis
[1] A. A. Bright et al. Creating the Blue Gene/L Supercomputer from Low Power Systemon-a-Chip ASICs. Digest of Technical Papers, 2005 IEEE International Solid-State
Circuits Conference, 2005.
[2] A. Gara et al. Overview of the blue gene/l system architecture. IBM J. RES. &
DEV. VOL. 49 NO. 2/3, 2005.
[3] M. Ohmacht et al. Blue gene/l compute chip: Memory and ethernet subsystem. IBM
J. RES. & DEV. VOL. 49 NO. 2/3, 2005.
[4] N. R. Adiga et al. Blue gene/l torus interconnection network. IBM J. RES. & DEV.
VOL. 49 NO. 2/3, 2005.
[5] P. Coteus et al. Packaging the blue gene/l supercomputer. IBM J. RES. & DEV.
VOL. 49 NO. 2/3, 2005.
[6] Prof. Dr. Wolfgang Karl Universität Karlsruhe (TH). Rechnerstrukturen Vorlesung
im Sommersemester 2007, 2007.
Wikipedia
http://www.wikipedia.org
IBM Journal of Research and Development Vol. 49, No. 2/3, 2005 Blue Gene
http://researchweb.watson.ibm.com/journal/rd49-23.html
35
Literaturverzeichnis
Linux Devices
http://linuxdevices.com/articles/AT7249538153.html
Dr. Burkhard Steinmacher-Burow (Mitarbeiter am Blue Gene Projekt)
http://www.desy.de/dvsem/WS0405/steinmacherBurow-20050221.pdf
36
Eidesstattliche Erklärung
Hiermit versichere ich, die vorliegende Arbeit selbstständig und unter ausschließlicher
Verwendung der angegebenen Literatur und Hilfsmittel erstellt zu haben.
Giessen, 4. September 2007
Sven Wagner
37
Herunterladen