Virtual Interface Architecture -...

Post on 06-Oct-2020

5 views 0 download

Transcript of Virtual Interface Architecture -...

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/