SGI Altix am LRZ

( English version)

Technische Dokumentation

Die technische Dokumentation zur SGI Altix ist Bestandteil der Dokumentation des LRZ Linux-Clusters.

Überblick

Anfang Februar 2005 wurde am LRZ eine Maschine vom Typ SGI Altix 3700Bx2 als neuer Hochleistungsrechner installiert, der den bisherigen Landeshochleistungsrechner Fujitsu-Siemens VPP700/52 ablöste. 

Es handelt sich um ein sogenanntes ccNuma (cache-coherent non-uniform memory access) System, bestehend aus 16 Compute Bricks (Nodes) mit je 8 CPUs. Die Nodes sind über ein Hochgeschwindigkeits-Netzwerk vom Typ NUMALink4 gekoppelt. Damit steht ein Single System Image Distributed Shared Memory System mit 128 Prozessoren zur Verfügung, das die MPI und OpenMP Programmiermodelle unterstützt.

Technische Daten

Charakteristik und Anwendungsgebiete

Systemarchitektur des Rechners

(Der folgende Text und die Grafiken wurden teilweise aus der Dokumentation des RRZE übernommen)

Das ALTIX System ist modular aufgebaut; es wird über Bricks (19 Zoll Einschübe) zusammengestellt. Die Prozessoren und die Level 0 Router befinden sich im CR-Brick; dazu kommen bei der LRZ-Maschine noch 4 R-Bricks (Level 1 Router), 1 IX-Brick ( Systemplatten, Netzwerkverbindungen) und ein PCIX-Brick (PCI-X Adpapter für den Anschluss des lokalen RAID Plattensystems

Prozessoren

Die 64-Bit Itanium2 "Madison" Prozessoren der ALTIX sind 6-fach instruktionsparallele in-order CPUs und arbeiten nach dem EPIC-Konzept. EPIC (für "Explicitly Parallel Instruction Computing") bedeutet, dass die CPU alle Maschinenbefehle in Form von Dreiergruppen ("Bundles") verarbeitet. Zu jedem Bundle gehört ein Template-Feld, das angibt, von welchem Typ die Instruktionen sind und wo Barrieren für die parallele Ausführung zu setzen sind. Die CPU liest pro Takt zwei solcher Bundles aus dem L1-Instruktionscache. Damit ergibt sich eine maximale Ausführungsrate von 6 Befehlen pro Takt. Innerhalb eines Bundles gibt es einige Einschränkungen (" Dispersionsmatrix" bezüglich der erlaubten Befehlskombinationen; z.B. sind maximal zwei Fließkomma-Instruktionen bzw. zwei Speicher-Instruktionen (Load/Store) erlaubt. Da ein FMA-Befehl (Fused Multiply-Add) zwei Flops ausführt, ergibt sich eine Peak Performance von 4 Flops pro Takt. Ebenso können pro Takt bis zu 4 Load- bzw. 2 Load- und 2 Store-Operationen abgesetzt werden, was im Cache zu einer maximalen Bandbreite von 4 doppeltgenauen Worten pro Takt bzw. einem Wort pro Flop führt.

Für Fließkomma-Daten wird der 16 kByte große L1-Cache umgangen und stets der 256 kByte große L2-Cache konsultiert, der im Write-Back Verfahren arbeitet. Daneben gibt es noch einen 6 MByte großen L3 Cache (ebenfalls Write-Back) mit im Prinzip gleicher Bandbreite aber schlechterer Latenz. Alle Caches sind on-Chip.

Der Speicherbus kann 6.4 GByte/s (halbduplex) oder - bei 1.6 GHz CPU-Frequenz - 0.20 Worte (8 Byte) pro Flop transferieren; je zwei Prozessoren teilen sich die Busbandbreite. Zu beachten ist, dass aufgrund des Write-Back-Verfahrens ein Store auf eine Speicherstelle, die noch nicht im Cache liegt, zunächst einen Load auf die gesamte zugehörige Cachezeile bewirkt. Dies kann bei Store-dominierten Codes eine deutliche Reduktion der effektiven Bandbreite (beim Zugriff auf den L3 Cache oder das Memory) zur Folge haben. Diesen Nachteil teilt aber der Itanium2 Prozessor mit fast allen aktuellen Architekturen.

Weitere Informationen zur Prozessor-Architektur und verwandten Themen wie Optimierung finden sich auf den Intel-Webseiten:

Nodes

Ein Node oder "SC-Brick" besteht aus acht CPUs in vier Paaren. Jedes Paar hat jeweils einen gemeinsamen Weg zum lokalen Speicher. Das ganze System ist aus sechzehn solcher SC-Bricks aufgebaut und durch NUMALink4-Verbindungen über vier Router verkoppelt (Abb. 2). Bei einem Memory-Zugriff über das Netzwerk erhöht sich für jeden Router-"Hop" entsprechend die Latenz. 

Damit ergibt sich für das Gesamtsystem eine Speicherhierarchie mit drei Ebenen:

Schematischer Aufbau eines Rechennodes (SC-Brick) 
mit lokalem Speicher und SHUB
Blockdiagramm der SGI Altix

Aufbau der Altix . Alle Verbindungen zu und zwischen den Routern sind NUMALink4-Interconnects