Microsoft HPC Pack

已完成

如果您需要高等級控制高效能基礎結構,或者想要同時管理雲端和內部部署 VM,請考慮使用 Microsoft HPC Pack。

在您的工程公司中,您想要將高效能基礎結構從內部部署資料中心移轉至 Azure。 因為這些都是商務關鍵性系統,所以您希望逐步移轉。 您必須確定當內部部署和雲端 VM 同時存在時,能夠在移轉期間快速地回應需求並彈性地管理 VM。

在這裡,您將了解 HPC Pack 如何管理 HPC 基礎結構的方式。

什麼是 HPC Pack?

在研究適用於工程組織選項的過程中,您看過了 Azure Batch 和 Azure HPC 執行個體。 但如果您想要完全控制 VM 叢集的管理和排程,該怎麼做? 如果您已對資料中心的內部部署基礎結構進行大量投資,該怎麼辦? HPC Pack 提供一系列 Windows 安裝程式,可讓您設定自己的控制和管理平面,以及高彈性的內部部署和雲端節點部署。 相較於專屬的雲端式 Batch,HPC Pack 具有部署至內部部署和雲端的彈性。 當您的內部部署保留空間不足時,它會混合使用這兩者以擴充到雲端。

Diagram of HPC Pack hybrid.

HPC Pack 是 Batch 管理和排程控制層的版本,可給予您完全控制與責任。 部署 HPC Pack 需要 Windows Server 2012 或更新版本。

規劃 HPC Pack

一般而言,您應該準備安裝 HPC Pack,並全面了解需求。 您需要 SQL Server 和 Active Directory 控制站。 您也必須規劃拓撲。 應該有多少個前端或控制節點,以及多少個背景工作節點? 您需要擴充到 Azure 嗎? 如果需要,則可預先佈建 Azure 節點作為叢集的一部分。 組成控制平面 (前端和控制節點、SQL Server 和 Active Directory 網域控制站) 的主要機器大小取決於預測的叢集大小。

當您安裝 HPC Pack 時,它會顯示支援 HPC 和平行作業的作業排程器。 排程器會出現於 Microsoft 訊息傳遞介面中。 HPC Pack 會與 Windows 高度整合,讓您能夠使用 Visual Studio 以平行方式進行偵錯。 您可在單一的偵錯工具檢視中,看到叢集中來自計算節點的所有應用程式、網路功能和作業系統事件。

HPC Pack 也會提供進階的作業排程器。 您可以快速部署,甚至部署到未專門用於 HPC Pack 的節點、Linux 型節點及 Azure 節點。 那表示您可以在資料中心使用備用容量。 相較於使用 Batch,HPC Pack 可提供一種理想的方式來使用現有基礎結構投資,並讓您能夠對工作劃分方式保持更離散的控制。

混用技術

您在此課程模組中考慮的選項均不會互斥。 您可以使用您在上一個單元中查看的 H 系列 VM,作為 HPC 設定中可能的 Azure 節點。 儘管您已專注於可強調顯示 Batch 差異的混合式使用案例,但 HPC Pack 仍具有彈性。 它允許專屬的內部部署和專屬的雲端式部署。 當您想要有比 Batch 所提供更細微的控制時,這種彈性非常有用。

部署和管理 HPC 系統

協調 HPC 系統

雲端運算的主要概念之一是協調流程。 它是指監督部署、執行和監視叢集中應用程式的所有元件。

此外,協調器可以執行其他工作,例如修復 (管理錯誤)、調整和記錄。 協調器,例如已知的 Kubernetes 或 Mesos,可以直接透過虛擬化方式來存取雲端叢集資源。

部署 HPC 系統

Azure 中的 HPC 部署可能會根據您的特定工作負載需求和預算而有所不同。 任何部署中有一些標準元件,包括:

  • Azure Resource Manager:使用指令檔或範本將應用程式部署至叢集。
  • HPC 前端節點:在背景工作角色節點上啟用排程作業和工作負載。 它是用來管理 HPC 叢集的虛擬機器 (VM)。
  • 虛擬網路:可讓您透過使用 ExpressRoute 或 IPsec VPN 的安全連線,建立叢集和儲存體的隔離網路。 您可以整合網路中已建立的 DNS 伺服器和 IP 位址,並細微控制子網路之間的流量。
  • 虛擬機器擴展集:啟用叢集 VM 的佈建,並包含自動調整、多區域部署和負載平衡的功能。 您可以使用擴展集來執行數個資料庫,包括 MongoDB、Cassandra 和 Hadoop。
  • 儲存體: 以 Blob、磁碟、檔案、混合式或資料湖儲存體的形式啟用掛接永續性儲存體叢集。

管理 Azure HPC 部署

Azure 提供一些原生服務,協助您管理 HPC 部署。 這些工具可為您的管理提供彈性,並可協助您在 Azure 和混合式資源中排程工作負載。

  • Microsoft HPC Pack:一組公用程式,可讓您設定和管理 VM 叢集、監視作業,以及排程工作負載。 HPC Pack 包含的功能可協助您移轉內部部署工作負載,或繼續使用混合式部署作業。 公用程式不會為您佈建或管理 VM 或網路基礎結構。
  • Azure CycleCloud:您選擇的排程器介面。 您可以使用 Azure CycleCloud 搭配一系列原生和協力廠商選項,包括 HPC Pack、Grid Engine、Slurm 和Symphony。 CycleCloud 可讓您管理和協調工作負載、使用 Active Directory 定義存取控制,以及自訂叢集原則。
  • Azure Batch:可用來自動調整部署,並設定作業排程的原則的受控工具。 Azure Batch 服務會處理工作負載的佈建、指派、執行時間和監視。 若要使用它,您只需要上傳工作負載並設定 VM 集區。

Azure HPC 工作負載提供機器學習、視覺效果和轉譯,全部強化了半導體產業中的程式。 它可讓您順暢且彈性地進行油和氣工作負載雲端整合,以及雲端式基因體定序和半導體設計。

Azure HPC 部署的最佳做法

下列最佳做法可協助您取得預期的效能和價值。

  • 跨雲端服務散發部署:跨雲端服務散發大型部署可協助您避免多載或依賴單一服務所產生的限制。 將部署分割成較小的區段,您可以:

    • 在作業完成之後停止閒置實例,而不會中斷其他處理序
    • 彈性啟動和停止節點叢集
    • 更輕鬆地在叢集中尋找可用的節點
    • 使用多個資料中心來確保災害復原
  • 針對節點部署使用多個 Azure 儲存體帳戶:類似於跨服務分散部署,建議將多個儲存體帳戶連結至每個部署。 它可為大型部署、受輸入/輸出作業限制的應用程式和自訂應用程式提供更佳的效能。 設定儲存體帳戶時,您應該有一個用於佈建節點的帳戶,另一個用於移動作業或工作資料,以確保一致性和低延遲。

  • 增加 Proxy 節點實例以符合部署大小: Proxy 節點可讓您在內部部署和 Azure 背景工作角色節點作業的前端節點之間進行通訊。 當您在 Azure 中部署背景工作角色時,這些節點會自動連結。 如果您正在執行符合或超過 Proxy 節點所提供的資源的大型作業,請考慮增加您執行的數量。 隨著部署變得更大,增加也會特別重要。

  • 使用 HPC 用戶端公用程式連線到您的前端節點:
    HPC Pack 用戶端公用程式是連線到前端節點的慣用方法,特別是當您執行大型作業時。 您可以視需要在使用者的工作站上安裝這些公用程式,並視需要從遠端存取前端節點,而不是使用遠端桌面服務 (RDS)。 如果許多使用者同時連線,這些公用程式特別有用。

作業排程

另一個提供的 HPC 服務是工作排程。 您可以使用應用程式中的排程器來分派工作,有效率地執行批次工作。 排程器的主要目標可以大致分類為:

  • 將工作提交與完成工作之間的時間降至最低。 沒有作業應該待在佇列中過長時間。
  • 最佳化 CPU 使用率。 特別是,降低 CPU 停機時間。
  • 最大化作業輸送量,也就是每個時間單位的作業調整。

關於工作排程

使用者會將非互動式批次工作提交至排程器。 排程器會儲存批次工作、評估其資源需求和優先順序,並將作業散發至適當的計算節點。 它們構成大量 HPC 叢集 (大約 98%) 作為最大耗用電源。

不同於登入節點及其互動式使用方式,計算節點無法透過 ssh 直接存取。 登入節點上的排程器可作為計算節點與使用者之間的介面。 使用者必須根據時間和記憶體資源,在作業指令碼內指定應用程式。

透過排程器提交的工作指令碼會將工作新增至工作佇列。 視工作所需的可用資源而定,排程器會決定工作何時會離開佇列,以及將在哪個後端節點上執行。

使用者必須確定要求的資源位於系統的限制內。 例如:

  1. 排程器會在配置的時間啟動後終止工作,即使工作需要更多時間也一樣。
  2. 如果工作需要比系統上可用的記憶體還多,作業就會停滯在佇列中。

Diagram of User accessing the batch system.

範例說明

假設您使用的批次系統包含六個節點,排程器會使用 IT 將九個工作放在佇列中的可用節點。 目標是消除浪費的資源,如下圖顯示節點的空閒區域,不會對其執行任何作業。

因此,工作可能不會以第一次進入佇列的相同順序,在節點之間散發。 執行工作所需的時間和節點數目,會決定作業佔用的空間。 排程器會以多維度輪替角色來統一填滿叢集節點,透過平衡所有作業的資源需求與叢集中可用的資源。

Diagram of Scheduler distribution of jobs onto nodes.

排程演算法

排程器可以使用兩個基本策略來判斷接下來要執行的工作。 新式排程器不會嚴格地停留在這些演算法的其中一個,而是採用兩者的組合。 此外,排程器必須考慮的更多層面,例如目前的系統負載。

  • 先到先服務。作業會以先進入佇列完全相同的順序執行。 優點是絕對會執行每個作業。 不過,相較於實際執行時間,一小部分的作業可能會等候的時間不夠長。

  • 最短的工作優先 根據工作指令碼中宣告的執行時間,排程器會估計工作執行時間。 工作會依執行時間的遞增順序排順位。 雖然短的工作會在短暫等候時間之後啟動,但長時間執行的工作 (或至少工作宣告為這類) 可能永遠不會實際啟動。

  • 回填: 排程器會維護「先到先服務」的概念,而不會防止長時間執行的工作進行。 只有在可以執行佇列中的第一個工作時,排程器才會執行工作。 否則,排程器會經過佇列的其餘部分,以檢查是否可以執行另一個工作,而不需要延長佇列中第一個工作的等候時間。 如果找到這樣的工作,排程器就會執行該工作。 小型工作通常會遇到簡短的佇列時間。

工作流程管理

  • 工作管線和自動化

    重複的作業,例如工具使用方式和軟體程式工作循序執行,可以組織成管線。 自動化可讓整體軟體和工具使用更有效率。 它藉由讓工作本身更快速,並減少知識工作者的管理負擔,以創造效率。

    自動化可以藉由消除程式執行方式的差異,來降低程序的錯誤率。 工作管線和自動化可以開啟平行處理和雲端部署等進一步程序創新的門。

  • 工作流程管理工具

使用 Azure Batch

使用 Azure Batch 在 Azure 中有效率地執行大規模的平行和高效能運算 (HPC) 批次作業。 Azure Batch 可以建立和管理計算節點 (虛擬機器) 的集區、安裝所要執行的應用程式,以及排程要在節點上執行的作業。 沒有可安裝、管理或調整的叢集或工作排程器軟體。 您可改為使用 Batch API 和工具、命令行指令碼、或 Azure 入口網站來設定,管理,及監視您的作業。

如需 Azure Batch 的完整詳細資料,包括更多功能和運作方式,請參閱 Azure Batch

使用 Azure CycleCloud

Azure CycleCloud 是有利於企業的工具,可用來在 Azure 上協調和管理高效能運算 (HPC) 環境。 透過 CycleCloud,使用者可以規劃 HPC 系統的基礎結構、部署熟悉的 HPC 排程器,並自動調整基礎結構,有效率地執行任何規模的作業。 透過 CycleCloud,使用者可以建立不同類型的檔案系統,並將其掛接至計算叢集節點以支援 HPC 工作負載。

如需 Azure CycleCloud 的詳細資訊,請參閱 Azure CycleCloud

檢定您的知識

1.

您正嘗試建議組織選擇 Azure Batch 或 Microsoft HPC Pack。 下列哪一個選項可能是選擇 HPC Pack 的關鍵因素?

2.

您正嘗試設定 HPC Pack 拓撲,從內部部署資源開始。 您應該針對前端節點使用哪個版本的 Windows Server?