infiniband a system area network (san)ra.ziti.uni-heidelberg.de/pages/student_work/... ·...
TRANSCRIPT
InfiniBand A System Area Network (SAN)
SeminarAusgewählte Themen in Hardwareentwurf und Optik
WS 2003/04
Timo SponerLehrstuhl Rechnerarchitektur
InfiniBand 2
Inhalt
• Motivation• Überblick• InfiniBand Architektur
– Physical Layer– Link Layer– Network Layer– Transport Layer– Software & Management
• Beispiele• Quellen
InfiniBand 3
System Area Networks (SANs)
• SAN verbindet Knoten in einem Cluster zu einem Rechnersystem
• Anforderungen an ein SAN– Geringe Latenz– Hohe Bandbreite– Gute Skalierbarkeit
Motivation
InfiniBand 4
InfiniBand (IB) Features
• Paketvermittelndes SAN
• Unterstützte Operationen– Send/Receive– RDMA Read/Write– Atomare Operationen
• Zero-Copy Kommunikation auf User Ebene
Überblick
InfiniBand 5
Geschichte
• Ersatz für PCI Bus?
• 1999 Zusammenschluss von IBM, Intel, Dell, Sun, Microsoft, Hewlett-Packard und Compaq zur InfiniBand Trade Association
• Wortspiel aus „Infinite Bandwidth“
• Heute ca. 100 Mitglieder
Überblick
InfiniBand 6
Topologie eines IB SANÜberblick
Quelle [1]
InfiniBand 7
Channel Adapter
• Host Channel Adapter (HCA)InfiniBand Adapter in einem Prozessor-Knoten
• Target Channel Adapter (TCA)InfiniBand Adapter in einem I/O-Knoten
• PortSchnittstelle eines HCAs/TCAs zum Subnet
• Local Identifier (LID)Innerhalb eines Subnets gültige Portadresse
• Global Identifier (GID)Über Subnet-Grenzen hinweg gültige Portadresse
• ConsumerProzesse/Threads, die sich der Transportdienste eines HCAsbedienen
Überblick
InfiniBand 8
Links (1)
• Allgemein– 2.5 Gbit/s Signalrate– 8B/10B Leitungskodierung
• Geschwindigkeiten– 1x 2.5 Gbit/s (ca. 250 MB/s)– 4x 2.5 Gbit/s = 10 Gbit/s (ca. 1 GB/s)– 12x 2.5 Gbit/s = 30 Gbit/s (ca. 3 GB/s)
• Elektrische Übertragung– Backplane bis 60cm– Kupferkabel bis 17m
Physical Layer
Quelle [6]
Quelle [8]
Quelle [6]
InfiniBand 9
Links (2)
• Optische Übertragung– Multimode Fasern
bis 250m @ 850nm– Singlemode Fasern
bis 10km @ 1300nm
• Ausnahmen bei Singlemode Fasern– Keine 12x Links– 4x Links benutzen nur 1 Faser
Physical Layer
Quelle [7]
InfiniBand 10
Virtual Lanes
• Virtual Lane (VL) = virtueller Kanal über einen physikalischen Link
• Es sind maximal 15 VLs für Datenpakete vorhanden
• VL0 und VL15 sind in jedem HCA/TCA vorhanden
• VL15 ist ausschließlich für Subnet ManagementPakete reserviert
• Ermöglichen die Implementierung eines „Quality of Service“
Link Layer
Channel Adapter
Port
VL
VL
VL
Switch
Port
VL
VL
VL
InfiniBand 11
Flusskontrolle
• Jede VL hat eine eigene Flusskontrolle, außer VL15
• Die Flusskontrolle ist credit based– Empfänger teilt Sender die Anzahl seiner freien Puffer mit– Sender stoppt die Übertragung sobald er diesen Kredit aufgebraucht
hat
• Mittels spezieller Link Packets werden periodisch Flusskontrollinformationen zwischen den Ports ausgetauscht
Link Layer
InfiniBand 12
Service Level (SL)
• 16 Dienstklassen sind frei definierbar
• Jedem Paket wird ein SL zugewiesen
• 2 Mechanismen sind notwendig– Eine Tabelle bildet jeden SL auf die vorhandenen VL ab und weist damit
jedem Paket eine VL zu– Jeder VL wird ein Anteil der verfügbaren Bandbreite zugewiesen.
Je höher dieser Anteil ist, desto höher ist ihre Priorität.
• VL15 hat die höchste Priorität, Pakete werden immer zuerst gesendet
Link Layer
InfiniBand 13
Datensymbole
Pakete & HeaderLink Layer
Idles
LRH GRH BTH ETH ICRCNutzdaten VCRC
Invariant CRCICRC
Extended Transport HeaderETH
Variant CRCVCRC
Base Transport HeaderBTH
Global Route HeaderGRH
Local Route HeaderLRH
Start Delimiter End Delimiter
InfiniBand 14
Pakete auf der Leitung
Physical Lane Nr
SDP
EGP
SDP
EGP
SLP
EGP
3210
Link Layer
Zeit
End of Good Packet DelimiterEGP:
Start of Link Paket DelimiterSLP:
Start of Data Packet DelimiterSDP:
Kontrollsymbole
Die Länge eines Paketes ist immer ein Vielfaches von 4
InfiniBand 15
Adressierung innerhalb eines Subnets
• Jedem Port kann ein Bereich aus maximal 128 LIDs zugewiesen werden
• LIDs bestehen aus Base LID und Path Bits
• Alternative Pfade zwischen 2 Endknoten sind durch die Path Bits möglich
• LID Mask Control (LMC) bestimmt die Anzahl an möglichen Pfaden
Link Layer
LID
16 Bit Base LID
Path Bits
HCA
Subnet
HCA
Pfad 0
Pfad 1
0-7 Bits
InfiniBand 16
Routing zwischen Subnetzen
• Jedem Port können mehrere 128 Bit Global Identifier (GIDs) zugewiesen werden
• GIDs bestehen aus einem 64 Bit Subnet-Präfix und einer 64 BitGlobally Unique ID (GUID)
• Für die Zustellung von Paketen außerhalb des eigenen Subnets ist ein Global Route Header (GRH) erforderlich
• Der GRH ist ein IPv6 konformer Header
Network Layer
Quelle [1]
GID
64 Bits 64 Bits
Subnet-Präfix GUID
InfiniBand 17
Schichten der IB Architektur
Quelle [1]
Transport Layer
InfiniBand 18
Queue Pairs (1)
• Queue Pairs (QP) sind die einzige Kommunikationsmöglichkeit eines Consumers mit einem HCA
• Bestehen aus 2 FIFOs, die Arbeitsanweisungen, sogenannte Work Queue Elements (WQE), an den HCA enthalten
• Dienen der Adressierung auf der Ebene der Transportschicht
• QPs sind immer einem Consumer zugeordnet
Transport Layer
Knoten
Consumer A
QPx QPy
Consumer B
QPZ
Host Channel Adapter
Send
Receive
Receive
Send
Send
Receive
Link
InfiniBand 19
Queue Pairs (2)
• Bestehen aus einer Send Queue und einer Receive Queue– WQE in Send Queues enthalten Informationen zum Versenden von Nachrichten– WQE in Receive Queues beschreiben lokale Puffer für empfangene Nachrichten
• Jedem QP ist eine Completion Queue zugeordnet, die Completion Queue Elements (CQE) enthält. CQE sind bereits abgearbeitete WQE.
Transport Layer
Completion Queue
Consumer Send Queue
Receive QueueHardware
HCA
WQEWQEWQE
WQEWQE
CQE CQECQE
InfiniBand 20
Work Requests (WR)
• Consumer fügen mittels Work Requests WQE in eine Send bzw. Receive Queue ein
• Für die User-Level Kommunikation ist es erforderlich, dass WR ohne Hilfe des Betriebssystems an den HCA gestellt werden können
• Mittels WRs ausführbare Operationen– Send/Receive– RDMA Read/Write– Atomare Operationen– Memory Bindings
Transport Layer
InfiniBand 21
IB User-Level Kommunikation
• Jeder HCA enthält eine DMA Einheit und eine Memory Translation & Protection (MTP) Einheit
• HCA überträgt Daten aus und in den virtuellen Adressraum des Consumers mittels DMA-Transfers
• MTP übernimmt Umsetzung der virtuellen Adressen in physikalische
Transport Layer
HCAPort
VL
VL
VL
Speicher
MTP
QP
QP
QP
QP
QP
DMA
InfiniBand 22
Registrieren von Speicherbereichen (1)
• Bevor ein HCA auf einen Teil des Adressraums eines Consumers zugreifen kann, muss dieser Speicherbereich zuerst beim HCA registriert werden
• Für den Registrierungsprozess ist das Betriebssystem notwendig
• Aufgaben des Betriebssystems– Versorgung des HCAs mit Informationen
über die Adressumsetzung von virtuell zu physikalisch
– Markierung der betroffenen Pages als „nicht auslagerbar“
Transport Layer
Virtueller Adressraum eines Consumers
Physikalischer Adressraum
Reg
istri
erte
r S
peic
herb
erei
ch
InfiniBand 23
Registrieren von Speicherbereichen (2)
• Jedem registrierten Speicherbereich wird ein L_Key zugewiesen
• L_Keys beschreiben lokale Speicherbereiche und enthalten die Zugriffsrechte für diese
• Optional kann für jeden Speicherbereich ein R_Key angefordert werden
• R_Keys gewähren entfernten Knoten Zugriffsrechte auf lokale Speicherbereiche
• R_Keys erlauben individuelle Zugriffsrechte für RDMA Read, RDMA Write und atomare Operationen
Transport Layer
InfiniBand 24
Memory Bindings
• Memory Bindings binden ein Speicherfenster an einen zuvor registrierten Speicherbereich
• Vorteil: Memory Bindings sind Work Requestsund involvieren das Betriebssystem deshalb nicht
• Jedes Speicherfenster kann mit individuellen Zugriffsrechten (R_Keys) versehen werden
Transport LayerVirtueller Adressraum eines Consumers
Registrierter Speicherbereich
Fenster 1
Fenster 2
Fenster 3
InfiniBand 25
Send/Receive
• Einzige Operation, die von allen Transportdiensten unterstützt wird
• Empfänger bestimmt, wohin eingehende Nachrichten gespeichert werden
• Zum Übermitteln der Daten wird jeweils ein Send WQE beim Sender und ein Receive WQE beim Empfänger benötigt
Transport Layer
Knoten A
Knoten B
HCA
HCA
Consumer
Consumer
SendQueue
ReceiveQueue
InfiniBand 26
RDMA Write
• Sender bestimmt, wohin die Daten im entfernten Knoten gespeichert werden
• Zum Übermitteln der Nachricht wird nur ein Send WQE benötigt
• Operation benötigt den R_Key, die virtuelle Startadresse und die Größe des entfernten Datenpuffers
Transport Layer
Knoten A
Knoten B
HCA
HCA
Consumer
Consumer
SendQueue
InfiniBand 27
RDMA Read
• Initiator der Operation stellt RDMA Read Anfrage an entfernten Knoten
• Anfrage enthält R_Key, die virtuelle Startadresse und die Länge des zu lesenden Puffers
• Entfernter Knoten stellt Antwort mit gewünschten Daten zusammen
• Nur mittels zuverlässiger Transportdienste möglich, da Bestätigungen für die Antworten benutzt werden
Transport Layer
Knoten BKnoten A
RDMA Read Antwort 1
RDMA Read Anfrage
RDMA Read Antwort 2
RDMA Read Antwort 3
InfiniBand 28
Atomare Operationen
• 2 atomare Operationen werden unterstützt– Fetch & Add– Compare & Swap
• Nur mittels zuverlässiger Transportdienste möglich, da Bestätigungen für die Antworten benutzt werden
• Die Unteilbarkeit einer atomaren Operation wird nur bei alleinigem Zugriff durch einen HCA garantiert!
Transport Layer
InfiniBand 29
Welcher Dienst ermöglicht welche Operationen?
Transport Layer
�
Unreliable Datagram
��(optional)
�
�
�
Reliable Datagram
�
�
Unreliable Connection
��(optional)
�
�
�
Reliable Connection
Transportdienste
ATOMIC
RDMA READ
RDMA WRITE
SEND/RECEIVE
Operationen
InfiniBand 30
Transport Header
• Jedes Paket enthält einen Base Transport Header (BTH)
• Je nach Operation werden noch zusätzliche Informationen durch Extended Transport Header zur Verfügung gestellt
– Reliable Datagram ETH / Datagram ETH– RDMA ETH– Atomic ETH– ACK ETH / Atomic ACK ETH– Immediate Data ETH
Transport Layer
Reserviert
TVerPADM
Destination QPReserviert
Packet Sequence Number (PSN)A
Partition KeySEOpCode
Bits 7-0Bits 15-8Bits 23-16Bits 31-24
InfiniBand 31
Verbs
• Beschreiben die Schnittstelle zwischen einem Consumer und einem HCA
• Liefern das Rahmenwerk für ein API
• Konkrete Implementierung ist Sache des Herstellers
SW & ManagementQuelle [1]
InfiniBand 32
Subnet Management
• Aufgabe: Initialisierung des Subnets
• 1 Subnet Manager (SM) pro Subnet
• 1 Subnet Management Agent (SMA) je Channel Adapter, Switch und Router
• VL15 und QP0 sind exklusiv für das Subnet Management reserviert
• Kommunikation mittelsSubnet Management Packets (SMP)
SW & Management
Quelle [1]
Quelle [1]
InfiniBand 33
General Service Management
• Funktionen– Verbindungsaufbau– Konfiguration von I/O Geräten– Kommunikation mit dem SM
• VL0 und QP1 werden für das General Service Management benutzt
• Kommunikation mittels General Management Packets (GMPs)
SW & Management
InfiniBand 34
Mellanox Switch MTS2400
• MTS2400 basiert auf Mellanox InfiniScale III Single Chip Lösung
• Mögliche Konfigurationen– 24 Ports @ 10 Gbit/s – 8 Ports @ 30 Gbit/s– 12 Ports @ 10 Gbit/s +
4 Ports @ 30 Gbit/s
• Latenz <200ns durch Cut Through Switching
• Integrierter RISC Prozessor (InfiniRISC), SMA und GSA
Beispiele
Quelle [9]
InfiniBand 35
Terascale Cluster
• Platz 3 in den Top 500 seit der SC 2003 in Phoenix
• 10.28 TFlops / 5.2 Mio $
• 1100 Knoten– Apple Power Mac G5– 2 PowerPC G5 @ 2 GHz – 4 GB RAM
• InfiniBand SAN– 24 Switches mit je 96 Ports– 4x Links aus Kupferkabeln
Beispiele
Quelle [3]
InfiniBand 36
InfiniCon InfiniServ7000 HCA
• 2 Ports @ 10 Gbit/s und 9 VL
• Transport Dienste– Reliable Connection– Unreliable Datagram
• Unterstützt RDMA Read/Write und atomare Operationen
• 130K QPs und 130K Completion Queues256K Speicherbereiche und 512K Speicherfenster
• PCI/PCI-X Interface mit 33, 66, 100 und 133 MHZ
Beispiele
Quelle [10]
InfiniBand 37
Anmerkungen
• Positiv– Leicht skalierbare Lösung– Kommunikation ist ohne große CPU Belastung möglich– Physical Layer, Link Layer und Transport Layer sind in
Hardware implementiert
• Negativ– Sehr komplex– Momentan HCA nur als PCI/PCI-X Karten erhältlich
Transportschicht
InfiniBand 38
Quellen
[1] InfiniBand Architecture Specification Volume 1 & 2, Release 1.1, November 6, 2002
[2] InfiniBand TA. www.infinibandta.org
[3] Terascale Cluster. http://computing.vt.edu/research_computing/terascale/
[4] Top 500 Supercomputer Sites. www.top500.com
[5] Intel, Compaq, Microsoft, The Virtual Interface Architecturewww.viarch.org
[6] FCI, EyeMax. www.fciconnect.com
[7] FCI, Fiber Optic Cables.www.fciconnect.com
[8] Tyco Electronics, HSSDC2.www.tycoelectronics.com
[9] Mellanox, MTS2400.www.mellanox.com
[10] InfiniCon Systems, InfiniServ7000.www.infinicon.com