緊密耦合的高效能運算 (HPC) 工作負載通常會使用訊息傳遞介面 (MPI),在程序和虛擬機器 (VM) 執行個體之間進行通訊。但如要自行建構經過調整的 VM 映像檔,以達到最佳 MPI 效能,則需要系統專業知識、 Google Cloud 相關知識,以及額外的維護時間。如要快速為 HPC 工作負載設定最佳化環境,請使用 HPC VM 映像檔。
HPC VM 映像檔是以 Rocky Linux 8 為基礎的 VM 映像檔,專為緊耦合 HPC 工作負載最佳化。其中包含預先設定的 Kernel 和網路微調參數,可建立 VM 執行個體,在 Google Cloud上達到最佳 MPI 效能。
如要獲得最佳成效,請在 HPC 最佳化機器系列 (例如 H4D 或 H3 系列) 的機型,或運算最佳化機器系列 (例如 C2 或 C2D) 的機型上,部署 HPC VM 映像檔。這類機器類型專為緊耦合的 HPC 應用程式設計。如要搭配 H4D 使用 RDMA,必須使用 20241125 以上版本的 HPC VM 映像檔。
您可以透過下列選項建立支援 HPC 的 VM 執行個體:
- Google Cloud CLI
- Google Cloud console. 在控制台中,您可以透過 Cloud Marketplace 取得映像檔。
- SchedMD 的 Slurm 工作負載管理工具,預設使用 HPC VM 映像檔。
優點
HPC VM 映像檔具有下列優點:
- 開箱即用的 VM 執行個體,可處理 HPC 工作負載。您不必手動調整效能、管理 VM 執行個體重新啟動,或隨時掌握緊密耦合 HPC 工作負載的最新 Google Cloud 更新。
- 為緊密耦合的工作負載進行網路最佳化。其中包含可縮短小型訊息延遲時間的最佳化功能,有助於大幅依賴點對點和集體通訊的應用程式。如果使用 H4D 系列機器,HPC VM 映像檔會包含必要的 Cloud RDMA 驅動程式。
- 針對 HPC 工作負載進行運算最佳化。其中包含可減少系統抖動的最佳化功能,讓單一節點的高效能更具可預測性。
- 一致且可重現的效能。VM 映像檔標準化可提供一致且可重現的應用程式層級效能。
- 提升應用程式相容性。與Intel HPC 平台規格的節點層級需求保持一致,可確保系統之間的高度互通性。
HPC VM 映像檔功能
HPC VM 映像檔提供多項功能,可針對高效能運算 (HPC) 工作負載最佳化效能:
- 已停用自動更新
- Intel MPI 集體調整
- 預先安裝的 RPM
已停用自動更新
自動更新可能會對 HPC 工作負載的效能造成負面影響。使用 HPC VM 映像檔時,您可以在建立 VM 執行個體時,將 google_disable_automatic_updates 中繼資料項目設為 TRUE,停用自動更新。在建立執行個體期間設定這項中繼資料項目的方式,取決於您用來建立執行個體的工具。
舉例來說,使用 gcloud compute instances create 指令建立 VM 執行個體時,請提供 --metadata 引數。詳情請參閱「關於 VM 中繼資料」。
Intel MPI 程式庫
Google 建議您使用 Intel MPI 2021 程式庫,在 Google Cloud上執行 MPI 工作。詳情請參閱下列章節:
預先安裝的 RPM
HPC VM 映像檔已預先安裝下列 RPM 套件:
- daos-client
- gcc-gfortran
- gcc-toolset-12
- Lmod
- dkms
- htop
- hwloc
- hwloc-devel
- infiniband-diags
- kernel-devel
- kmod-idpf-irdma
- libfabric
- librdmacm-utils
- libibverbs-utils
- libXt
- ltrace
- nfs-utils
- numactl
- numactl-devel
- papi
- pciutils
- pdsh
- perf
- perftest
- rdma-core
- redhat-lsb-core
- redhat-lsb-cxx
- rsh
- screen
- strace
- wget
- zsh
- 「開發工具」套件群組
快速入門導覽課程
這些教學課程說明如何設定經過 HPC 最佳化的 VM 執行個體。這些程序說明如何:
- 建立 HPC VM 執行個體 (不設定 Cloud RDMA)
- 建立 HPC VM 執行個體時,指定密集配置政策
- 建立使用 Cloud RDMA 的 HPC VM 執行個體 (搶先版)
您無法將 Cloud RDMA 新增至現有的 HPC VM 執行個體,因此建立執行個體時,請按照適當步驟操作。
事前準備
- 如要在本快速入門中使用 Google Cloud CLI,請先安裝並初始化 Google Cloud CLI:
- 在 Google Cloud 控制台的專案選擇器頁面中,選取或建立專案。Google Cloud
建立 HPC VM 執行個體
強烈建議您從下列機器系列中選擇機器類型:
這類 VM 具有固定的虛擬至實體核心對應,並向客體 OS 公開 NUMA 儲存格架構,這兩者對於緊密耦合 HPC 應用程式的效能至關重要。
主控台
- 前往 Google Cloud 控制台的 HPC VM Cloud Marketplace 頁面。前往 HPC VM Cloud Marketplace 頁面 
- 按一下「開始使用」。 
- 在 HPC VM 部署作業頁面中,輸入「Deployment name」(部署作業名稱)。這個名稱會成為 VM 名稱的根。Compute Engine 在為執行個體命名時,會在這個名稱後方加上 - -vm。
- 選擇「Zone」(區域) 和「Machine type」(機器類型)。在本快速入門導覽課程中,您可以保留所有預設設定,或視需要進行變更。 
- 保留「開機磁碟類型」、「開機磁碟大小」和「網路介面」的預設設定。 
- 按一下 [Deploy] (部署)。 
VM 執行個體建立完成後,Cloud Deployment Manager 會開啟,您可以在當中管理 HPC VM 和其他部署作業。
gcloud
使用 instances create 指令建立 HPC VM。
如果您要建立多個相互連結的 HPC VM 執行個體,請使用密集放置政策建立 HPC VM,以縮短網路延遲時間。
如要建立不含放置策略的 HPC VM 執行個體,請使用類似下列的指令:
gcloud compute instances create INSTANCE_NAME \
        --zone=ZONE \
        --image-family=IMAGE_FAMILY \
        --image-project=cloud-hpc-image-public \
        --maintenance-policy=TERMINATE \
        --machine-type=MACHINE_TYPE
更改下列內容:
- INSTANCE_NAME:HPC VM 執行個體的名稱。
- ZONE:要在其中建立執行個體的區域。
- IMAGE_FAMILY:建立 VM 執行個體時要使用的映像檔映像檔系列。使用- hpc-rocky-linux-8取得以最新 Rocky Linux 8 為基礎的映像檔。
- MACHINE_TYPE:建立 VM 執行個體時使用的機器類型。
經過一段時間後,VM 執行個體就會建立完成。如要驗證執行個體設定並查看狀態,請執行下列指令:
gcloud compute instances describe INSTANCE_NAME
使用密集配置政策建立 HPC VM 執行個體
您可以建立密集配置政策,縮短 VM 執行個體之間的延遲時間。密集配置方式政策可確保同一可用區中的執行個體彼此相近。
如果需要的 VM 執行個體數量超過單一密集配置政策的容納量,請將執行個體劃分為多項配置政策。使用最少數量的配置方式政策,以容納所有執行個體。
如要建立指定密集配置政策的 HPC VM 執行個體,請按照下列步驟操作:
- 執行下列其中一個步驟: 
- 
如要建立指定緊密放置政策的執行個體,請使用 --maintenance-policy和--resource-policies旗標搭配gcloud compute instances create指令。
 
建立使用 Cloud RDMA 的 HPC VM 執行個體
如要建立使用 Cloud RDMA 的 HPC VM 執行個體,您必須先建立至少一個一般 VPC 網路和一個 Falcon VPC 網路。Falcon VPC 網路使用 RDMA 網路設定檔,可在運算執行個體之間啟用 RDMA 流量。這個網路與一般虛擬私有雲網路不同,後者會將非 RDMA 流量傳輸至其他Google Cloud 服務或網際網路。
如要建立使用 Cloud RDMA 的 HPC VM 執行個體,請完成下列工作:
- 找出或建立至少兩個虛擬私有雲網路: - 用於透過 gVNIC 網路介面傳輸流量的一般 VPC 網路
- 用於 RDMA 流量的 Falcon 虛擬私有雲網路
 
- 建立 HPC VM 執行個體。 - 來源映像檔請使用 HPC VM 映像檔。這個映像檔包含 Cloud RDMA 所需的驅動程式。
- 建立執行個體時,請設定至少兩個網路介面,一個使用 gVNIC 驅動程式,另一個使用 IRDMA 驅動程式。 - 如需更完整的說明,請參閱「建立使用 Cloud RDMA 的執行個體」。 
 
- 如果您打算在採用 Cloud RDMA 的 HPC VM 執行個體上執行 MPI 應用程式,請按照「在採用 Cloud RDMA 的 H4D VM 上設定及擴充 MPI 應用程式」一文中的 MPI 設定步驟操作。 
存取 HPC VM 執行個體
建立 HPC VM 執行個體後,系統會自動啟動該執行個體。如要存取執行個體,請執行下列任一操作:
主控台
- 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。 
- 按一下 VM 執行個體的名稱。 
- 在「Remote Access」(遠端存取) 部分中,按一下第一個下拉式清單,並選擇存取該執行個體的方式。 
Compute Engine 會傳播您的 SSH 金鑰,並建立您的使用者。詳情請參閱「連線至 Linux VM」。
gcloud
如要使用 SSH 存取執行個體,請使用 gcloud compute ssh 指令:
gcloud compute ssh INSTANCE_NAME
Compute Engine 會傳播您的 SSH 金鑰,並建立您的使用者。詳情請參閱「連線至執行個體」。
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取這些快速入門導覽課程所用資源的費用,請刪除您建立的所有 HPC VM 執行個體。
主控台
- 前往 Google Cloud 控制台的「Deployments」(部署作業) 頁面。 
- 找出您要清除的 HPC VM 部署項目,然後勾選旁邊的核取方塊。 
- 點選「刪除」。 
gcloud
gcloud compute instances delete INSTANCE_NAME
根據最佳做法設定 HPC VM 執行個體
為提升 HPC VM 執行個體的效能並提高可預測性,建議您採用下列最佳做法。
停用多執行緒並行功能
HPC VM 映像檔預設會啟用多執行緒並行 (SMT),也就是 Intel 處理器上的超執行緒。停用 SMT 可讓效能更易於預測,並縮短工作時間。
你可以使用下列方法停用 SMT:
- 如要在建立新的 HPC VM 時停用 SMT,請按照建立 HPC VM 的步驟操作,並加入 - --threads-per-core=1旗標。
- 如要在現有的 HPC VM 上停用 SMT,請連線至 VM,然後從 VM 執行下列指令: - sudo google_mpi_tuning --nosmt 
詳情請參閱「設定每個核心的執行緒數量」。
將 C2 和 C2D 執行個體的網路介面類型設為 gVNIC
HPC VM 映像檔支援 Virtio-net 和 Google Virtual NIC (gVNIC) 做為虛擬網路介面。使用 gVNIC 取代 Virtio-net,可提供更優異的通訊效能和更高的輸送量,進而提升 MPI 應用程式的可擴充性。此外,gVNIC 是各 VM 的 Tier_1 網路效能的必要條件,可提供更高的頻寬和處理量。
如果您建立新的 C2 或 C2D 執行個體,系統預設會將 Virtio-net 用於虛擬網路介面。如要使用 gVNIC,請按照步驟建立 HPC VM,然後執行下列其中一項操作:
主控台
如要將 gVNIC 設為網路介面,請在建立執行個體時,按一下導覽選單中的「網路」。在隨即顯示的「Networking」(網路) 窗格中,執行下列操作:
- 前往「網路介面」部分
- 在「網路介面卡」中選取 gVNIC。
gcloud
在 gcloud compute instances create 指令中加入 --network-interface=nic-type=GVNIC 旗標。
HPC VM 映像檔包含 gVNIC 驅動程式,屬於動態核心模組支援 (DKMS)。詳情請參閱「使用 Google Virtual NIC」。
關閉 Meltdown 和 Spectre 的因應措施
HPC VM 映像檔預設會啟用 Meltdown 和 Spectre 緩解措施。在某些情況下,這些緩解措施可能會導致特定工作負載的效能下降。如要停用這些緩解措施並承擔相關安全風險,請執行下列操作:
- 在 HPC 執行個體上執行下列指令: - sudo google_mpi_tuning --nomitigation 
- 重新啟動執行個體。 
提升網路效能
如要提升執行個體的網路效能,請設定下列一或多項設定:
- 設定較高頻寬。如要為 C2 或 C2D VM 設定 Tier_1 網路,請使用 - gcloud compute instances create指令建立 VM,並指定- --network-performance-configs旗標。詳情請參閱「建立具有高頻寬設定的 VM」。
- 使用巨型封包。為盡量減少網路封包的處理負擔,建議您使用較大的封包大小。您需要針對應用程式的具體情況,驗證較大的封包大小。如要瞭解巨型封包和封包大小的使用方式,請參閱最大傳輸單位指南。 
- 提高 TCP 記憶體上限。頻寬越高,所需的 TCP 記憶體就越大。按照步驟提高 - tcp_*mem設定。
- 使用網路延遲設定檔。評估應用程式的延遲時間,並啟用忙碌輪詢,減少網路接收路徑的延遲時間。在 - /etc/sysctl.conf中調整- net.core.busy_poll和- net.core.busy_read設定,或使用- tuned-adm。
使用 Intel MPI 2021
Google 建議使用 Intel MPI 2021 程式庫,在Google Cloud上執行 MPI 工作。
MPI 實作項目有許多內部設定參數,可能會影響通訊效能。這些參數與 MPI Collective 通訊特別相關,可讓您指定在 Google Cloud 環境中執行方式差異極大的演算法和設定參數。
HPC VM 映像檔包含 google-hpc-compute 公用程式,可安裝建議的 MPI 程式庫,並透過 TCP 傳輸使用 Google Cloud 量身打造的 libfabric 提供者。
限制
調整的優點因應用程式而異。在某些情況下,特定調整可能會對效能造成負面影響。建議您對應用程式進行基準化測試,找出最有效率或最具成本效益的設定。
使用 google-hpc-compute 公用程式支援 Intel MPI 2021
google_install_intelmpi 指令碼是 Google-hpc-compute 公用程式中的 MPI 相關工具。可協助安裝及設定 Intel MPI。
HPC VM 映像檔中包含 google-hpc-compute 公用程式。
安裝 Intel MPI 2021
如要在建立新的 HPC VM 時安裝 Intel MPI 程式庫,請按照建立 HPC VM 的步驟操作,並在建立 VM 執行個體時加入下列項目:
--metadata=google_install_intelmpi="--impi_2021"
如要在現有的 HPC VM 上安裝程式庫,請在該 VM 上執行下列指令:
sudo google_install_intelmpi --impi_2021 --install_dir=PATH_INSTALL_MPI
install_dir 的預設位置設為 /opt/intel。
Intel MPI 程式庫 2018 和 MPI 集體調校
HPC VM 映像檔包含在 c2-standard-60 和 c2d-standard-112 執行個體上,使用密集配置政策執行的 Intel MPI 集體調校。這些調音設定位於 /usr/share/google-hpc-compute/mpitune-configs/intelmpi-2018 目錄。
如要在已安裝的 MPI 程式庫上套用這些調整設定,請為 mpivars 殼層指令碼提供來源,以設定適當的環境。然後,您可以使用下列指令直接安裝調整項目 (如果需要目錄的根存取權,請使用 --sudo 選項):google_install_mpitune
您可以使用 mpitune 手動指定 MPI 集體通訊的演算法和設定參數,並產生設定檔。
舉例來說,如要針對 22 個 VM 執行個體和每個執行個體 30 個 vCPU 進行調整,請取得 mpivars 殼層指令碼的來源,設定適當的環境,然後執行下列指令。您必須具備 write 目錄的存取權,或以超級使用者的身分執行指令。
mpitune -hf hostfile -fl 'shm:tcp' -pr 30:30 -hr 22:22
這個指令會在 Intel MPI 目錄中產生設定檔,稍後可用於執行應用程式。如要為應用程式使用微調設定,請將 -tune 選項新增至 mpirun 指令列,例如:
mpirun -tune -hostfile HOSTFILE -genv I_MPI_FABRICS 'shm:tcp' -np 660 -ppn 30 ./APPLICATION_NAME
更改下列內容:
- HOSTFILE:訪客 OS 中列出 VM 執行個體網路名稱的檔案名稱
- APPLICATION_NAME:要執行的應用程式檔案名稱
使用 HPC VM 映像檔建立自訂映像檔
如要大規模實作最佳做法,請建立自訂 OS 映像檔,以便搭配 HPC VM 執行個體使用。請完成下列工作,建立自訂映像檔,以便在建立 HPC VM 執行個體時使用:
- 使用 HPC VM 映像檔的開機磁碟做為來源磁碟,建立自訂映像檔。您可以使用 Google Cloud 控制台或 Google Cloud CLI 執行這項操作。 
主控台
- 前往 Google Cloud 控制台的「Images」頁面。 
- 按一下「建立映像檔」。 
- 指定映像檔的「Name」(名稱)。 
- 在「來源磁碟」下方,選取 HPC VM 的開機磁碟名稱。 
- 選擇圖片的其他剩餘屬性。 
- 點選「建立」。 
gcloud
使用 images create 指令建立自訂映像檔。
gcloud compute images create IMAGE_NAME \
         --source-disk=INSTANCE_NAME \
         --source-disk-zone=VM_ZONE \
         --family=IMAGE_FAMILY \
         --storage-location=LOCATION
更改下列內容:
- IMAGE_NAME:自訂映像檔的名稱。
- INSTANCE_NAME:HPC VM 的名稱。
- INSTANCE_ZONE:HPC VM 所在的可用區。
- IMAGE_FAMILY:選用。此映像檔所屬的映像檔系列。
- LOCATION:選用。儲存自訂圖片的區域。預設位置是離來源磁碟位置最近的多區域。
定價
HPC VM 映像檔免費提供,由於 HPC VM 映像檔是在 Compute Engine 上執行,因此您可能需要支付 vCPU、磁碟和記憶體等 Compute Engine 資源的費用。詳情請參閱 Compute Engine 定價。
後續步驟
- 查看執行 HPC 工作負載的最佳做法。
- 瞭解如何在Google Cloud上,透過 Cloud RDMA 在 H4D VM 上設定及擴充 MPI 應用程式。
- 進一步瞭解運算最佳化機器家族。
- 瞭解如何建立 HPC 叢集。
- 如有意見回饋或需要支援,請傳送電子郵件至 hpc-image-feedback@google.com。