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.
| 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:
| 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 |
| 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 |
| 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 |
| 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 |
| 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.