- Infiniband
-
InfiniBand ist eine Spezifikation zur Beschreibung einer seriellen Hochgeschwindigkeitsübertragungstechnologie. Es ist das Resultat der Vereinigung zweier konkurrierender Systeme: Future I/O von Compaq, IBM und Hewlett-Packard und Next Generation I/O (ngio), welches von Intel, Microsoft und Sun Microsystems entwickelt wurde. Kurze Zeit, bevor der neue Name gewählt wurde, war InfiniBand bekannt als System I/O. Intel hat sich seitdem eher auf die Entwicklung der quasi-Alternative PCI-Express fokussiert; dadurch ist die zukünftige Entwicklung von InfiniBand ungewiss.
InfiniBand benutzt einen bidirektionalen seriellen Bus zur kostengünstigen und latenzarmen Datenübertragung (unter 2 Mikrosekunden) und schafft pro Kanal theoretische Datenübertragungsraten von bis zu 2,5 GBit/s in beide Richtungen, in der Double Data Rate (DDR) Variante 5 GBit/s. Bei InfiniBand können mehrere Kanäle transparent gebündelt werden, wobei dann ein gemeinsames Kabel verwendet wird. Üblich sind vier Kanäle (4×) also 10 bzw. 20 GBit/s. Für die Verbindung zwischen Switches gibt es auch zwölf-kanalige Verbindungen (12×) mit 30 bzw. 60 GBit/s.
Normalerweise wird InfiniBand über Kupferkabel übertragen, wie sie auch für 10Gbit-Ethernet verwendet werden. Damit sind Übertragungsstrecken bis zu 15 Meter möglich. Müssen längere Strecken überbrückt werden, kann auf fiberoptische Medienkonverter zurückgegriffen werden, welche die InfiniBand Kanäle auf einzelne Faserpaare umsetzen. Hierbei kommen optische Flachbandkabel mit MPO-Steckern zum Einsatz.
Die Einsatzgebiete von InfiniBand reichen von Bussystemen bis zu Netzwerkverbindungen. Ähnlich wie HyperTransport konnte es sich allerdings nur schwer als Bussystem durchsetzen und wird daher aktuell meist nur als Cluster-Verbindungstechnik benutzt. Eine Ausnahme sind hier IBM-zSeries-Mainframe-Systeme ab der Modellreihe z10, welche z. B. über 24 InfiniBand-Host-Bus-Kanäle mit jeweils 6 GB/s verfügen. Der große Vorteil von InfiniBand gegenüber gebräuchlichen Techniken wie TCP/IP-Ethernet liegt dabei in der Minimierung der Latenzzeit durch Auslagern des Protokollstacks in die Netzwerkhardware.
Verschiedene Rechenknoten werden dabei durch InfiniBand-Kabel und spezielle Switches verbunden; als Netzwerkkarten kommen sogenannte HCAs (Host Channel Adapter) zum Einsatz. Es stehen verschiedene Verbindungsmodi zur Verfügung, u. A. RDMA Write/RDMA Read sowie einfache Send-/Receive-Operationen.
Um zeitaufwendige Wechsel zwischen Betriebssystem- und Benutzerkontext zu vermeiden, wie dies beispielsweise bei Sockets der Fall ist, werden zunächst die für die Benutzung vorgesehenen Speicherbereiche bei der Karte registriert. Dies ermöglicht der Karte, die Übersetzung von virtuellen Adressen in physikalische Adressen selbst vorzunehmen. Beim Senden von Daten wird durch das Mapping verschiedener Kontrollregister des HCAs in den Speicher des Prozesses (Doorbell-Mechanismus) die Sendeoperation ohne Umweg über den Betriebssystemkern vorgenommen – der HCA holt sich die Daten aus dem Hauptspeicher durch Ansteuerung des DMA-Controllers. Das (wahlweise verlässliche oder nicht verlässliche) Versenden der so auf dem HCA vorhandenen Daten wird durch den Protokollstack der Karte übernommen. Die Karte verwaltet hierzu eine Übersetzungstabelle, auf die mit dem Benutzer beim Registrieren eines Speicherbereiches zurückgegebenen Indizes zugegriffen wird.
Um die Latenzzeiten weiterhin zu minimieren, stellt InfiniBand zwei Verbindungsmodi zur Verfügung, die Daten in den Hauptspeicher eines anderen Knotens übertragen oder von dort lesen, ohne das Betriebssystem oder den Prozess auf der Gegenseite zu involvieren. Diese beiden Operationen werden als RDMA Write/RDMA Read (Remote DMA) bezeichnet. Zudem stellt InfiniBand zwei Modi für die Realisierung von Sperrmechanismen zur Verfügung: Atomic Compare&Swap sowie Atomic Fetch&Add. Mit diesen können beispielsweise Semaphoren implementiert werden; sie finden u. A. in verteilten Datenbanken Anwendung.
Weblinks
- Homepage der InfiniBand Trade Association (englisch)
- Homepage der OpenFabrics Alliance (englisch)
Wikimedia Foundation.