Carichi di lavoro delle flotte

IBM Cloud® Code Engine è una piattaforma serverless completamente gestita che esegue i carichi di lavoro containerizzati, compresi i carichi di lavoro del parco macchine. Imparate a gestire le flotte in Code Engine.

Cosa sono le flotte?

Una flotta, detta anche flotta serverless, è un componente di calcolo Code Engine che esegue una o più istanze di codice utente in parallelo per completare una grande coda di attività ad alta intensità di calcolo. Le flotte possono collegarsi a Virtual Private Cloud per scambiare in modo sicuro i dati degli utenti quando si collegano ad altri servizi. A differenza dei lavori batch, le flotte offrono un accodamento dinamico dei task e l'isolamento di un singolo tenant e sono compatibili sia con vCPU che con le GPU.

Come funzionano le flotte?

Le flotte hanno tre elementi principali: compiti, istanze e nodi lavoratori. Un singolo task viene completato da una singola istanza di codice utente, che viene eseguita su un nodo worker. Ogni nodo worker può eseguire diversi task in contemporanea, consentendo di completare molti task in parallelo. Quando un'attività viene completata, una nuova istanza si attiva sul nodo worker per completare la successiva attività disponibile nella coda. Questo processo si ripete su ogni nodo worker fino al completamento di tutti i compiti, a quel punto i nodi worker vengono automaticamente deprovisionati.

In che modo le flotte sono diverse dai posti di lavoro?

A differenza dei lavori batch, che sono destinati principalmente a compiti di piccole e medie dimensioni, i parchi sono progettati per completare compiti di grandi dimensioni e ad alta intensità di calcolo. La tabella seguente illustra le differenze specifiche tra posti di lavoro e flotte.

Confronto tra flotte e lavori Code Engine
Caratteristica Flotte Lavori
Isolamento Tenant singolo Multi-tenant
Dimensione del compito Compiti di grandi dimensioni Attività di piccole e medie dimensioni
Implementazione Coda dinamica Array statico
Configurazione della macchina Controllo completo del profilo della macchina Nessun controllo sul profilo della macchina
Connessione VPC Si collega in modo nativo al VPC esistente Richiede un percorso privato

Quali sono le caratteristiche principali della collaborazione con le flotte di Code Engine?

Per saperne di più su come lavorare con le flotte in Code Engine, consultate i seguenti argomenti.

Scalatura automatica

Con un parco macchine, è possibile sfruttare il parallelismo su larga scala per completare attività di grandi dimensioni e ad alta intensità di calcolo. Code Engine ridimensiona automaticamente i nodi worker del parco macchine per soddisfare i requisiti di risorse nel modo più efficiente. Si può lasciare che sia Code Engine a determinare i profili dei lavoratori distribuiti, oppure si può scegliere un profilo specifico, ad esempio un tipo di GPU. In entrambi i casi, Code Engine scala automaticamente il numero di lavoratori per ottenere il massimo livello di efficienza.

Il numero di worker distribuiti si basa sul numero di attività da completare, sulle risorse necessarie per un'istanza del codice e sul numero massimo di istanze contemporanee che si desidera eseguire alla volta. Regolando queste impostazioni, è possibile scalare la flotta per completare un numero di attività pari a 1 o a diversi milioni.

Ad esempio, immaginate di avere 4 compiti da completare. Ogni istanza di codice per completare un compito richiede 1 vCPU and 2 GB memory, per un fabbisogno totale di 4 vCPU and 8GB memory. Se si imposta il numero massimo di istanze contemporanee a 2, Code Engine può distribuire 1 nodo worker con 2 vCPU and 4 GB memory per eseguire 2 istanze alla volta. Se si imposta il numero massimo di istanze contemporanee a 4, Code Engine può distribuire 2 degli stessi nodi worker per eseguire tutte e 4 le istanze contemporaneamente su entrambi i worker. Nel secondo scenario, la flotta termina più rapidamente, ma richiede l'impiego di un maggior numero di lavoratori. Si tenga presente che esiste un numero infinito di combinazioni per la distribuzione automatica dei nodi worker e che possono essere distribuiti nodi worker di vari profili.

Il ridimensionamento automatico non è disponibile per le GPU. Per distribuire le GPU per un parco macchine, è necessario specificare il tipo di GPU worker da distribuire.

Specifiche dei compiti e delle istanze

Quando si distribuisce un parco macchine, gli utenti possono specificare il numero di attività da completare, il numero di istanze da eseguire alla volta, l'ordine di completamento delle attività. Le flotte possono lavorare su molti compiti in parallelo avviando più istanze contemporaneamente. Tutte le istanze vengono create con la stessa quantità di vCPU e di memoria prevista dalle specifiche della flotta. Inoltre, gli utenti possono creare un file di specifica dei task per fornire comandi e argomenti specifici per ogni task o per creare indici personalizzati dei task.

Memorizzazione dei compiti in COS

È possibile utilizzare un bucket COS per fornire i task del proprio parco macchine, specificando un data store persistente e un sottopercorso del bucket quando si crea il parco macchine. Ogni oggetto del bucket COS rappresenta un singolo compito.

Isolamento

A differenza dei lavori batch, le flotte offrono l'isolamento di un singolo tenant. I lavoratori della flotta non vengono condivisi con altri utenti.

Tentativi

Ogni istanza della flotta viene eseguita fino al completamento. Tuttavia, in caso di errore, Code Engine riavvia l'istanza. È possibile limitare il numero massimo di tentativi per evitare di riavviare le istanze fallite.

Condizione

Una flotta si trova nello stato Running quando almeno un nodo lavoratore è stato fornito. Quando la flotta non è più in esecuzione, si trova nello stato Succeeded se tutte le attività sono state completate con successo, oppure Failed se una o più attività non sono andate a buon fine. È anche possibile annullare una flotta.

Per ulteriori informazioni, consultare la sezione Conoscere lo stato del proprio parco veicoli.

Profilo del lavoratore

È possibile scegliere facoltativamente il profilo del Fleet Worker. Se non si specifica un profilo, Code Engine lo sceglierà per voi.

Code Engine supporta le seguenti famiglie di profili:

Bilanciato
Profilo istanza
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
Calcolo
Profilo istanza
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
Memoria
Profilo istanza
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
Profilo istanza
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
Profilo istanza
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

Alcuni profili potrebbero non essere disponibili in tutte le zone della rete VPC. È possibile utilizzare il seguente comando CLI per elencare i profili dei lavoratori supportati dalle flotte serverless di Code Engine in una regione.

ibmcloud ce fleet worker profiles
  • Se si desidera conoscere la disponibilità e la capacità zonale di determinati profili, come H100 e L40s, aprire un caso di assistenza e selezionare "Virtual Private Cloud (VPC)" come argomento.
  • Se avete bisogno di un determinato profilo VPC che oggi non è supportato dalle flotte, aprite un caso di assistenza e selezionate " Code Engine " come argomento.

Come posso iniziare a lavorare con le flotte?

Per creare ed eseguire un semplice parco macchine Code Engine con l'immagine campione icr.io/codeengine/helloworld, vedere Esecuzione del primo parco macchine Code Engine.