Hardwarebeschreibung SGI Altix 4700
SGI Altix 4700 ist ein Parallelrechnersystem, in dem Einzelknoten (in der SGI-Terminologie als Blades bezeichnet) über ein schnelles Kommunikationsnetwerk miteinander verbunden sind. Die Gesamtheit der lokalen Speicher aller Knoten sind als gemeinsamer Speicher nutzbar. Die gemeinsame Sicht auf die verteilten Speicher wird durch Cache Coherence Mechanismen gewährleistet. Die Altix gehört damit zur Klasse der ccNUMA (cache coherent non umiform memory access) Multiprozessoren, wobei NUMA darauf verweist, dass die Zugriffzeiten auf Daten im gemeinsamen Speicher von ihrer physikalischen Speicherort, im lokalen oder in entfernten Knoten, abhängt.
Das Altix System der GWDG besteht aus 128 „Density Compute Blades“ mit je zwei Dual-Core Itanium2 Prozessoren (1,6 GHz Taktrate, 533 MHz Frontside Bus, 16 MB 3Level Cache), hat also insgesamt 512 Prozessor-Cores und eine maximale Rechenleistung von 3,28 TeraFlop/s. Der gesamte Hauptspeicher von 1472 GB ist inhomogen verteilt: 8 Blades mit 24 GB, 80 Blades mit 12 GB und 40 Blades mit 8 GB.
Über die zentralen Dateiserver der GWDG sind die Benutzerverzeichnisse für permanente und temporäre Daten angebunden. Das Archiv ist zur Zeit nicht vom Altix-System aus verfügbar. Das System stellt im Verzeichnis /scratch einen lokaler Plattenspeicher der Größe 3,6 TeraByte bereit.
Das Blade
Jedes Blade enthält zusätzlich einen von SGI entwickeltem Router-Chip Shub2.0 , der SHub2.0 denFrontendbus der Prozessoren mit dem Speichersystem und zwei Anschlüssen an das Kommunikationsnetz verbindet (s. Abb.).
Die Bandbreite für Speicherzugriffe auf Daten im lokalen Speicher wird durch den Frontside Bus, der beide Prozessoren, also insgesamt 4 Prozessor-Cores, versorgt, auf 8,5 GB/s beschränkt. Die beiden Verbindungen zum Verbindungsnetz erlauben jeweils 3,2 GB/s Durchsatz in beiden Richtungen, so dass die Zugriffsbandbreite auf Daten im Speicher eines entfernten Blades auf diese 3,2 GB/s beschränkt ist.
Das Verbindungsnetz
Das von SGI entwickelte Verbindungsnetz NUMAlink4 besteht aus Routern mit je 8 Ports, die, gegebenenfalls kaskadiert, über Kabel alle Blades miteinander verbinden. Über jeden dieser Ports können gleichzeitig 3,2 GB/s Daten in beiden Richtungen fließen, die Latenzzeit für jeden Router beträgt 50 nanosec.
Jeweils bis zu 10 Blades und 4 Router sind in einer IRU (individual rack unit) untergebracht und vernetzt (s. Abb.).
Bis zu vier IRUs in einem Rack untergebracht und direkt über die freien Anschlüsse vernetzt werden. Bei dem Zusammenschluss von mehr als vier IRUs zu einem ccNUMA-System werden zusätzliche Meta-Router für eine Baum-artige Verbindungsstruktur eingesetzt. Die folgende Abb. zeigt diese Struktur für das GWDG-System mit 128 Blades:
Die Konfiguration enthält 14 IRUs -10 IRUs mit je 10 Blades und 4 IRUs mit je 8 Blades - sowie 64 NUMAlink4-Router.
Die Latenz für Datenkommunikation hängt von der Anzahl der Router ab, die involviert sind:
Innerhalb eines
Blades------------------------------------------------------0 Router
Zwischen Blades innerhalb einer Kleingruppe von 4 bzw. 5 Blades----1 Router
Zwischen Kleingruppen innerhalb einer Gruppe von 4 Kleingruppen---2 Router
Zwischen Gruppen innerhalb des Gesamtsystems-------------------------3 Router
Die Bandbreite für die Datenkommunikation ist unabhängig von der Zahl der involvierten Router.
Der Prozessor
Die in dem System SGI Altix 4700 verwendeten Montecito Dual-Core Prozessoren gehören zur 4. Generation der Itanium 2 Prozessorliene. Diese realisiert die von Intel und HP entwickelte IA64-Architektur. Die Besonderheit der IA64-Architektur liegt in der Verwendung von Instruktions-Gruppen, in denen mehrere Befehle, die keine wechselseitigen Abhängigkeiten erzeugen, zusammengefasst werden können. Die Erzeugung solcher Instruktionsgruppen aus dem Programm obliegt dem Compiler. Der Prozessor kann Instruktionen aus einer Gruppe ohne weitere Überprüfung auf Abhängigkeiten parallel auf den vorhandenen Verarbeitungseinheiten ausführen. Diese in der Befehlssatz-Architektur verankerte Möglichkeit zur Parallelität wird als EPIC (explicit parallel instruction computing) bezeichnet. Im Gegensatz hierzu basiert die Parallelverarbeitung in superskalaren RISC-Prozessoren (z.B. IBM PowerPC) auf der Fähigkeit der Hardware, die Unabhängigkeit aufeinanderfolgender Instruktionen zu erkennen und sie dann gegebenenfalls parallel den vorhandenen Verarbeitungseinheiten zu bearbeiten. Der durch dir geringere Komplexität der EPIC-Architektur gewonnene Platz kann auf den Chips für eine größere Anzahl von Verarbeitungseinheiten und größeren Cache verwendet werden.
Das Funktions-Schaltbild des Montecito zeigt die beiden Prozessor-Cores mit jeweils eigenen Instruktionseinheiten, Verarbeitungseinheiten und Caches der Stufen 1, 2 und 3. Die Fließkomma-Pipelines in jedem Core können pro Takt zwei kombinierte Mutiplikation-Additions-Operationen mit 64bit Operanden durchführen oder 4 solcher kombinierten Operationen mit 32bit Operanden. Dies ergibt bei einer Taktrate von 1,6 GHz eine maximale Rechengeschwindigkeit pro Core von 6,4 GFlop/s für 64bit Operanden und 12,8 GFlop/s für 32bit Operanden.