Current Implementations of the Virtual Interface Architecture
(VIA)
Seminarvortrag von Thorsten Backhaus im Rahmen des Seminars
des Lehrstuhls Rechnerarchitektur der Universität Mannheim im
Wintersemester 2003/2004
2
Inhalt
• Vernetzung im Allgemeinen• Userlevel Netzwerke abgegrenzt zur naiven
Vernetzung• Interessantes aus der VIA Spezifikation• Zusammenfassung VIA• Verschiedene Implementierungen im
Vergleich• Zusammenfassung Implementierungen
3
Vernetzung im Allgemeinen
• Grundlage jeglicher Kommunikation• Verschiedene Ausprägungen
– Topologie– Zugriffsverfahren– LAN / SAN / WAN– “typische Netzwerke”, “User Level Netzwerke”
4
Vernetzung im Allgemeinen
• „Sprung“ ins Betriebssystem nötig um eine Anforderung zu bearbeiten.
• „Unterbrechung“ des sich momentan auf dem Prozessor befindlichen Prozesses
• Kostet Zeit Möglichkeit suchen diesen „Sprung“ ins Betriebssystem zu umgehen.
5
Stack Time vs. Hardware Execution Time [8]
Relativ zur Prozessorgeschwindigkeit
6
Userlevel Netzwerke
• User Prozess kann direkt auf einen Kommunikations-Endpunkt zugreifen
• Multiplexing und Demultiplexing wird direkt vom NIC übernommen– „Intelligentere“, mächtigere NICs notwendig
• Nur noch bei „grundlegenden“ Operationen Sprung ins Betriebssystem notwendig
7
VIA – ein Userlevel Netzwerk
• Idee: Vereinheitlichung eines Userlevel Standards
• Compaq, Intel & Microsoft arbeiteten Standard aus
• Definition schon relativ alt: Ende 1997
8
VI Consumer & Provider
• Der VI Consumer ist derjenige Teil des Systems, der kommunizieren möchte.– Besteht also aus Anwendung und einer „VI
Provider Library“
• Der VI Provider ist derjenige Teil des Systems, der Kommunikation ermöglicht.– Also die Netzwerkkarte und ein “Kernel Agent”
9
VI Architecture [5]
10
Das “Virtual Interface” [5]
11
Queues
• Jedes VI: Send und Receive Queue– Darin stehen Deskriptoren
• Eine Completion Queue für mehrere VI‘s auf einem Knoten.– Sammeln mehrerer “Completion-Ereignisse”
möglich– Damit kann Polling und Interrupting auf ein
Minimum reduziert werden.
12
Der Deskriptor
• Eine Datenstruktur, die den Ort und die Größe eines Daten Puffers enthält und die Anweisung, was mit diesen Daten geschehen soll.
• Setzen von „Completion“-Bits um Erfolg / Misserfolg anzuzeigen.
• Komplett asynchrone Kommunikation• Polling / Interrupts
13
„Doorbells“
• Jedes VI hat eine send- und eine receive- Doorbell– An dieser wird „geläutet“, wenn Anwendung neuen
Deskriptor in eine Queue geschrieben hat.[5]– Speicher auf NIC wird in User Space gemapped [1]
• u.U. oft „pollen“ um alle Doorbells zu überprüfen
– Über Kernel gehen / zentralisierter Ansatz [1]
14
Kernel Agent
• Stellt Schnittstelle zum Betriebssystem dar• Speicher muss beim Betriebssystem
angefordert werden. (sehr teuer)– Das erledigt der KernelAgent.– Da DMA Transfers erwünscht sind darf die Seite
im Speicher nicht „ausgelagert“ werden.
• Übernimmt alle Aufgaben, die die Hardware nicht übernehmen kann
15
Speicherverwaltung
• Deskriptoren: virtuelle Adressierung, Periph. Bus: physikalische Adressierung– Betriebssystem erledigt die Adressumsetzung mit
einem Kernel Trap– NIC erledigt Adressumsetzung
• Tabelle im Hauptspeicher• Bestenfalls hat NIC eigenen Speicher
16
Data Transfer Modes [5]
• Send• Receive• RDMA Write• RDMA Read (optional)
17
Ebenen der Verlaesslichkeit [5]
18
Beispiel fuer eine Anwendung
• Öffne die Netzwerkkarte• Registriere benötigten Speicher• Erzeuge benötigte VI‘s• ... Programm ...• Lösche VI‘s• Schliessen der Netzwerkkarte
19
Die VIPL (VI Provider Library)
• Wichtige Funktionsgruppen:– Hardware Connection– Endpoint Creation and Destruction– Connection Management– Memory Protection and Registration– Data Transfer and Completion Operations– Completion Queue Management– Querying Operations– Error Handling
20
Zusammenfassung VIA• Richtig Sinn macht eine Implementierung
von VIA erst dann, wenn es genügend „Hardware Support“ fuer die VIA Funktionen gibt.
– Umsetzung Virtuelle - Physikalische Adresse– Doorbells– Send/Receive Queues– Completion Queues
21
Zusammenfassung VIA
• Dies ist nur möglich, wenn man auf genügend Speicher und einen Prozessor oder sonstigen programmierbaren Baustein auf der NetzwerkKarte zurückgreifen kann.
• Aktuelle Implementierungen, die VIA in „Hardware“ implementieren benutzen dazu eine spezielle Firmware für den jeweiligen Netzwerk Prozessor
22
Übersicht über aktuelle VIA Implementierungen
• Software Implementierungen– M-VIA– VI-GM (Myri)– ServerNet VIA
• “Hardware” Implementierungen– Firm VIA– Giganet VIA (cLAN)– Berkley’s VIA Project– Servernet II (Compaq)
23
Übersicht über verschiedene VIA Implementierungen [1]
Abbildung aus [1]; somit beziehen sich die Anmerkungen in dieserTabelle nicht auf den Anhang dieser Präsentation
24
M-VIA: A High Performance Modular VIA for Linux
• Typ: Software Emulation– VIPL, Kernel Agent– Fast/Gigabit Ethernet Drivers
• Kann parallel zu TCP/IP laufen• Strikt Intel-Konform • Sehr effektiv auf SMP Maschinen• MPI Implemetierung (MVICH) existiert• Final official Release: M-VIA 1.2
25
M-VIA
• Da kein spezieller HW Support:
– Zero-copy beim Senden– One-copy beim Empfangen
26
M-VIA
Network Protocol Latency (us) Bandwidth
(MB/s)Packet Engines GNIC II TCP 59 31Packet Engines GNIC II M-VIA 19 60Tulip Fast Ethernet TCP 65 11.4Tulip Fast Ethernet M-VIA 23 11.9
27
VI-GM [9]• Typ: Userlevel Library (SW)
– Läuft als “middleWare” auf GM 1.X• GM 2.0 wird nicht mehr unterstützt
– Komplett Threadsafe– Strikt Intel-Konform– Unterstützung aller Reliability Levels– Kein RDMA Read– Unterstützt 64k Knoten
28
VI-GM
• Leider keine echten Messergebnisse
GM1.6.4 hat folgende Werte:
NIC: PCI64CBandbreite: 421 MByte/s (bidir) Latenz: 6.7 µs min Host CPU: 0.54 µs
29
Myricom Ausblick
• Myricoms LanAI Prozessoren:– Ab Version 7 “Doorbell-tauglich”– Minimale Latenzzeiten von:
• 3,5 us (LanAI 2XP) mit MX, kein GM oder VI-GM• 950 Mbyte/s Durchsatz (bidir)
– Es wird auf der SC2003 ein Cluster vorgestellt» Allerdings kein VIA» Auch keine Performance-Daten für VIA vorhanden
30
Berkley VIA
• Typ: Firmware Austausch für LanAI 4.x• Latenz 23-26 us• Bandbreite 30-60 Mbyte/s
– Damals PCI mit 33 MHz– Oder S-Bus mit 25 MHz
• Keine vollständige Implementierung
31
„FirmVIA“
Die Register des TBIC2sind in den Adressraum des PPCs gemapped.
Die Netzwerkkarte an sichkommuniziert mit dem Host über den SRAM, der in den User/KernelAdressraum gemapped wird, oder es wird ein Interrupt ausgelöst.
Die DMA Controller sorgen fuer die entsprechende IO Performance
Bidirektionale 150 Mbyte/S
32
„FirmVIA“• Firmware des NICs leicht abgewandelt• Latenz von 18 – 20 us
33
Giganet cLAN VIA
• Typ: „Hardware“ Implementation von VIA• Latenz von 24 us, Durchsatz von 70
Mbyte/s [4]• Es existiert eine Implementierung für
Microsoft SQL Server 2000 (cLAN1000) [8]
34
Latenz von cLAN [4]
35
Bandbreite von cLAN [4]
36
ServerNet VIA
Typ: Software EmulationLatenz von 100 us
Tandem hat zwar eine Hardware Version von VIA angekuendigt [4] aber
Mittlerweile ist www.servernet.com nicht mehr im Netz.
37
Weiteres
• Compaqs Servernet II:– Hardware Implementierung– Latenz 7.4 us, 180 Mbyte/s Durchsatz [7]– Leider auch hier Informationen nicht
nachprüfbar, da Homepage nicht mehr verfügbar.
38
Weiteres
• Auf Dolphins Homepage findet sich auch nichts aktuelles über VIA (1998)
• myVIA: am 10.10.2002 letzter Eintrag.
39
Zusammenfassung Implementierungen
• Es scheint fast, als ob sich niemand mehr für VIA interessiert.
• Die meisten Projekte liegen in der Zeit von 1998 – 2001
• Viele Anbieter haben bei ihren neusten Produkten gar keine Unterstützung für VIA (weder implementiert, noch angedacht)
40
Zusammenfassung Implementierungen
• Eine „echte“ Hardware Lösung existiert bisweilen nicht für VIA.
• Da keine wirkliche Begrenzung der Anzahl der VIs gemacht wird:– Schwierig so etwas komplett in Hardware zu
realisieren.– Es wird wohl immer eine „Emulationsebene“
geben, die die VIs auf die benutzte Hardware abbildet. (Multiplex)
41
References[1] Banikazemi, Abali, Herger, Panda: Design Alternatives for Virtual Interface Architecture
(VIA) and an Implementation on IBM Netfinity NT Cluster[2] Bounadonna, Geweke, Culler: An Implementation and Analysis of the Virtual Interface
Architecture[3] Rangarajan, Iftode: Software Distributed Shared Memory over Virtual Interface Architecture:
Implementation and Performance[4] Speight, Abdel-Shafi, Bennet: Realizing the Performance Potential of the Virtual Interface
Architecture[5] Intel, Compaq, Microsoft: Virtual Interface Architecture Specification. Draft Version 1.0.
December 4, 1997[6] http://www.nersc.gov/research/FTG/via/[7] Begel, Bounadonna, Culler, Gay: An Analysis of VI Architecture Primitives in Support of
Parallel and Distributed Communication[8] Dell Whitepaper January 2001: Virtual Interface Architecture and Microsoft SQL Server
2000[9] http://www.myri.com bzw. http://www.myri.com/news/02213/
Top Related