A New Generation of Cluster Interconnect: The SiCortex Family

Ähnliche Dokumente
Distributed Memory Computer (DMC)

Laptop A location aware peer-to-peer overlay network

Informatik 12 Kapitel 2 - Kommunikation und Synchronisation von Prozessen

Oberseminar Netzwerk & Systemmanagement OLSR-NG Optimized Link State Routing Next Generation

Wie groß ist die Page Table?

Verteilte Systeme Übung T5

Kapitel 1 Parallele Modelle Wie rechnet man parallel?

2 Rechnerarchitekturen

One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu

Seminar Mobile Computing Routing in Ad Hoc Netzen

GigE Vision: Der Standard

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

Schreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).

Ein kleiner Einblick in die Welt der Supercomputer. Christian Krohn

Busse. Dr.-Ing. Volkmar Sieh WS 2005/2006. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg

Tutorübung zur Vorlesung Grundlagen Rechnernetze und Verteilte Systeme Übungsblatt 6 (27. Mai 31. Mai 2013)

Busse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

IP routing und traceroute

Chord und Varianten. Vortrag Seminar P2P Systeme. Werner Gaulke Das Chord Projekt Grundlagen Aufbau Varianten Fazit

Lehrstuhl Netzarchitekturen und Netzdienste Institut für Informatik Technische Universität München. IP Fast Reroute. Deniz Ugurlu.

Weitere Verbesserungen

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Dynamisches Huffman-Verfahren

High Performance Embedded Processors

Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE

Verwenden von Hubs. Geräte der Schicht 1 Günstig Eingang an einem Port, Ausgang an den anderen Ports Eine Kollisionsdomäne Eine Broadcast-Domäne

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Protected User-Level DMA in SCI Shared Memory Umgebungen

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

HORUS. Seminar "Ausgewählte Themen in Hardwareentwurf und Optik" im HWS Martin Scherer

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

Abschlussklausur. Computernetze. 14. Februar Legen Sie bitte Ihren Lichtbildausweis und Ihren Studentenausweis bereit.

Neue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP)

Lernmodul 7 Algorithmus von Dijkstra

GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT

Manycores: Hardware und Low-Level Programmierung

Algorithmen und Datenstrukturen 1

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck

Verteilte Betriebssysteme

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

Foliensatz. Theorie und Einsatz von Verbindungseinrichtungen in parallelen Rechnersystemen

Spielst du noch oder rechnest du schon?

Mehrprozessorarchitekturen

D-Link s Super G mit Smart Antenna MIMO-Technologie

Supercomputer Blue Gene/L

Aufgaben zur Klausurvorbereitung

Aktuelle RTOS-Entwicklungen aus der Forschung

Rechnernetze 2. Grundlagen

Virtueller Speicher und Memory Management

Einleitung Performance Netzwerk Leistungsaufnahme Skalierbarkeit Sicherheit Zuverlässigkeit Kompatibilität. Ziele und Maße. Dr.-Ing.

Wo geht's lang: I Ro R u o t u i t n i g

Grundlagen der Informatik

Routing im Internet Wie findet ein IP Paket den Weg zum Zielrechner?

CHiC Chemnitzer Hochleistungs-Linux Cluster. Stand HPC Cluster CHiC. Frank Mietke, Torsten Mehlan, Torsten Höfler und Wolfgang Rehm

Ausblick auf den HLRN III - die neue HPC Ressource für Norddeutschland

Algorithmen und Datenstrukturen

Grundlagen der Rechnerarchitektur

ModProg 15-16, Vorl. 13

Seminarvortrag: Direktivenbasierte Programmierung von Beschleunigern mit OpenMP 4.5 und OpenACC 2.5 im Vergleich

Rechnernetze Übung 10. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2011

Oracle Data Warehouse Mit Big Data neue Horizonte für das Data Warehouse ermöglichen

Vernetzte Systeme. Übungsstunde Adrian Schüpbach 30. Juni 2006

Kommunikation im lokalen Netz

Grundlagen der Rechnerarchitektur. Einführung

Georg Hager Regionales Rechenzentrum Erlangen (RRZE)

Tutorübung zur Vorlesung Grundlagen Rechnernetze und Verteilte Systeme Übungsblatt 10 (24. Juni 28. Juni 2013)

Freispeicherverwaltung Martin Wahl,

Einleitung Architektur Schnittstellen Dateisysteme 3D XPoint im Vergleich Zusammenfassung Literatur. 3D XPoint. Patrick Wittke

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Hauptdiplomklausur Informatik März 2001: Internet Protokolle

Das HLRN-System. Peter Endebrock, RRZN Hannover

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

Vermaschte, drahtlose Sensornetzwerke für Grossanlagen

Rolf Wanka Sommersemester Vorlesung

Rechner Architektur. Martin Gülck

2.1 Rechnersichten 2.2 Rechnerorganisation: Aufbau und Funktionsweise

Cswitch Seminar. HWS 08 Von Andreas Peters. Cswitch Seminar, Andreas Peters

Der neue Hessische Hochleistungsrechner HHLR

Verteilte Systeme. 7. Fehlertoleranz

Wireless LAN Meßverfahren

2008 Jiri Spale, Programmierung in eingebetteten Systemen 1

jinvent iolinker Press Kit

Computeranwendung in der Chemie Informatik für Chemiker(innen) 4. Netzwerke

Rechnernetze I. Rechnernetze I. 1 Einführung SS Universität Siegen Tel.: 0271/ , Büro: H-B 8404

ATM LAN Emulation. Prof. Dr. W. Riggert

Electronic Design Automation (EDA) Technology Mapping

Algorithmen & Komplexität

Dekodierung eines Funkfernschreibersignals mithilfe der Zynq-Plattform. Lehrstuhlseminar Benjamin Koch

Studienprojekt HP-MOM

Grundlagen der Rechnerarchitektur

Betrieb eines heterogenen Clusters

UBERBLICK ZU NETWORKS-ON-CHIP:

Einfu hrende Betrachtung des USB und Mo glichkeiten der Integration in das Rainbow-Betriebssystem. Georg Gottleuber 23. Juni 2010 Verteilte Systeme

Rolf Wanka Sommersemester Vorlesung

Very simple methods for all pairs network flow analysis

Transkript:

Ruprecht-Karls-Universität Heidelberg Institut für technische Informatik (ZITI) Sommersemester 2013 Seminar: Themen der technischen Informatik Dozent: Prof. Dr. Ulrich Brüning Betreuer: Dr. Frank Lemke Studentin: Hanna Khoury Datum: 19.07.2013 A New Generation of Cluster Interconnect: The SiCortex Family Hanna Khoury Matrikelnr.: 2502442 Fächer: Deutsch/LA, Spanisch/LA, Informatik/LA Fachsemester: 15/15/6 Anschrift: Karlsruher Straße 51 69126 Heidelberg E-Mail-Adresse: hanna.s.khoury@googlemail.com

Inhaltsverzeichnis 1) EINFÜHRUNG: DER SUPERCOMPUTER... 2 1.1) KLASSISCHER AUFBAU... 2 1.2) WOZU EIN NEUER ANSATZ?... 3 2) DIE SICORTEX FAMILIE... 3 2.1) HINTERGRÜNDE... 3 2.2) DIE HARDWARE... 4 2.2.1) DMA-Engine... 5 2.2.2) Fabric-Switch... 5 2.2.3) Fabric-Link... 6 2.3) DAS SOFTWARE-INTERFACE... 7 2.4) DIE SOFTWARE... 8 2.4.1) Grundbefehle... 8 2.4.2) Zubehör... 9 2.5) DIE KAUTZ-TOPOLOGIE... 9 3) PERFORMANCE-VERGLEICH: HERKÖMMLICHES CLUSTER VS. SC072... 11 4) FAZIT UND DISKUSSION... 14 5) QUELLENVERZEICHNIS... 17 5.1) PAPER UND INTERNETQUELLEN... 17 5.2) ABBILDUNGSVERZEICHNIS... 17 6) SELBSTSTÄNDIGKEITSERKLÄRUNG... 19

1) Einführung: Der Supercomputer Ein Supercomputer [1] ist ein Computer-Cluster, das heißt es werden diverse Einzelrechner miteinander vernetzt. Diese einzelnen Knoten enthalten ihrerseits mehrere Rechenkerne und können sich Peripheriegeräte und Hauptspeicher teilen. Diese Vorgehensweise eignet sich besonders zur Lösung sehr komplexer Probleme, die sich gut verteilen lassen und von Einzelsystemen nicht mehr effizient berechnet werden können, wie beispielsweise Klimasimulationen, Aerodynamikprobleme oder Proteinfaltungen, auf die verschiedenen Knoten verteilt und berechnet werden können. Dabei werden entweder die Operationen in Teiloperationen untergliedert, die auf die Prozessoren verteilt werden, oder der Datensatz wird in kleinere Teildatensätze zerlegt. Im Folgenden wird nun zunächst der klassische Aufbau eines Supercomputers skizziert, woraufhin es zu diskutieren gilt, an welchen Kritikpunkten dieses Systems ein alternativer Ansatz anknüpfen kann. Das zweite Kapitel stellt dann die SiCortex Familie vor, wobei erst auf die Firmenhintergründe eingegangen wird. Anschließend werden von der Hardware aufwärts erst die wichtigsten Hardware-Komponenten, dann das Software-Interface und schließlich die Software vorgestellt. Zuletzt wird auf die dem Interconnect zugrunde liegende Idee der Kautz-Topologie erläutert. 1.1) Klassischer Aufbau Meist werden Hochleistungsprozessoren verwendet, um ein Computer-Cluster zu bauen. So soll das gesamte System von der hohen Leistung und der Schnelligkeit der Einzelprozessoren profitieren. Häufig werden diese Cluster von Rechenzentren, Forschungseinrichtungen oder Firmen eingesetzt. Daher handelt es sich zumeist um im freien Handel erwerbbare Einzelprozessoren und Open-Source-Software. Als ein Beispiel für eine herkömmliche Cluster-Technik kann das Myrinet- Netzwerk der Firma Myricom [2] dienen. Es verwendet eine Clos-Topologie und zeichnet sich durch geringen Protokollsteuerungsaufwand, einen dadurch höheren Datendurchsatz, wenige Schnittstellenkarten und kurze Latenzzeiten aus. Es verwendet 2,2 GHz Opteron Prozessoren und ein Portable Batch System (PBS), welches das Job-Scheduling regelt [3].! "!

1.2) Wozu ein neuer Ansatz? Herkömmliche Systeme erreichen oft nicht ihre Spitzenleistung, weil die Latenzzeiten so hoch sind. SiCortex wollte dagegen vorgehen, indem nicht einfach die Rechenzeit verkürzt wird, sondern auch Wartezeiten reduziert werden [4]; hierbei geht es zum einen um Speicherzugriffen, zum anderen um die Kommunikation zwischen den Prozessoren. Die enorme Zeitersparnis ist das gewichtigste Argument seitens SiCortex für ihr System und wird auch durch das effiziente Interconnect ermöglicht. Zudem ist die Skalierbarkeit häufig verbesserungswürdig, da bei steigender Prozessorenzahl die Kommunikation zwischen den Einzelprozessoren immer aufwändiger wird. Anstatt diese also als zeitintensive I/O-Funktion anzusehen, soll eine dichte Konstruktion mit sechs Prozessoren auf einem Node Chip geringe Latenz, hohe Bandbreite und schnelle Kommunikation zwischen den Knoten ermöglichen. Auch wollte SiCortex die Zahl der Einzelkomponenten reduzieren und so Fehlerquellen ausräumen. Gerade die Zuverlässigkeit lässt sich in herkömmlichen Systemen nur schlecht sichern, weil zu viele Einzelelemente involviert sind, welche die Fehleranfälligkeit des gesamten Systems drastisch erhöhen. Ist so beispielsweise ein Crash pro Jahr noch akzeptable, solange es sich um einen Einzelknoten handelt, ist dies bei mehreren Hundert Knoten nicht mehr zu verantworten. Weil die von SiCortex verwendeten Prozessoren jedoch wenig Strom brauchen, wird weniger Hitze erzeugt und viele Knoten können näher zusammengebracht werden. Dadurch können die Links des Interconnects elektrische Signale direkt auf dem Board verwenden, sodass keine externen Elemente notwendig sind. 2) Die SiCortex Familie 2.1) Hintergründe SiCortex [5] war eine Firma, die sich auf die Herstellung von Supercomputern spezialisiert hat. Sie wurde 2003 gegründet und hatte ihren Hauptsitz in Maynard, Massachusetts. Gefertigt wurde ein komplettes Cluster-System, in dem alle Elemente vom einzelnen Kernprozessor über den Compiler bis hin zur Software aufeinander abgestimmt sind, und das somit als Spezialrechner bezeichnet werden kann. Eine Besonderheit der SiCortex-Systeme! #!

ist die Verwendung der Kautz-Topologie aus, die besagt, dass alle Einzelrechner (Knoten / nodes) in einem Kautz-Graphen angeordnet sein sollen. Die Idee, die hinter dem System steht, gründet auf der Überlegung, dass mit wachsender Knotenzahl vor allem die Latenzzeiten, die Länge der Übertragungswege und die Anzahl der nötigen Hops innerhalb eines Pfades die Prozesse verlangsamen. Dies hat zur Folge, dass ab einer gewissen Knotenzahl keine Steigerung der Effizienz mehr dadurch zu erreichen ist, dass noch mehr Prozessoren verwendet werden, da gerade auf diese Weise auch die Übertragungswege wieder länger werden. SiCortex setzte deshalb nicht auf Hochleistungsprozessoren, sondern auf ein effizientes Clustering, welches gerade mit Hilfe der Kautz-Topologie erreicht werden sollte. Die SiCortex-Familie bestand aus vier Modellen [4], dem SC072, SC648, SC1458 und dem SC5832, wobei das kleinste Modell zwölf, das größte 972 Knoten aufweist. Obwohl das System als Erfolg versprechend eingestuft wurde, musste die Firma 2009 geschlossen werden, weil ihr während der Wirtschaftskrise kein weiteres Kapital zur Verfügung gestellt wurde. In einer Auktion wurden die Patente verkauft, wobei Cray Inc. [6] die Rechte am PathScale Compiler erwarb. 2.2) Die Hardware Der wichtigste Teil der Hardware [7] ist der sogenannte Node Chip, d.h. der Einzelknoten und seine Gestaltung, welcher in Abbildung 1 zu sehen ist. Der Node Chip besteht aus sechs 64- bit-prozessoren mit ihren jeweiligen L1-Caches und einem gemeinsamen kohärenten L2- Cache. Für jedes der beiden Speichermodule gibt es einen Memory-Controller. Das PCI- Express-Interface (Peripheral-Connect-Interface) regelt die Ein- und Ausgabe von bzw. nach außen. Weitere Interconnect-Komponenten, die im Folgenden näher erläutert werden sollen, sind der DMA-Engine, der Fabric-Switch und der Fabric-Link.! $!

Abb. 1: Aufbau des Node-Chips [7] 2.2.1) DMA-Engine Der DMA-Engine implementiert das Software-Interface des Interconnects und übersetzt Anfragen in sogenannte Packet Streams. Er stellt somit die Verbindung zwischen Prozessor und Fabric Switch dar und kommuniziert auf Cache-Level mit dem L2-Cache. Dadurch sind zum einen alle Aktivitäten innerhalb des Nodes Cache-kohärent, zum anderen reduziert sich die Latenzzeit der Nachrichten von Programmen, weil sie nicht durch den Hauptspeicher müssen. Die Kommunikation mit dem Fabric-Switch erfolgt über je drei Transmit- und Receive-Ports. 2.2.2) Fabric-Switch Der Fabric-Switch koordiniert die Verbindungen vom und zum DMA-Engine. Anstatt hierfür das übliche Store-and-forward-Routing [8] zu verwenden, welches die Daten vor der Weiterleitung an die Zieladresse in Zwischenspeichern anhand einer CRC-Prüfsumme auf Integrität prüft, kommt das Cut-Through-Routing [9] zum Einsatz. Dieses verzichtet darauf, die Integrität der Daten vorab zu prüfen und schickt die Nachricht stattdessen sofort nach Erhalt der Zieladresse weiter. Dadurch kann die Latenz verringert werden. Außerdem verhindert dieses Routing Deadlocks, weil die Weiterleitung der Prozesse nicht von Zwischenergebnissen abhängig ist. Der verwendete Error-Correcting-Code (ECC) erhöht! %!

zudem die Fehlertoleranz. Liegt trotz verwendeten ECC-Verfahrens immer noch ein Fehler vor, so wird dieser erst nach Erhalt der Nachricht gefunden, da der CRC-Check erst am Ende des Packets erfolgt. Fehlerhafte Pakete werden verworfen und erneut gesendet. Hier kommt der Replay Buffer zum Einsatz, welcher im Falle eines Fehlers alle Packets ab dem letzten korrekten Packet erneut senden. Dieses Re-Transmit erfolgt in-order, wodurch sichergestellt ist, dass keine Informationen durcheinander geraten oder sich anderweitige Fehler einschleichen. Für den Fall, dass ein Kanal besetzt ist, werden zusätzlich eingebaute Store-and- Forward-Buffer eingesetzt. Diese speichern die Nachricht, bis der Kanal wieder frei ist, sodass keine Teilnachrichten verloren gehen. So müssen die längeren Latenzzeiten nur in Kauf genommen werden, wenn tatsächlich Kanalengpässe vorliegen. 2.2.3) Fabric-Link Der Fabric-Link stellt eine direkte Verbindung zu den anderen Node Chips dar. Jeder Link ist eine multiple Spur aus SerDes PHYs, die eine Übertragungsrate von 2GB/s haben. Die Links übertragen nun die Packet-Streams, die vom Fabric-Switch an andere Knoten geschickt werden. Die Packet-Streams enthalten die Informationen, die für die CRC-Fehlererkennung und die Data Recovery über den Replay Buffer notwendig sind. Ein einzelnes Datenpaket, wie in Abbildung 2 dargestellt, besteht dabei aus maximal 19 64-bit-Wörtern, wobei der Header die Zieladresse speichert, die für das Cut-through- Routing gleich zu Beginn übertragen werden muss. Optional kann dann ein Kontrollwort für den entfernten Zielknoten (RDMA) angegeben werden. Es folgen 16 Wörter, die für Nutzdaten in einer Größe von insgesamt 128 Bytes reserviert sind. Der Anteil der Nutzdaten lässt sich mit folgender Gleichung errechnen: Payload = Datenwörter / Gesamtpaketlänge = 16 / 19! 0,842 Somit können pro Packet zirka 84,2% Nutzdaten übertragen werden, wogegen beispielsweise über Ethernet bei gleichem Payload nur eine Auslastung von ca. 77% möglich ist. Im letzten Wort sind die CRC-Prüfsumme und Typinformationen enthalten.! &!

Abb. 2: Aufbau eines Daten-Packets [7] 2.3) Das Software-Interface Der DMA-Engine implementiert das Software-Interface [7], welches den Programmen erlaubt, die Hardware zu verwenden. Das Interface besteht aus 14 DMA-Kontexten pro Knoten. Jeder Kontext ist dabei das Set aus Registern und Datenstrukturen, welches die Programme mit dem DMA-Engine teilen. Folgende Datenstrukturen sind im Software- Interface verfügbar: Die Command Queue (CQ) und die Event Queue (EQ) sind zirkuläre Zwischenspeicher, wobei erstere Befehle für den DMA Engine zur Verfügung stellt und letztere erhaltene Kurzmitteilungen oder Events weiterleitet, die anzeigen, dass die Aktivität am RDMA abgeschlossen ist. Auf dem Heap werden Befehlsketten abgelegt, der DMA kann eigene Mitteilungen dazuschreiben. In der Route Descriptor Table (RDT) werden über Indizes Routen zu anderen DMA-Kontexten festgelegt. Ebenfalls über Indizes werden in der Buffer Descriptor Table (BDT) Seiten im virtuellen Speicher des Nutzers ausgewiesen. Das implementierte Message Passing Interface (MPI) stellt neben den üblichen MPI- Funktionen spezielle Hardware-Unterstützung für DMA-Driven Collectives und eine eigene Barrier zur Verfügung. Gerade die optimierten Collectives stellen eine Besonderheit dar, die nicht jedes System, welches MPI unterstützt, bieten kann. Sie ermöglichen, dass Daten gleichzeitig von mehreren Knoten geschickt und empfangen werden können. Dieser Prozess lässt sich darüber hinaus noch beschleunigen, indem verschiedene Kommunikationsschritte schon innerhalb eines DMA-Engines ablaufen, anstatt die Prozessoren zu involvieren, welche! '!

so entlastet werden. Auch eine Barrier wird nicht von jedem MPI integriert und fungiert so als besonderes Feature des SiCortex Software-Interface. Die Barrier ist eine Grenze für Instruktionen, die erst passiert werden kann, wenn alle Prozesse abgeschlossen sind. Die so erfolgende Synchronisierung der Prozesse verhindert Fehler, die auftreten könnten, wenn Prozesse von Zwischenergebnissen anderer Prozesse abhängig sind, die jedoch noch nicht am Ende angelangt sind. Umgesetzt wird die Barrier, indem zunächst in einer Reduktionsphase ein Zähler im DMA-Engine dekrementiert wird, sobald ein Packet vollständig ankommt. Bekommt der Zähler einen negativen Wert, so wird eine Befehlsfolge ausgelöst, welche die Software in einer Baumstruktur anordnet. Sobald die Wurzel dieses Baumes erreicht ist, wird ein Broadcast ausgelöst, welches eine Nachricht der Länge Null sendet. Die Barrier soll in maximal zwölf Schritten passiert werden können, wobei sie ebenso wie die Collectives keine Prozessorleistung erfordert. 2.4) Die Software 2.4.1) Grundbefehle Die Software, die mit dem Interconnect mitgeliefert wird, stellt vor allem Grundbefehle [7] für den DMA (DMA-Primitives) zur Verfügung. Diese Befehle werden zunächst in die CQ geschrieben, dann wird ein I/O-Register erstellt, dass die Existenz neuer Befehle rückmeldet. Das größte Potential dieser Primitives ist, dass Befehle an entfernte DMA-Kontexte (RDMA) geschickt werden können. So leitet der Befehl send-event einzelne Packets an die EQ, der Befehl send-command einen DMA-Befehl an einen entfernten DMA-Kontextes weiter. Write-heap schreibt die Daten eines einzelnen Packets an einen Speicherplatz eines entfernten Heaps. Do-command dekrementiert einen Zähler und wenn das Ergebnis negativ ist, wird eine Liste von Befehlen im lokalen Heap ausgeführt. Mit put-buffer kann ein ganzer Speicherteil an einen entfernten Kontext geschickt werden. Optional kann dort dann ein Event ausgelöst oder ein Befehl ausgeführt werden. Auch lassen sich Befehle zu wichtigen Funktionen kombinieren: So setzen sich beispielsweise get-funktionen, die einem RDMA gelten, aus Send-Befehlen und einem eingebetteten put-buffer -Befehl zusammen.! (!

2.4.2) Zubehör Wie bereits erwähnt, enthalten die SiCortex-Produkte alle notwendigen Komponenten bereits ab Werk. So wird neben der Software auch einiges an Zubehör mitgeliefert, welches explizit für die übrigen SiCortex-Komponenten angelegt ist. Im Folgenden werden kurz die Treiber, Compiler und mitgelieferten Bibliotheken [4] vorgestellt. Das Linux-System hat drei Treiber, die extra an die SiCortex-Produkte angepasst sind. Der Fabric-Treiber unterstützt den DMA-Engine mit Hilfe von Anwendungen der Bibliotheken des MPI. Der SCethernet-Treiber ist ein Treiber des Linux-Netzwerkes, der IP- Frames überträgt. Der dritte mitgelieferte Treiber ist der MSP-Treiber, der die Kommunikation von Netzwerk und Konsole mit dem MSP (Module Service Processor) und dem SSP (System Service Processor) unterstützt. Auch zwei Compiler sind gehören zu jedem Cluster-Modell dazu: Der GNU-Compiler unterstützt C und C++, der QLogic PathScale-Compiler ist spezifisch an die SiCortex- Produkte angepasst und unterstützt Fortran 77, Fortran 95, C und C++. Ebenso stehen zwei Debugger zur Verfügung: der GNU gdb Debugger und der TotalView-Debugger. Die enthaltenen Bibliotheken sind besonders hilfreich für die Entwicklung wissenschaftlicher Anwendungen, weil besonders mathematische und wissenschaftliche Pakete angeboten werden, wie beispielsweise BLAS, LINPACK, FFT, LAPACK, CBLAS, BLACS, Hypre und ScaLAPACK. Diese wurden darüber hinaus ständig von SiCortex im Rahmen ihres Benutzerservices optimiert, getestet und gewartet. 2.5) Die Kautz-Topologie Das mit der Kautz-Topologie [10] implementierte Netzwerk ist das Kernstück, auf das sich die SiCortex Familie am meisten stützt, wenn es um die Optimierung der Kommunikation zwischen den Knoten geht. Durch die Vernetzung der Knoten in einem Kautz-Graphen soll die Anzahl der nötigen Hops im Pfad zwischen zwei entfernten Knoten reduziert werden. N Bei einem Kautz-Graphen K +1 M handelt es sich um einen gerichteten Graph mit dem Grad M und der Dimension N+1. Die einzelnen Knoten des Graphen lassen sich mit Wörtern benennen, die aus einer Zeichenkette s 0... s N mit der Länge N+1 bestehen. Die Zeichen sind Buchstaben aus einem Alphabet A mit insgesamt M+1 Zeichen. Innerhalb eines Wortes! )!

dürfen benachbarte Buchstaben nicht gleich sein (s i! s i+1 ). Die Knoten des Graphen werden jeweils so verbunden, dass der letzte Buchstabe eines Knotennamens mit dem ersten Buchstaben des folgenden Knotennamens übereinstimmt, wie beispielsweise in Abbildung 3: AB! BA, AB! BC. Aus diesen Bestimmungen lassen sich zudem sowohl die Anzahl der Knoten als auch die Anzahl der Kanten in Abhängigkeit von M und N berechnen. So besitzt ein Kautz-Graph (M+1)*M N Knoten und (M+1)*M N+1 Kanten. Abb. 3: Kautz-Graph mit Grad M = 2, Anzahl der Buchstaben (N+1) = 3 Wortlänge (N+1) = 2 [10] Aufgrund seiner mathematischen Gegebenheiten besitzt der Kautz-Graph viele wertvolle Eigenschaften, die den Anforderungen eines Interconnects durchaus gewachsen sind. So hat er den kleinstmöglichen Durchmesser bei festem Grad, was bedeutet, dass der Pfad zwischen den beiden am weitesten voneinander entfernten Knoten so kurz wie möglich gehalten wird. Ohne den Grad zu verändern und pro Knoten Kanten hinzuzufügen, kann also die maximale Obergrenze für die Länge des längsten Pfades gering gehalten werden. Eine Übersicht darüber, was dies konkret für das Interconnect bedeutet, veranschaulicht Abbildung 4. Durchmesser 2 3 4 5 6 7 Grad = 2 6 12 24 48 96 192 Grad = 3 12 36 108 324 972 2916 Grad = 4 20 80 320 1280 5129 20480 Abb. 4: Anzahl der Knoten im Kautz-Interconnect In dieser Tabelle lässt sich leicht ablesen, dass selbst für sehr viele Knoten sowohl der Grad als auch der Durchmesser sehr gering bleiben. Hier soll exemplarisch das größte der vier! *+!

SiCortex-Modelle, der SC5832, betrachtet werden: Der SC5832 hat 972 Einzelknoten, das heißt, dass ihm laut der Tabelle ein Kautz-Graph mit Grad M=3 und einem Durchmesser d=6 zugrunde liegt. Folglich kann jeder Knoten Nachrichten von drei anderen Knoten empfangen (entsprechend gibt es drei Transmit- und drei Receive-Ports an jedem Fabric-Switch), und der längste Pfad zwischen zwei beliebigen Knoten benötigt maximal sechs Hops. Außerdem enthält jeder Kautz-Graph sowohl einen Eulerkreis als auch einen Hamiltonkreis. Da der Eulerkreis [11] eine geschlossene Tour ist, die keine Kante mehr als einmal entlang fährt, müssen auch im Interconnect keine redundanten Wege zwischen zwei Knoten zurückgelegt werden. Der Hamiltonkreis [12] ist ebenfalls ein geschlossener Kreis und besagt umgekehrt, dass jeder Knoten nur einmal getroffen werden darf. Mit der Kombination dieser beiden Kreise ermöglicht der Kautz-Graph also ein maximal effizientes Routing, da sowohl redundante Wege als auch mehrfaches Passieren desselben Knotens ausgeschlossen sind. Zusätzlich hat ein Kautz-Graph des Grades k auch k disjunkte Pfade von einem beliebigen Knoten x zu einem beliebigen zweiten Knoten y. Disjunkte bzw. alternative Pfade ermöglichen auch alternatives Routing für den Fall, dass bestimmte Verbindungen bereits genutzt werden, wodurch wiederum Latenzzeiten verringert und Deadlocks vermieden werden können. 3) Performance-Vergleich: herkömmliches Cluster vs. SC072 Die Sandia National Laboratories, Albuquerque, haben das kleinste Modell der SiCortex Familie mit einem herkömmlichen Computer-Cluster verglichen. Dabei haben sie zum einen die Kommunikation zwischen den Prozessoren und zum anderen einige Mikro-Anwendungen auf beiden Systemen durchgeführt. Zuletzt wurde der Fokus des Vergleichs auf die Performance pro Watt gelegt. Hier soll nicht der gesamte Perfomance-Vergleich [3] nachgezeichnet, sondern nur einige Microbenchmarks, der HPCCG und der phdmesh, herausgegriffen werden. Verglichen wurde, wie bereits angedeutet, der SC072, zwölf Knoten und 72 64-bit MIPS Kernprozessoren mit 500 MHz, mit einem Cluster das ebenfalls 72 Prozessoren, jedoch handelt es sich bei letzterem um 2,2 GHz AMD Opteron-Prozessoren. Die Vergleichbarkeit der beiden Systeme wurde auf die gleiche Prozessorenzahl zurückgeführt. Da besonders Aufmerksamkeit der Leistung pro Watt zukam, ist an dieser Stelle anzumerken, dass der! **!

SC072 eine Single Core Peak Floating Point Rate von einem GFLOPS (Floating Point Operation Per Second) hat, des bei einem Stromverbrauch von 15 Watt, während das alternative System eine Single Core Peak Floating Point Rate von 4,4 GFLOPS aufweist, bei einem Stromverbrauch von 85,3 Watt. Dies entspricht einem durchschnittlichen Stromverbrauch von zirka 19,3 Watt pro GFLOPS beim herkömmlichen Cluster, also knapp fünf Watt mehr als beim SC072. Der phdmesh ist ein Microbenchmark, das Operationen auf parallelen, heterogenen und dynamisch-unstrukturierten Netzen durchführt. Diese Anwendung berechnet die Zeit für parallele geometrische Suchen pro Schritt. Wie auch bei den übrigen Microbenchmarks wurde von drei Durchläufen der Durchschnitt der Werte errechnet und aus diesen Werten wurde ein Plotting erstellt. In Abbildung 5 ist das Strong Scaling des phdmeshs [13] zu sehen, das heißt, die Problemgröße war für die Gesamtheit der Prozessoren festgelegt. Abb. 5: phdmesh, Strong Scaling [3] Hier ist auffällig, dass der SC072 zwar zu Beginn recht langsam ist, sich aber mit steigender Prozessorenzahl stark dem Vergleichscluster annähert. Dies überrascht angesichts der leistungsschwächeren Prozessoren des SC072 und spricht für die Effektivität des Interconnects. Hier ist hinzuzufügen, dass der SC072 bei den Tests zur Kommunikation zwischen den Knoten tatsächlich recht gut abgeschnitten hatte. Der HPCCG-Microbenchmark [13] löst partielle Differentialgleichungen und trifft so eine Aussage über die Performanz des jeweiligen Clusters. Als Maß für die Leistung dienen die bereits erwähnten FLOPS, eine Einheit, welche die für Gleitkommaoperationen wie die! *"!

Addition oder die Multiplikation benötigte Zeit ausdrückt. Das Plotting in Abbildung 6 zeigt ein Weak Scaling, die Problemgröße ist also für den Einzelprozessor, nicht für die Gesamtheit der Prozessoren festgelegt. Abb. 6: HPCCG, Performance in MFLOPS [3] Hier bietet sich nun ein umgekehrtes Bild. Die Performanz des SC072 ist nur zu Beginn mit der des herkömmlichen Clusters zu vergleichen. Mit steigender Prozessorzahl bleibt er jedoch hinter diesem weit zurück, was auf die Hochleistungsprozessoren des Opteron-Clusters zurückzuführen ist. Auch wenn die Performanz in FLOPS nicht unbedingt für das SiCortex-Produkt spricht, so erreicht das System wenigstens die eingangs geforderte Skalierbarkeit. Die Skalierbarkeit drückt aus, ob die Leistung proportional zur Erhöhung der Knoten zunimmt, und ist daher eine wichtige Größe für High-Performance-Computing-Systeme. Die Grafik in Abbildung 7 zeigt die Ergebnisse des HPCCGs zur Skalierbarkeit.! *#!

Abb. 7: HPCCG, Skalierbarkeit [3] Hier zeigt das SiCortex-Cluster durchgängig eine bessere Leistung pro Knoten (da hier ebenfalls ein Weak Scaling vorliegt) als das Opteron-Cluster. Die SiCortex-Prozessoren erreichen bei bis zu 72 Prozessoren eine Leistung von über 95%, während das Opteron- Cluster unter 88% fällt. Daher kann man sagen, dass der ausbalancierte Ansatz von SiCortex fast volle Leistungsfähigkeit gewährleistet. 4) Fazit und Diskussion Das SiCortex Cluster Interconnect sollte eine ausbalancierte Alternative zu den herkömmlichen HPC-Clustern, in denen nicht alle Komponenten aufeinander abgestimmt und optimiert sind, darstellen. Die Idee war, einen Spezialrechner zu bauen, der bereits alle nötigen Features enthält angefangen bei der Hardware, die effizient und Fehler reduzierend entworfen ist, über direkt abgestimmte Compiler und Treiber bis hin zur Software. Das Ziel war es, das System zuverlässiger zu gestalten, dabei trotz hoher Leistung wenig Strom zu verbrauchen und das Cluster noch zu einem günstigen Preis anbieten zu können. Tatsächlich bewarb SiCortex das Produkt mit niedrigem Stromverbrauch wegen leistungsschwächeren Prozessoren, einer hohen Fehlertoleranz dank ECC-Verfahren und redundantem Routing sowie großer Zuverlässigkeit und Stabilität aufgrund der leistungsschwächeren, aber robusteren Prozessoren. Zudem wurden Zuverlässigkeit und Stabilität auch erhöht, indem! *$!

viele Prozessorkerne auf einem Node Chip angelegt waren und so auch externe Verbindungen und Verkabelungen reduziert werden konnten. Gerade die Verkabelung ist eine häufige Fehlerquelle, die so minimiert wurde. Open-Source-Software anstatt der teuren Softwarelösungen herkömmlicher Systeme sollte das System anpassungsfähig und kostengünstiger machen. Der Clou hinter dem System ist die Einsparung von Wartezeit und Kommunikationszeit zwischen den Prozessoren, die das Cluster ebenso leistungsstark machen sollte wie herkömmliche Cluster. Dabei sollte die geringere Prozessorleistung ausgeglichen werden, indem Latenzzeiten gering gehalten werden, sodass in den Softwareanwendungen versucht wurde, die Hauptspeicherzugriffe zu minimieren und Operationen in den DMA- Engine zu verlagern. Letzteres vermeidet die Involvierung der Prozessoren, sodass diese zusätzlich entlastet werden. Die größte Besonderheit ist wohl die Kautz-Topologie, welche die Prozessorknoten miteinander verbindet. Dieses Interconnect bietet zum einen alternative Pfade zwischen den Knoten, sodass fehlerhafte oder belegte Routen vermieden werden können. Zum anderen bietet es aufgrund der Eigenschaften des Kautz-Graphen auch bei sehr hoher Knotenzahl die Möglichkeit, mit wenigen Hops Daten von einem Knoten zu einem beliebigen anderen zu schicken. Hierbei ist zu betonen, dass diese Möglichkeit kein Best- Case-Szenario darstellt, sondern auch der Worst-Case aufgrund geringem Durchmesser bei festem Grad nur wenige Hops benötigt. Betrachtet man den Performance-Vergleich, fällt jedoch auf, dass das Cluster tatsächlich hinter den beworbenen Vorzügen zurückbleibt. Das Opteron-Cluster schneidet besser ab, wenn es um Performance geht, lediglich der Stromverbrauch und die Skalierbarkeit sind bei SiCortex besser, während die Kommunikation zwischen den Knoten vergleichbar gut ist. Einerseits lässt sich hier argumentieren, dass dieses Ergebnis beim Performance-Test pro Knoten nicht weiter überrascht, weil das Opteron-Cluster die leistungsstärkeren Prozessoren verwendet. Das SiCortex-Cluster setzt dabei jedoch darauf, dieselben Operationen in vergleichbarer Zeit ausführen zu können, obwohl schwächere Prozessoren verarbeitet wurden. Eine Leistung, die nur der phdmesh wirklich darstellen kann, bei dem das Ergebnis auch zufriedenstellend war. Inwiefern sich dieses Interconnect durchgesetzt hätte, wenn sich nicht die Weltwirtschaftskrise 2009 [14] auch auf die HPC-Industrie ausgewirkt und SiCortex weiterhin Kapitalzuschüsse erhalten hätte, lässt sich nur vermuten. Hier kann man sich einerseits auf Erfahrungsberichte der ersten Kunden stützen: So erwarb eine Universität [15] in den Vereinigten Staaten von Amerika den SC648 für 150 000$, um dann festzustellen, dass die Leistungsfähigkeit nicht ausreicht. Das nächstgrößere Modell, der SC1458, lief dagegen! *%!

keine vier Monate ohne Hardware-Fehler, was neben der tatsächlichen Performanz auch die Zuverlässigkeit des Systems in Frage stellt. Hier muss eingeräumt werden, dass die Firma nie Gelegenheit hatte, seine Produkte tatsächlich zu überarbeiten und zu optimieren. Die ersten Modelle auf dem Markt stehen somit exemplarisch für das Produkt an sich; da SiCortex geschlossen werden musste, konnte die Technologie in den Folgejahren jedoch nicht ausreifen. Die Universität Magdeburg [16] erwarb das größte Modell, den SC5832 und war mit diesem System dagegen zufrieden, was vor allem auf den niedrigen Stromverbrauch zurückzuführen ist, der noch niedriger gewesen sein soll als beworben. Auch die Komplexität der Kautz-Topologie ist ein wichtiger Faktor. So effizient das hierdurch ermöglichte Routing auch sein mag, so kompliziert, zeitaufwändig und fehleranfällig ist die Konstruktion dieses Interconnects und folglich auch die Wartung und Reparatur. Dies mag auch einer der Gründe sein, warum die Idee seit dem Niedergang der Firma nicht mehr von anderen Entwicklern aufgegriffen wurde. Dieses Mammutprojekt, in dem jede einzelne Komponente die Produktion der Hardwareteile, die Implementierung der Kautz-Topologie, die Bereitstellung und Abstimmung von Compilern, Treibern und sonstiger Software schon eine eigene Geschäftsidee darstellt, birgt trotz der Genialität der Idee ein großes finanzielles Risiko, das heute noch weniger als damals den Aufwand und die Kosten angesichts der gut entwickelten Konkurrenz rechtfertigt.! *&!

5) Quellenverzeichnis 5.1) Paper und Internetquellen! [1] http://en.wikipedia.org/wiki/computer_cluster [2] http://de.wikipedia.org/wiki/myrinet [3] Brian J. Martin, Andrew J. Leiker, James H. Laros III and Doug W. Doerfler: Performance Analysis of the SiCortex SC072. 2009 [4] Stewart, C. Lawrence & Gingold, David et.al.: SiCortex Technical Summary. Dezember 2006 [5] http://en.wikipedia.org/wiki/sicortex [6] http://investors.cray.com/phoenix.zhtml?c=98390&p=irolnewsarticle&id=1324995&highlight= [7] Stewart, C. Lawrence & Gingold, David: A New Generation of Cluster Interconnect. Dezember 2006 [8] http://de.wikipedia.org/wiki/teilstreckenverfahren [9] http://www.speicherguide.de/wissen/glossar/c/cut-through-routing-8117.aspx [10] http://en.wikipedia.org/wiki/kautz_graph [11] http://de.wikipedia.org/wiki/eulerkreis [12] http://en.wikipedia.org/wiki/hamiltonian_cycle [13] http://en.wikipedia.org/wiki/scalability#weak_versus_strong_scaling [14] http://www.manager-magazin.de/unternehmen/artikel/a-671731.html [15] http://www.hpcwire.com/hpcwire/2009-05-28/sicortex_meets_an_untimely_end.html [16] http://www.megware.com/de/presse/pressemitteilungen/universitaet_magdeburg_ erhaelt_energieeffizientesten_supercomputer_europas-182.aspx Letzte Zugriffe jeweils am 19. Juli 2013 um 12:52 Uhr. 5.2) Abbildungsverzeichnis! Abbildung 1: Aufbau des Node-Chips [7] Abbildung 2: Aufbau eines Daten-Packets [7] Abbildung 3: Kautz-Graph mit Grad M = 2, Anzahl der Buchstaben (N+1) = 3, Wortlänge (N+1) = 2 [10] Abbildung 4: Anzahl der Knoten im Kautz-Interconnect Abbildung 5: phdmesh, Strong Scaling [3]! *'!

Abbildung 6: HPCCG, Performance in MFLOPS [3] Abbildung 7: HPCCG, Skalierbarkeit [3]! *(!

6) Selbstständigkeitserklärung Hiermit erkläre ich, Hanna Khoury, dass ich diese Ausarbeitung mit dem Thema A New Generation of Cluster Interconnect: The SiCortex Family im Rahmen des Seminars Themen der technischen Informatik bei Prof. Dr. Ulrich Brüning nur mit Hilfe der gekennzeichneten Quellen angefertigt habe. Heidelberg, den 19.07.2013 Hanna Khoury! *)!