Azure Batch

已完成

高效能運算 (HPC) 是使用高效能運算能力的做法,這種做法可取得的效能比使用膝上型電腦和/或工作站時更高。 它可解決需要同時在多個核心上執行的大型問題。

其做法是將問題分割成較小的可計算單位,並將這些單位散發到分散式系統中。 它會持續在兩者之間通訊,以達到比在較少核心上執行相同計算更快的最終解決方案。

Azure 上有數個 HPC 和批次處理選項可供使用。 如果您與一位 Azure 專家討論,而其建議您將焦點放在三個選項:Azure Batch、Azure CycleCloud 和 Microsoft HPC Pack。 本模組中的下列單元著重於每個選項。 請務必注意,這些選項均不會互斥。 它們以彼此為基礎,而且在工具箱中可視為不同的工具。

在這裡,您將大致了解高效能運算,並了解 Azure HPC。

什麼是 Azure 的 HPC?

有許多不同的行業需要功能強大的運算資源來進行特殊化的工作。 例如:

  • 遺傳學中的基因定序。
  • 石油與天然氣探勘中的油層模擬。
  • 財務中的市場模型化。
  • 工程設計中的實體系統模型化。
  • 氣象學中的氣象模型化。

這些工作要求處理器能夠快速地執行指令。 Azure 的 HPC 應用程式可擴展成上千個計算核心,以擴充內部部署大型計算或以 100% 雲端原生解決方案的方式執行。 此 HPC 解決方案包括前端節點、計算節點和儲存體節點,會在 Azure 中執行,而不需要維護硬體基礎結構。 此解決方案建置在 Azure 受控服務上:虛擬機器擴展集、虛擬網路和儲存體帳戶。

這些服務會在高可用性環境中執行、修補和支援,讓您專注於解決方案,而不是其執行的環境。 Azure HPC 系統也有其優點,您可以視需要動態新增資源,並在需求下降時移除它們。

Diagram of the High Performance Computing.

分散式系統上的平行運算是什麼

平行運算是同時使用多個計算資源來解決計算問題:

  • 問題分成可同時解決的離散部分。
  • 每個部分會進一步細分為一系列指令。
  • 每個部分的指令會在不同處理器上同時執行。
  • 採用整體控制/協調機制。

Diagram of the Parallel Computing on Distributed Systems.

平行處理原則的不同階段

有不同方式可以分類平行電腦,而 Flynn 的分類法是最常見的方法之一。 它會根據指令資料流和資料流兩個獨立維度的分類方式來區分多處理器電腦架構。 每個維度只能有兩種可能狀態之一:[單一] 或 [多個]

此圖顯示的用戶端應用程式或裝載服務會與 Batch 互動,以上傳輸入、建立作業、監視工作及下載輸出。

Diagram of the stages of parallelism.

我們可以更詳細地查看四個不同的分類。

[SISD] [SIMD] [MISD] [MIMD]
- 序列 (非平行) 電腦
- 單一指令:在任何一個時鐘週期期間,CPU 只會處理一個指令資料流
- 單一資料:在任何一個時鐘週期期間,只會使用一個資料流作為輸入。
- 最舊的電腦類型。
範例:
1.早期世代大型主機
2. 迷你電腦、工作站
3.單一處理器核心電腦










- 平行運算
- 單一指令:所有處理單位都會在任何指定的時鐘週期執行相同的指令。
- 多個資料:每個處理單位都可以在不同的資料元素上運作。
- 最適合以高度規律性區分的特殊問題,例如圖形/影像處理。
- 大部分的新式電腦,具有圖形處理器單位 (GPU) 採用 SIMD 指令和執行單位。
範例:
1. 處理器陣列:思考機器 CM-2、MasPar MP-1 和 MP-2、ILLIAC IV
2. 向量管線:IBM 9000、Cray X-MP、Y-MP & C90、Fujitsu VP、NEC SX-2、Hitachi S820、ETA10

- 平行運算
- 多個指令:每個處理單位都會透過個別的指令資料流獨立處理資料。
- 單一資料:單一資料流會饋送至多個處理單位。
- 很少(如果有的話)有此類別平行電腦的實際範例。
範例:
1.在單一訊號資料流上運作的多個頻率篩選器
2.多個密碼編譯演算法嘗試破解單一編碼訊息







- 平行運算
- 多個指令:每個處理器可能會執行不同的指令資料流。
- 多個資料:每個處理器都可能與不同資料流搭配使用。
- 目前,最常見的平行電腦類型 - 大多數新式超級電腦都屬於此類別。
範例:
1. 最新的超級電腦
2. 網路平行電腦叢集和「格線」
3. 多處理器 SMP 電腦
4. 多核心電腦







Diagram of the multiple instruction multiple data.

不同類型的 HPC 作業:大量平行與緊密結合

平行作業的計算問題分成小型、簡單且獨立的工作,這些工作可以同時執行,通常它們之間不太需要通訊。

  • 平行作業的常見使用案例包括風險模擬、分子建模、關聯式搜尋和物流模擬。

    緊密結合的作業具有大型共用工作負載,會分成較小的工作,以持續通訊。 叢集中的不同節點會在它們執行其處理時彼此通訊。

  • 緊密結合作業的常見使用案例包括:

    • 計算流體動力學
    • 氣象預報模型化
    • 材料模擬
    • 汽車碰撞模擬
    • 地理空間模擬
    • 流量管理

什麼是訊息傳遞介面 (MPI)

  • MPI 是一種系統,旨在提供可攜式且有效率的標準來傳遞訊息。 這種系統高效能、可攜式且可調整,而且開發目的是在不同的平行電腦上運作。

  • MPI 已協助在產業和全球規模上進行網路和平行運算,並協助改善大規模平行電腦應用程式的運作。

Diagram of the message passing interface.

Microsoft MPI 權益:

  • 輕鬆移植使用 MPICH 的現有程式碼。
  • 以 Active Directory Domain Services 為基礎的安全性。
  • Windows 作業系統上的高效能。
  • 不同互連選項類型之間的二進位相容性。

檢定您的知識

1.

使用 Azure Batch,而不是為手邊的工作佈建所需 VM 數目的優點為何?

2.

您已分析問題,並發現它具有 1000 個不同的子工作。 若要解決此問題,您的經理同意編列預算以讓 20 個 VM 節點可在 Azure Batch 中執行。 相較於在相同大小的單一 VM 節點上執行,您預期該問題的解決方案有多快?