Verbinden Sie zwei Infiniband-Karten ohne Schalter miteinander

7

Ist es möglich, zwei Mellanox ConnectX-2-Karten auf zwei separaten Computern ohne dazwischen liegenden Schalter miteinander zu verbinden? Ich versuche nur zu lernen, wie man Verben programmiert, ohne $ für einen teuren Schalter ausgeben zu müssen.

Benötige ich ein spezielles Kabel oder funktionieren die Standards einwandfrei? Auf Standard-Ethernet würde ich ein Cross-Connect-Kabel benötigen.

Ivan
quelle

Antworten:

6

Ja, Sie können sie direkt verbinden. Sie müssen jedoch sicherstellen, dass auf mindestens einem der Computer der opensm-Subnetzmanager ausgeführt wird.

Wenn Sie auf der Softwareseite Ubuntu 14.04 verwenden, installieren Sie die folgenden Pakete:

sudo apt-get install opensm infiniband-diags librdmacm-dev libibverbs-dev libmlx4-dev

Fügen Sie diese dann zu / etc / modules hinzu

mlx4_ib
ip_ipoib
rdma_ucm

Fügen Sie der Karte eine IP-Adresse hinzu. Bearbeiten Sie / etc / network / interfaces

auto ib0
iface ib0 inet static
  address 10.0.0.1
  netmask 255.255.255.0

Starten Sie neu.

Opensm startet automatisch. Wiederholen Sie die obigen Schritte für den anderen Computer, verwenden Sie jedoch eine andere IP: 10.0.0.2.

Alles läuft gut, Sie sollten in der Lage sein, 10.0.0.2 von 10.0.0.1 und umgekehrt zu pingen.

Führen Sie einige Tests durch:

sudo ibnodes

Oh, es gibt einen Fehler in Skripten für ibnodes und einige andere. Sie können sie beheben, indem Sie sie bearbeiten. Meist handelt es sich um Shell-Skripte, die auf / usr / local / sbin verweisen, wenn sie tatsächlich Apps in / usr / sbin aufrufen.

Wenn Sie eine finden, bearbeiten Sie sie und ändern Sie IBPATH entsprechend. Ich bin noch nie dazu gekommen, einen Fehlerbericht gegen Ubuntu einzureichen. Hoffentlich macht es jemand anderes. Es ist seit Ewigkeiten ein Problem.

Die Ausgabe sieht ungefähr so ​​aus:

Ca  : 0x001a4bffff0c9374 ports 2 "HP Lion Cub DDR 128MB"
Ca  : 0x001a4bffff0c446c ports 2 "HP Lion Cub DDR 128MB"
Ca  : 0x001a4bffff0c4438 ports 2 "HP Lion Cub DDR 128MB"
Switch  : 0x000b8cffff006aa8 ports 24 "MT47396 Infiniscale-III Mellanox Technologies" base port 0 lid 2 lmc 0
Matt
quelle
Danke Matt. Irgendwelche Anweisungen (Link), wie man das in Gang bringt?
Ivan
Nein, da dies je nach Betriebssystem unterschiedlich ist. Ich kann einige Anweisungen von Ubuntu geben.
Matt
1
Das wäre toll. CentOS ist wahrscheinlich das, was ich verwenden werde, aber das Befolgen der Ubuntu-Anweisungen könnte mich in den Ballpark bringen.
Ivan
1
Vielen Dank. Übrigens, bedeutet opensm ipoib? Oder wäre dies immer noch eine unformatierte Infiniband-IP-Adresse für die Programmierung von Verben (oder die Abstraktion der RDMA-Bibliothek)?
Ivan
1
Aha. Hmmm, ich bin verwirrt, weil ich dachte, dass IPoIB ein Protokoll ist, mit dem Sie keine rdma-Verben verwenden können, nur Standard-TCP-Programmierung? Meine Verwirrung. Danke re: gitc, ich bin mir dessen bewusst. Eine der wenigen Websites mit Beispielen. Ich wünschte, es gäbe mehr ...
Ivan