車隊工作負載

IBM Cloud® Code Engine 是一個全面管理的無伺服器平台,可執行您的容器化工作負載,包括機群工作負載。 在 Code Engine 中學習如何運行車隊。

什麼是車隊?

機群也稱為無伺服器機群,是 Code Engine 的運算元件,可平行執行一個或多個使用者程式碼實體,以完成大量運算密集型任務的佇列。 車隊可連接至虛擬私有雲,以便在連接其他服務時安全地交換使用者資料。 與批次作業不同的是,fleets 提供動態任務排程和單租戶隔離,並與 vCPU 和 GPU 相容。

車隊如何運作?

車隊有三個主要元素:任務、實例和工作節點。 單一任務由使用者程式碼的單一實例完成,該實例在工作節點上執行。 每個 Worker 節點可以同時執行數個任務,讓許多任務可以並行完成。 當任務完成時,工作者節點上會產生一個新的實體,以完成佇列中下一個可用的任務。 每個工作站會重複此程序,直到所有任務完成為止,此時工作站會自動解除佈署。

車隊與工作有何不同?

與主要用於中小型任務的批次作業不同,機群是設計用來完成大型、運算密集的任務。 查看下表,瞭解工作和車隊之間的具體差異。

比較 Code Engine 車隊和工作
特性 Fleet 工作
隔離 單一承租戶 多租戶
任務大小 大型任務 中小型任務
實作 動態佇列 靜態陣列
機器配置 完全控制機器輪廓 無法控制機器輪廓
VPC 連線 本機連接至現有的 VPC 需要私人路徑

與 Code Engine 車隊合作的主要特點是什麼?

檢視下列主題,以瞭解在 Code Engine 中與車隊合作的更多資訊。

自動縮放

有了機群,您就可以利用大規模的平行性來完成大型的密集計算任務。Code Engine 會自動調整機群中的工作節點,以最有效率的方式滿足資源需求。 您可以讓 Code Engine 決定部署的工作人員的設定檔,也可以選擇特定的設定檔,例如 GPU 類型。 無論是哪一種情況,Code Engine 都會自動調整工作人員的數量,以達到最高的效率。

部署的 Worker 數量基於需要完成的任務數量、您的代碼實例所需的資源,以及您希望同時執行的最大並發實例數量。 透過調整這些設定,您可以擴大您的車隊,以完成少至 1 個或多至數百萬個任務。

例如,假設您有 4 個任務要完成。 完成任務的每個程式碼範例需要 1 vCPU and 2 GB memory,總需求為 4 vCPU and 8GB memory。 如果將最大並發實體數設定為 2,Code Engine,就可以部署 1 個 Worker 節點,2 vCPU and 4 GB memory,一次執行 2 個實體。 如果將最大並發實體數設定為 4,Code Engine,就可以部署 2 個相同的 Worker 節點,在兩個 Worker 上同時執行所有 4 個實體。 在第二種情況下,車隊完成得更快,但需要部署更多工人。 請記住,自動部署 Worker 節點有無限多的組合,而且可能會部署不同配置文件的 Worker 節點。

GPU 不提供自動縮放功能。 若要為機群部署 GPU,您必須指定要部署的 GPU Worker 類型。

任務與實例規格

部署機群時,使用者可以指定要完成的任務數量、同時執行的實例數量、完成任務的順序。 車隊可以透過同時啟動多個實體,並行處理許多任務。 所有實體都是以與機群規格相同的 vCPU 和記憶體數量建立。 此外,使用者可以建立任務規格檔案,為每個任務提供特定的指令和參數,或建立自訂的任務索引。

COS 中的任務儲存

您可以使用 COS 儲存桶為您的機群提供任務,方法是在建立機群時指定持久性資料儲存和儲存桶子路徑。 COS 桶中的每個物件代表單一任務。

隔離

與批次作業不同,機群提供單一租戶隔離。 您的車隊工作人員不會與其他使用者共用。

重試次數

每個車隊的實例都會執行完成。 但是,如果發生錯誤,Code Engine 會重新啟動實體。 您可以限制重試的最大次數,以避免重新啟動失敗的實體。

狀態

當至少有一個工作節點已佈建時,機群就會處於 Running 狀態。 機群不再執行時,如果所有任務都成功完成,則處於 Succeeded 狀態;如果一個或多個任務失敗,則處於 Failed 狀態。 您也可以取消車隊。

如需詳細資訊,請參閱 瞭解您車隊的狀態

工人簡介

您可以選擇車隊工作人員的設定檔。 如果您沒有指定設定檔,Code Engine 會為您選取一個設定檔。

Code Engine 車隊支援下列設定檔系列:

平衡
實例設定檔
bx2-2x8
bx2-4x16
bx2-8x32
bx2-16x64
bx2-32x128
bx2-48x192
bx2-64x256
bx2-96x384
bx2-128x512
bx2a-2x8
bx2a-4x16
bx2a-8x32
bx2a-16x64
bx2a-32x128
bx2a-48x192
bx2a-64x256
bx2a-96x384
bx2a-128x512
bx2a-228x912
bx2d-2x8
bx2d-8x32
bx2d-16x64
bx3d-2x10
bx3d-4x20
bx3d-8x40
bx3d-16x80
bx3d-24x120
bx3d-32x160
bx3d-48x240
bx3d-64x320
運算
實例設定檔
cx2-2x4
cx2-4x8
cx2-8x16
cx2-16x32
cx2-32x64
cx2-48x96
cx2-64x128
cx2-96x192
cx2-128x256
cx3d-2x5
cx3d-4x10
cx3d-8x20
cx3d-16x40
cx3d-24x60
cx3d-32x80
cx3d-48x120
cx3d-64x160
記憶體
實例設定檔
mx2-2x16
mx2-4x32
mx2-8x64
mx2-16x128
mx2-32x256
mx2-48x384
mx2-64x512
mx2-96x768
mx2-128x1024
mx2d-16x128
mx2d-64x512
mx2d-96x768
mx3d-2x20
mx3d-4x40
mx3d-8x16
mx3d-16x160
mx3d-24x240
mx3d-32x320
mx3d-48x480
mx3d-64x640
GPU
實例設定檔
gx3-16x80x1l4
gx3-32x160x2l4
gx3-64x320x4l4
gx3-24x120x1l40s
gx3-48x240x2l40s
gx2-8x64x1v100
gx2-16x128x1v100
gx2-16x128x2v100
gx2-32x256x2v100
gx3d-24x120x1a100p
gx3d-48x240x2a100p
gx3d-160x1792x8h100
gx3d-160x1792x8h200
gx4d-232x3840x8b300
Flex
實例設定檔
nxf-2x1
nxf-2x2
bxf-2x8
bxf-4x16
bxf-8x32
bxf-16x64
bxf-24x96
bxf-32x128
bxf-48x192
bxf-64x256
cxf-2x4
cxf-4x8
cxf-8x16
cxf-16x32
cxf-24x48
cxf-32x64
cxf-48x96
cxf-64x128
mxf-2x16
mxf-4x32
mxf-8x64
mxf-16x128
mxf-24x192
mxf-32x256
mxf-48x384
mxf-64x512

某些設定檔可能無法在所有 VPC 網路區域中使用。 您可以使用以下 CLI 指令,列出 Code Engine serverless 船隊在區域中支援的 Worker 設定檔。

ibmcloud ce fleet worker profiles
  • 如果您想瞭解特定設定檔的區域可用性和容量,例如 H100 和 L40s,請 開啟支援個案,並選擇「虛擬私有雲 (VPC)」作為主題。
  • 如果您需要目前車隊不支援的特定 VPC 設定檔,請 開啟支援個案,並選擇 " Code Engine " 作為主題。

如何開始使用車隊?

若要使用 icr.io/codeengine/helloworld 範例影像建立並執行簡單的 Code Engine 機群,請參閱執行 您的第一個 Code Engine 機群