Informazioni generali

D: Cos'è AWS Batch?
AWS Batch è un set di funzionalità di gestione dei batch che consente a sviluppatori, ricercatori e ingegneri di eseguire in maniera semplice ed efficace centinaia di migliaia di processi di elaborazione in batch su AWS. AWS Batch esegue il provisioning dinamico della quantità e dei tipi di risorse di calcolo ottimali (ad esempio, CPU o risorse di calcolo ottimizzate per la memoria) in base al volume e ai requisiti specifici di risorse per le attività in batch inviate. Con AWS Batch, non c'è bisogno di installare e gestire software di calcolo o cluster di server e questo ti consente invece di concentrarti sull'analisi dei risultati e la risoluzione di problemi. AWS Batch pianifica, programma ed esegue carichi di lavoro di elaborazione in batch tramite Amazon EC2 (disponibile con istanze Spot) e risorse di calcolo AWS con AWS Fargate o Fargate Spot.

D: Che cos'è l'elaborazione in batch?
L'elaborazione in batch è l'esecuzione di una serie di programmi ("attività") su uno o più computer senza interventi manuali. I parametri di input sono predefiniti tramite script, argomenti a riga di comando, file di controllo o linguaggi di controllo delle attività. Una determinata attività in batch può dipendere dal completamento delle attività precedenti oppure dalla disponibilità di determinati input, il che rende fondamentale il sequenziamento e la programmazione di più attività, nonché incompatibile con l'elaborazione interattiva.

D: Quali sono i vantaggi dell'utilizzo dell'elaborazione in batch?
  • Può permettere di posticipare il momento dell'elaborazione delle attività a periodi in cui è disponibile una capacità maggiore o meno costosa.
  • Evita l'inattività delle risorse di calcolo a causa di frequenti interventi manuali e supervisione.
  • Aumenta l'efficienza promuovendo un maggiore utilizzo delle risorse di calcolo.
  • Consente la prioritizzazione dei processi, allineando l'allocazione delle risorse agli obiettivi di business.
 
D: Quando devo eseguire le attività in Fargate anziché in EC2?
Devi eseguire le attività in Fargate quando desideri che AWS Batch gestisca il provisioning dei calcoli in modo completamente astratto dall'infrastruttura EC2. Devi eseguire i processi in EC2 se desideri accedere a particolari configurazioni dell'istanza (particolari processori, GPU o architettura) o per carichi di lavoro su scala molto ampia.
 
In base al caso di utilizzo, le attività possono iniziare più rapidamente utilizzando EC2 o Fargate. Le attività Fargate inizieranno più rapidamente nel caso di scalabilità orizzontale iniziale del lavoro, in quanto non esiste alcuna necessità di attendere l'avvio dell'istanza EC2. Per carichi di lavoro più grandi, tuttavia, le istanze EC2 potrebbero essere più rapide, in quanto Batch riutilizza le istanze e le immagini del contenitore per eseguire i processi successivi.
 
D: Posso passare da un CE Fargate a un CE Fargate Spot o viceversa?
Sì. Puoi impostare i CE Fargate in modo da avere una vCPU massima, che corrisponde alla quantità totale di vCPU di tutte le attività attualmente in esecuzione in quel CE. Quando il conteggio della vCPU raggiunge la vCPU massima in un CE, Batch inizierà a programmare le attività nel CE Fargate successivo, nell'ordine collegato alla coda, se esistente. Questa operazione è utile, ad esempio, se vuoi impostare un CE Fargate su un requisito aziendale minimo ed eseguire il resto del carico di lavoro su Fargate Spot.
 
Quando si imposta un CE Fargate Spot come primo, seguito da un CE Fargate, Batch passerà a Fargate solo quando la vCPU utilizzata dalle attività è maggiore della vCPU massima per quel CE. Nel caso in cui Fargate Spot venga disattivato, la vCPU massima non verrà raggiunta e Batch non richiederà le risorse Fargate nel CE successivo per gestire le attività.
 
Non è consentito collegare una coda di attività AWS Batch su un CE Fargate/Fargate Spot e un CE EC2 o Spot.

Perché AWS Batch

D: Qual è il vantaggio di utilizzare AWS Batch?
AWS Batch gestisce l'esecuzione delle attività e delle risorse di calcolo, consentendoti di concentrarti sullo sviluppo di applicazioni o l'analisi dei risultati, anziché sulla configurazione e gestione dell'infrastruttura. Se stai pensando di eseguire o trasferire carichi di lavoro in batch in AWS, dovresti prendere in considerazione l'utilizzo di AWS Batch.

D: Per quali casi d'uso è ottimizzato AWS Batch?
AWS Batch è ottimizzato per l'elaborazione in batch e le applicazioni che permettono di scalare mediante l'esecuzione di molteplici attività in parallelo. Apprendimento profondo, analisi genomica, modelli di rischi finanziari, simulazioni Monte Carlo, rendering delle animazioni, transcodifica dei media, elaborazione immagini e simulazioni ingegneristiche sono tutti ottimi esempi di applicazioni di elaborazione in batch.

Caratteristiche

D: Quali sono le caratteristiche salienti di AWS Batch?
AWS Batch gestisce gli ambienti di calcolo e le code di attività, permettendo di eseguire con facilità migliaia di attività di qualsiasi scala, utilizzando le istanze Spot di Amazon EC2 ed EC2 e AWS Fargate. Basta definire e inoltrare le tue attività in batch in una coda. In risposta, AWS Batch sceglie dove eseguire le attività, lanciando capacità AWS aggiuntiva, se necessario. AWS Batch monitora l'avanzamento dei processi. Quando la capacità non è più necessaria, AWS Batch la rimuove. Inoltre, AWS Batch offre la possibilità di inviare attività che fanno parte di una pipeline o di un flusso di lavoro, così puoi indicare eventuali interdipendenze esistenti tra le attività al momento dell'invio.

D: Quali tipi di attività in batch sono supportate da AWS Batch?
AWS Batch supporta qualsiasi processo che possa essere eseguito come container Docker. I requisiti di memoria e il numero di vCPU dipenderanno dal singolo processo.  

D: Cos'è una risorsa di calcolo?
Una risorsa di calcolo AWS Batch è un'istanza EC2 o una risorsa di calcolo AWS Fargate.

D: Che cos'è un ambiente di calcolo?
Un ambiente di calcolo AWS Batch è una raccolta di risorse di calcolo su cui sono eseguite delle attività. AWS Batch supporta due tipi di ambienti di calcolo: gli ambienti di calcolo gestiti, con provisioning e gestione di AWS, e gli ambienti di calcolo non gestiti, con gestione da parte dei clienti. Gli ambienti di calcolo non gestiti forniscono un meccanismo per sfruttare risorse specializzate come host dedicati, configurazioni di archiviazione più grandi e Amazon EFS.

D: Che cos'è una definizione di attività?
Una definizione di attività descrive il processo da eseguire, i parametri, le variabili ambientali, i requisiti di calcolo e altre informazioni utilizzate per ottimizzare l'esecuzione di un processo. Le definizioni attività sono definite prima dell'invio di un'attività e possono essere condivise con altri.

D: Che cos'è l'agente di Amazon ECS e come viene utilizzato da AWS Batch?
AWS Batch utilizza Amazon ECS per eseguire attività nei contenitori e, pertanto, richiede l'installazione dell'agente ECS sulle risorse di calcolo all'interno degli ambienti di calcolo di AWS Batch. L'agente ECS è preinstallato negli ambienti di calcolo gestiti.

D: In che modo AWS Batch facilita l'utilizzo di istanze Spot?
Gli ambienti di calcolo di AWS Batch possono essere composti da istanze Spot EC2. Al momento della creazione di un ambiente di calcolo gestito, semplicemente specifica che vorresti utilizzare istanze Spot EC2 e indica la percentuale dei prezzi on demand che sei disposto a pagare e AWS Batch si occuperà di tutto il resto. Gli ambienti di calcolo non gestiti possono anche includere istanze Spot lanciate da te, incluse quelle avviate dal serie di istanze Spot EC2.

Prezzi

D: Quanto costa AWS Batch?
Non sono previsti costi aggiuntivi per l'utilizzo di AWS Batch. I prezzi sono calcolati in base alle risorse AWS, ad esempio istanze EC2 o AWS Fargate, che vengono create per memorizzare e gestire le attività in batch.

Pianificazione GPU

D: Posso utilizzare degli acceleratori con AWS Batch?
Sì, puoi utilizzare Batch per specificare il numero e il tipo di acceleratori che i tuoi lavori richiedono come variabili di input della definizione di lavoro, insieme alle opzioni correnti di vCPU e memoria. AWS Batch ridimensiona le istanze adatte ai tuoi lavori in base agli acceleratori richiesti e isola gli acceleratori in base alle esigenze di ciascun lavoro, affinché solo i contenitori corretti possano accedervi.

D: Perché dovrei utilizzare degli acceleratori con AWS Batch?
L'uso di acceleratori con Batch ti consente di pianificare in modo dinamico e di eseguire il provisioning dei tuoi lavori in base alle loro esigenze di accelerazione; Batch assicura infatti che venga riservato il numero corretto di acceleratori a fronte dei lavori esistenti. Batch aumenta le istanze di elaborazione accelerata EC2 quando servono e le riduce al termine, consentendoti di concentrarti sulle tue applicazioni. Batch dispone dell'integrazione nativa con le istanze Spot EC2, vale a dire che i lavori accelerati possono sfruttare fino al 90% dei risparmi quando si utilizzano istanze di elaborazione accelerata.

D: Che acceleratori posso utilizzare con AWS Batch?
Attualmente puoi utilizzare i GPU sulle istanze accelerate P e G.
 
D: Come posso inoltrare a Batch i lavori che richiedono istanze accelerate?
Puoi specificare il numero e il tipo di acceleratori nella definizione del lavoro. Per specificare l'acceleratore, occorre descriverne il tipo (ad es. GPU, attualmente l'unico acceleratore supportato) e il numero di quel tipo che il lavoro richiede. Il tipo di acceleratore specificato deve essere presente in uno dei tipi di istanza specificati nel tuo ambiente informatico. Ad esempio, se al tuo lavoro servono 2 GPU, assicurati anche di avere specificato un'istanza della famiglia P nel tuo ambiente informatico.

Dall'API:
{
"containerProperties": {
"vcpus": 1,
"image": "nvidia/cuda:9.0-base",
"memory": 2048,
"resourceRequirements" : [
{
"type" : "GPU",
"value" : "1"
}
],

D: È possibile sovrascrivere le variabili acceleratore nella definizione del lavoro al momento dell'invio del lavoro?
Analogamente a quanto accade con vCPU e requisiti di memoria, puoi sovrascrivere il numero e il tipo degli acceleratori al momento dell'invio del lavoro.

D: È possibile utilizzare le istanze con accelerazione per i lavori che non richiedono acceleratori?
Con il comportamento attuale, Batch evita di pianificare ove possibile i lavori che non richiedono accelerazione su istanze accelerate. Ciò avviene per evitare i casi in cui lavori di lunga durata occupano l'istanza con accelerazione senza sfruttare l'acceleratore, causando così un incremento dei costi. In alcuni rari casi, con prezzi Spot e istanze con accelerazione come tipi consentiti, è possibile che Batch stabilisca che un'istanza accelerata sia il metodo meno costoso per eseguire i lavori, a prescindere dalle esigenze di accelerazione.

Se si invia un lavoro a un CE che consente a Batch di avviare unicamente le istanze con accelerazione, Batch esegue i lavori su quelle istanze, a prescindere dalle loro esigenze di accelerazione.

D: In che modo Batch utilizza l'AMI ECS ottimizzata per GPU?
Da questo momento in poi, le istanze di tipo p si avviano di default con l'AMI ECS ottimizzata per GPU. Questa AMI contiene librerie e runtime necessari per eseguire le applicazioni basate su GPU. Puoi sempre puntare a un'AMI personalizzata secondo esigenza durante la creazione di un CE.

Nozioni di base

D: Come si inizia a usarlo?
Per iniziare, segui la Guida alle operazioni di base nella nostra documentazione.

D: Quale provisioning devo effettuare per iniziare?
Non è necessario effettuare il lancio manuale delle tue risorse di calcolo personali per iniziare. La console Web AWS Batch ti guida lungo il processo di creazione del tuo primo ambiente di calcolo e coda di attività, in modo da permetterti di inviare la tua prima attività. Le risorse all'interno del tuo ambiente di calcolo aumenteranno man mano che attività aggiuntive sono pronte per l'esecuzione e si ridurranno di pari passo con il diminuire del numero di attività eseguibili.

Ulteriori informazioni su quando utilizzare AWS Batch

Consulta la pagina sui casi d'uso
Tutto pronto per cominciare?
Inizia a usare AWS Batch
Hai altre domande?
Contattaci