Bewährte Methoden für die Verwendung von HB- und HC-VMs

Übersicht

Die virtuellen H-Serien-Computer (VMs) sind die neuesten HPC-Angebote in Azure. HB-Serie-VMs bieten 60-Core AMD EPYC-Prozessoren, die für die Ausführung von Anwendungen mit hohen Speicherbandbreitenanforderungen optimiert sind, z. B. explizite Finite-Elementanalyse, Flüssigkeitsdynamik und Wettermodellierung. Die HC-Serien-VMs verfügen über 44-kernige Intel Xeon Skylake-Prozessoren und sind für Anwendungen optimiert, die intensive CPU-Berechnungen erfordern, z. B. molekulare Dynamik und implizite Finite-Elementanalyse. HB- und HC-VMs bieten 100 Gb/s EDR InfiniBand und unterstützen die neuesten MPI-Typen und -Versionen. Das Skalierungs-HPC-Anwendungshandbuch enthält weitere Informationen zum Skalieren von HPC-Anwendungen auf HB- und HC-VMs.

Azure CycleCloud unterstützt die neuen H-Serie-VMs aus dem Feld, aber für die beste Erfahrung und Leistung folgen Sie den Richtlinien und bewährten Methoden auf dieser Seite.

CentOS 7.6 HPC Marketplace Image

Das CentOS 7.6 HPC Marketplace-Image enthält alle Treiber, um die InfiniBand-Schnittstelle sowie vorab kompilierte Versionen aller gängigen MPI-Varianten zu ermöglichen, die in /opt installiert sind. Details dazu, was genau das Bild bietet, finden Sie in diesem Blogbeitrag.

Um das CentOS 7.6 HPC-Bild beim Erstellen Ihres Clusters zu verwenden, aktivieren Sie das Feld "Benutzerdefiniertes Bild " im Parameter "Erweiterte Einstellungen ", und geben Sie den Wert OpenLogic:CentOS-HPC:7.6:latestein.

CentOS HPC-Bild

Um die ältere H16r-VM-Serie zu unterstützen und Clusterkopfknoten auf dieselbe Version von CentOS zu sperren, stellt das Standardimage "Cycle CentOS 7" im Base OS-Dropdown CentOS 7.4 bereit. Während dies für die meisten VM-Serien gut ist, erfordern HB/HC-VMs CentOS 7.6 oder neuer und einen anderen Mellanox-Treiber.

Deaktivieren von SElinux in CycleCloud < 7.7.4

Standardmäßig berücksichtigt SElinux nur /root und /home gültige Pfade für Heimverzeichnisse. Alle Benutzer mit heimeigenen Verzeichnissen außerhalb dieser Pfade führen dazu, dass SElinux SSH von der Verwendung aller SSH-Schlüsselpairs im Heimverzeichnis des Benutzers blockiert. In CycleCloud-Clustern werden Benutzerheimverzeichnisse in /shared/home erstellt. Während CycleCloud-Versionen neuer als 7.7.4 automatisch den /shared/ home-Pfad als gültiger SElinux homedir-Kontext festlegen, unterstützen ältere Versionen dies nicht. Um sicherzustellen, dass SSH für Benutzer im Cluster ordnungsgemäß funktioniert, müssen Sie SElinux in der Clustervorlage deaktivieren:

[[node defaults]]
    [[[configuration]]]
    cyclecloud.selinux.policy = permissive

Ausführen von MPI-Aufträgen mit Slurm

MPI-Aufträge, die auf HB/HC-VMs ausgeführt werden, müssen in derselben VM Scaleset (VMSS) ausgeführt werden. Stellen Sie sicher, dass die richtige automatische Skalierung von VMs für MPI-Aufträge mit Slurm ausgeführt wird, stellen Sie sicher, dass das folgende Attribut in Ihrer Clustervorlage festgelegt wird:

[[nodearray execute]]
Azure.SingleScaleset = true
Azure.MaxScalesetSize = 300
Azure.Overprovision = true

Abrufen von Pkeys für die Verwendung mit OpenMPI und MPICH

Bei einigen MPI-Varianten müssen Sie beim Ausführen des Auftrags den InfiniBand-PKEY angeben. Die folgende Bash-Funktion kann verwendet werden, um den PKEY zu bestimmen:

get_ib_pkey()
{
    key0=$(cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/0)
    key1=$(cat /sys/class/infiniband/mlx5_0/ports/1/pkeys/1)

    if [ $(($key0 - $key1)) -gt 0 ]; then
        export IB_PKEY=$key0
    else
        export IB_PKEY=$key1
    fi

    export UCX_IB_PKEY=$(printf '0x%04x' "$(( $IB_PKEY & 0x0FFF ))")
}