共用方式為


使用 HB 和 HC VM 的最佳做法

概觀

H 系列虛擬機器 (VM) 是 Azure 上最新的 HPC 供應專案。 HB 系列 VM 提供 60 核心 AMD EPYC 處理器,已針對具有高記憶體頻寬需求的執行應用程式優化,例如明確的有限元素分析、流暢動態和天氣模型化。 HC 系列 VM 具有 44 核心 Intel Xeon Skylake 處理器,並已針對需要大量 CPU 計算的應用程式進行優化,例如分子動態和隱含有限元素分析。 HB 和 HC VM 有 100 Gb/秒的 EDR InfiniBand,並支援最新的 MPI 類型和版本。 調整 HPC 應用程式指南提供有關如何在 HB 和 HC VM 上調整 HPC 應用程式的詳細資訊。

Azure CycleCloud 支援全新 H 系列 VM,但為了獲得最佳體驗和效能,請遵循此頁面的指導方針和最佳做法。

CentOS 7.6 HPC Marketplace 映射

CentOS 7.6 HPC Marketplace 映射包含所有驅動程式,可啟用 InfiniBand 介面,以及 /opt中安裝之所有常見 MPI 變體的預先編譯版本。 如需影像確切提供的詳細資料,請參閱 此部落格文章

若要在建立叢集時使用 CentOS 7.6 HPC 映射,請檢查 [進階設定] 參數上的 [自訂映射] 方塊,然後輸入值 OpenLogic:CentOS-HPC:7.6:latest

CentOS HPC 映射

為了支援較舊的 H16r VM 系列,並將叢集前端節點鎖定為相同的 CentOS 版本,基本 OS 下拉式清單中的預設 「Cycle CentOS 7」 映射會部署 CentOS 7.4。 雖然這適用于大部分的 VM 系列,但 HB/HC VM 需要 CentOS 7.6 或更新版本和不同的 Mellanox 驅動程式。

在 CycleCloud < 7.7.4 中停用 SElinux

根據預設,SElinux 只會將 /root/home 視為主目錄的有效路徑。 具有這些路徑外部主目錄的任何使用者,都會導致 SElinux 封鎖 SSH,使其無法使用使用者主目錄中的任何 SSH 金鑰組。 在 CycleCloud 叢集中,會在 /shared/home中建立使用者主目錄。 雖然 CycleCloud 版本比 7.7.4 還新的版本會自動將 /shared/home 路徑設定為有效的 SElinux homedir 內容,但舊版不支援此功能。 若要確定 SSH 適用于叢集上的使用者,您必須在叢集範本中停用 SElinux:

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

使用 Slurm 執行 MPI 作業

在 HB/HC VM 上執行的 MPI 作業必須在相同的 VM 擴展集中執行, (VMSS) 。 若要確保針對使用 Slurm 執行的 MPI 作業,適當地自動調整 VM 的位置,請務必在叢集範本中設定下列屬性:

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

取得 pkeys 以搭配 OpenMPI 和 MPICH 使用

某些 MPI 變體會要求您在執行作業時指定 InfiniBand PKEY。 下列 Bash 函式可用來判斷 PKEY:

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 ))")
}