Virtual Interface Architecture -...

41
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

Transcript of Virtual Interface Architecture -...

Page 1: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 2: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

2

Inhalt

• Vernetzung im Allgemeinen• Userlevel Netzwerke abgegrenzt zur naiven

Vernetzung• Interessantes aus der VIA Spezifikation• Zusammenfassung VIA• Verschiedene Implementierungen im

Vergleich• Zusammenfassung Implementierungen

Page 3: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

3

Vernetzung im Allgemeinen

• Grundlage jeglicher Kommunikation• Verschiedene Ausprägungen

– Topologie– Zugriffsverfahren– LAN / SAN / WAN– “typische Netzwerke”, “User Level Netzwerke”

Page 4: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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.

Page 5: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

5

Stack Time vs. Hardware Execution Time [8]

Relativ zur Prozessorgeschwindigkeit

Page 6: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 7: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

7

VIA – ein Userlevel Netzwerk

• Idee: Vereinheitlichung eines Userlevel Standards

• Compaq, Intel & Microsoft arbeiteten Standard aus

• Definition schon relativ alt: Ende 1997

Page 8: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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”

Page 9: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

9

VI Architecture [5]

Page 10: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

10

Das “Virtual Interface” [5]

Page 11: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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.

Page 12: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 13: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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]

Page 14: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 15: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 16: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

16

Data Transfer Modes [5]

• Send• Receive• RDMA Write• RDMA Read (optional)

Page 17: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

17

Ebenen der Verlaesslichkeit [5]

Page 18: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 19: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 20: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 21: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 22: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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)

Page 23: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

23

Übersicht über verschiedene VIA Implementierungen [1]

Abbildung aus [1]; somit beziehen sich die Anmerkungen in dieserTabelle nicht auf den Anhang dieser Präsentation

Page 24: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 25: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

25

M-VIA

• Da kein spezieller HW Support:

– Zero-copy beim Senden– One-copy beim Empfangen

Page 26: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 27: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 28: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 29: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 30: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 31: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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

Page 32: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

32

„FirmVIA“• Firmware des NICs leicht abgewandelt• Latenz von 18 – 20 us

Page 33: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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]

Page 34: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

34

Latenz von cLAN [4]

Page 35: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

35

Bandbreite von cLAN [4]

Page 36: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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.

Page 37: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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.

Page 38: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

38

Weiteres

• Auf Dolphins Homepage findet sich auch nichts aktuelles über VIA (1998)

• myVIA: am 10.10.2002 letzter Eintrag.

Page 39: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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)

Page 40: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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)

Page 41: Virtual Interface Architecture - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ws0304/thorsten_backhaus/...–Speicher auf NIC wird in User Space gemapped

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/