
Microsofts Ankündigung der Azure Linux RDMA-Unterstützung im letzten Jahr war eine großartige Nachricht für alle, die eng gekoppelte HPC-Workloads in der Cloud ausführen möchten. Leider gibt es noch immer nicht viele Dokumentationen, die die Einrichtung beschreiben. Dies Lernprogramm scheint die wichtigste Informationsquelle für die Konfiguration von Azure Linux RDMA zu sein. Allerdings gibt es dort einige Auslassungen, die bei der Ersteinrichtung Ihres Clusters zu Problemen führen können. In diesem Beitrag behandeln wir einige mögliche Fallstricke und einige Problemumgehungen.
Zunächst verwendet das Tutorial das ältere ASM-Modell für die Bereitstellung virtueller Maschinen. Microsoft empfiehlt für neue Projekte die Verwendung von ARM für die Bereitstellung. Ein wichtiger Grund für den Wechsel ist, dass ARM-Bereitstellungen virtuelle Maschinen parallel bereitstellen, während ASM sie seriell bereitstellt. Bei größeren Clustern kann dies die Startzeit erheblich verkürzen. Dieser ist eine einfache ARM-Vorlage, die als Ausgangspunkt verwendet werden kann, um einen eigenständigen MPI-Cluster mit der empfohlenen Vanilla SLES 12 HPC VHD zu starten.
Nach dem Start des Clusters möchten Sie wahrscheinlich einige gängige Pakete wie beispielsweise Git installieren.
Aber:
# zypper install git
Repository-Daten werden geladen …
Installierte Pakete werden gelesen …
„git“ wurde in Paketnamen nicht gefunden. Funktionen werden ausprobiert.
Kein Anbieter von „git“ gefunden.
Paketabhängigkeiten werden aufgelöst …
Nichts zu tun.
Der Grund dafür ist, dass der SLES-VHD standardmäßig eine Reihe von Repos fehlt. Sie können diese mit folgendem Befehl erneut hinzufügen:
# cd /etc/zypp/repos.d
# mv sldp-msft.repo sldp-msft.repo.bak
# rm -f *.repo
# systemctl restart guestregister.service
# mv sldp-msft.repo.bak sldp-msft.repo
# zypper addrepo sldp-msft.repo
# zypper aktualisieren
Jetzt sollten Sie Zugriff auf eine viel größere Auswahl an zu installierenden Paketen haben. Wie im Tutorial beschrieben, können Sie nach der Installation aller benutzerdefinierten Pakete und der Einrichtung von Intel MPI Ihre benutzerdefinierte VHD erfassen und diese stattdessen als Ausgangspunkt für Ihre MPI-Cluster verwenden.
Nachdem Sie einen Cluster mit der benutzerdefinierten VHD gestartet haben, müssen Sie möglicherweise eine VM-Erweiterung installieren, die die RDMA-Treiber aktualisiert. Im Tutorial wird darauf hingewiesen, dass Sie den RDMA-Treiber in den Regionen USA West, Westeuropa und Japan Ost nicht aktualisieren sollten. Dies scheint jedoch ein veralteter Hinweis zu sein, da wir beim Versuch, den Intel MPI-Ping-Pong-Test in diesen Regionen auszuführen, auf dieselben DAPL-Fehler gestoßen sind, die beschrieben werden werden auf dieser Seite erläutert. Nach der Aktualisierung der Treiber funktionierte der Ping-Pong-Test ohne Fehler.
Bei der Installation der OSTC-Erweiterung gibt es eine kleine Besonderheit, die Sie beachten sollten: Wenn Sie sich unmittelbar nach der Installation der Erweiterung per SSH bei der VM anmelden, werden Sie feststellen, dass Ihre Verbindung kurz nach der Anmeldung unterbrochen wird.
azureadmin@n1:~> Verbindung zu 13.93.144.56 vom Remote-Host geschlossen.
Verbindung zu 13.93.144.56 geschlossen.
Der Grund hierfür ist, dass die VM etwa 2-3 Minuten lang neu gestartet wird nachdem Die Erweiterungsbereitstellung ist abgeschlossen. Es wäre besser, wenn die VM nach Abschluss der Erweiterungsinstallation einsatzbereit wäre, aber leider scheint dies hier nicht der Fall zu sein. Dies müssen Sie berücksichtigen, wenn Sie die Clusterbereitstellung automatisieren möchten.
Sobald Azure Linux RDMA-Unterstützung zum Azure Batch-Dienst hinzugefügt wurde, müssen Sie sich hoffentlich nicht mehr mit den oben genannten Problemen befassen. Natürlich ist der Start des Clusters nur der Anfang. Sie müssen Ihre Simulationssoftware installieren und optimieren, eine Verbindung zu Ihrem Lizenzserver herstellen und Ihre Ein- und Ausgabedateien sicher zum und vom Cluster übertragen. Das Supportteam von Rescale unterstützt Sie gerne dabei, dies auf Azure mithilfe unserer Web-, API- oder CLI-Tools zu erreichen.
