
Il progetto ANDREAS si inserisce nell’ambito di TETRAMAX, all’interno del progetto di Smart Anything Everywhere (SAE), che si occupa di calcolo a basso consumo energetico per i Cyber Physical Systems e l’Internet of Things. E4 è protagonista del progetto insieme al Politecnico di Milano e all’azienda polacca 7bulls.
ANDREAS (Artificial intelligence traiNing scheDuler foR accElerAted resource clusterS) mira a soddisfare due esigenze chiave del mercato: efficienza nell’uso delle risorse ad alto valore computazionale (GPU, FPGA) e riduzione del consumo di energia necessario per completare l’elaborazione richiesta (Energy to Solution). Oggi, l‘Intelligenza Artificiale (AI) e il Deep Learning (DL) vengono utilizzati per una vasta gamma di applicazioni e sono supportati da diverse piattaforme hardware e software, basate su GPU e FPGA. L’utilizzo ampio e sempre più sofisticato dei modelli di Intelligenza Artificiale crea la necessità di miglioramenti nella gestione del footprint energetico, durante le operazioni di training e retraining, e per diverse tipologie di deployment: dai sistemi on-premises, alle infrastrutture di medie dimensioni (come gli operatori cloud Europei e i grossi centri HPC), ai grandi fornitori di sistemi edge/fog.
ANDREAS consente di ridurre i costi operativi dei carichi di lavoro di tipo DL/AI eseguiti nell’infrastruttura ibrida (basata su GPU) tramite:
• L’ “Advance Planning” delle risorse attraverso efficaci algoritmi di job scheduling
• L’interazione in tempo reale tra l’advance planning e le risorse disponibili
• La valutazione online e in tempo reale della strategia ottimale di allocazione delle risorse
Oggi, i metodi di Intelligenza Artificiale e di Deep Learning vengono utilizzati su un’ampia gamma di prodotti. I modelli di DL sono addestrati su infrastrutture basate su sistemi eterogenei (cluster basati su GPU), raggiungendo una maggiore velocità, compresa tra 5 e 40 volte, rispetto ai server basati solo su CPU.
La capacità di ottimizzare l’uso dell’infrastruttura ed eseguire il carico di lavoro in modo efficiente e in condizioni di vincoli di alimentazione è fondamentale. Gli operatori locali/data center sono soggetti a quote di consumo energetico mentre i loro risultati economici dipendono fortemente dall’efficienza con cui viene utilizzata l’infrastruttura. Sebbene esistano soluzioni avanzate che consentono di gestire server o container virtuali, la crescita del Machine Learning su servers dotati di GPU rappresenta un’opportunità di business per gli operatori di cloud/data center, ma l’ottimizzazione dei ricavi richiede di mantenere il consumo energetico sotto quote rigide, massimizzando l’efficacia di asset di alto valore come i sistemi basati su GPU.
Il requisito di ottenere un consumo energetico inferiore e una migliore gestione dei costi è fondamentale per le PMI e le startup innovative che costruiscono il loro vantaggio competitivo sull’Intelligenza Artificiale/Machine Learning e devono adattarsi ai vincoli di potenza. Gli stessi requisiti di cui sopra si applicano alle entità che si basano su cloud privati per soddisfare le proprie esigenze.
La capacità di gestire l’impronta energetica in nuovi progetti infrastrutturali, come il calcolo distribuito fatto con le GPU, inserito in reti 5G, è fondamentale per le società di telecomunicazioni che possiedono la loro infrastruttura, per le società che gestiscono altre infrastrutture e per le PMI che forniscono soluzioni innovative.
In tutti i casi, la gestione dell’impronta energetica e l’ottimizzazione delle prestazioni sono di fondamentale importanza per limitare le emissioni di inquinanti e per sfruttare fonti di energia rinnovabile che impongono vincoli più severi.
Nonostante i chiari vantaggi dei cluster basati su GPU in termini di prestazioni, questi sistemi sono caratterizzati da costi elevati e un impatto energetico significativo: ad esempio, i server GPU di fascia alta come NVIDIA DGX-2 costano circa $400.000 con un consumo energetico non sempre proporzionale al carico di lavoro.
Per aumentare la possibilità di condividere risorse costose e specializzate, i datacenter stanno passando dalle tecnologie tradizionali (GPU installate localmente nei singoli server) verso un’architettura basata su software, su un paradigma intelligente e di autoapprendimento per l’allocazione delle risorse. In questo modo, l’utilizzo delle risorse può essere massimizzato assegnando la quantità adeguata di risorse a un numero maggiore di lavori di training remoti, riducendo al minimo il consumo di energia.
ANDREAS: caratteristiche del prodotto
ANDREAS rende disponibile una soluzione di pianificazione avanzata che ottimizza i carichi di lavoro di runtime dei training di Deep Learning e il loro consumo energetico nei cluster accelerati.
Come valore di riferimento, a seconda dei modelli di Deep Learning utilizzati, ci si aspetta un’accelerazione di 2x e un risparmio energetico del 50%.
ANDREAS risponde a 3 requisiti:
- ridurre il consumo energetico dei job di training Artificial Intelligence/Machine Learning inviati a un’infrastruttura accelerata da GPU;
- ridurre al minimo i tempi di elaborazione (Time to Solution) di questi job e dell’intero carico di lavoro
- ottimizzare l’efficienza complessiva dell’infrastruttura accelerata dalla GPU
Qual è l’Architettura di ANDREAS?
- un gestore di coda SLURM,
- un pool di servers dotati di GPU,
- un modulo intelligente che monitora il consumo energetico dell’applicazione ed elabora la previsione delle prestazioni in relazione al job scheduling.
Come viene utilizzato?
I job vengono inviati a SLURM e sono caratterizzati da una scadenza e una priorità (cioè un peso). Questi non vengono mai rifiutati e possono essere ritardati. L’obiettivo finale è ridurre al minimo il ritardo ponderato del job dato il budget di potenza stabilito dal SysAdmin.
Per sfruttare pienamente l’efficienza delle risorse, è incluso nel prodotto un sistema intelligente che orchestra le risorse con una visione globale. Questa “intelligenza” è fornita dal modello Machine Learning e dallo scheduler avanzato. Il primo viene continuamente addestrato durante l’esecuzione delle applicazioni e fornisce valutazioni per prevedere il tempo di esecuzione del lavoro e il consumo di energia. Quest’ultimo definisce quale deve essere l’allocazione congiunta della capacità (ovvero, quante GPU assegnare a un lavoro) e la pianificazione (ovvero, determina l’ordine di lavoro che porta a un utilizzo ottimale delle risorse) e decide quali risorse (server/GPU) utilizzare.
Qual è il ruolo di E4 nel progetto?
ANDREAS è uno strumento che, a fronte di un job che gli viene assegnato da un utente, fa una discovery dell’infrastruttura disponibile e la sua configurazione a livello di RAM, CPU, GPU e di tutte le altre componenti. Una volta fatta l’analisi delle risorse a sua disposizione e in funzione della ‘coda’ di attività, decide quante dedicarne a quel preciso job, in modo che questo esegua il suo compito nel minor tempo possibile e al minor consumo energetico.
ANDREAS è una struttura containerizzata, ogni container svolge delle funzioni precise. Esiste già al suo interno un container Docker, con tutte le librerie e i driver per gestire le CPU, fatto direttamente da ARM. Su tali librerie e driver E4 ha operato un ulteriore sviluppo, creando un container che ottimizzasse la gestione delle GPU.
A chi si rivolge ANDREAS?
ANDREAS si rivolge a tutti gli utenti di cluster basati su GPU, che eseguono modelli di training/ Deep Learning, e che possono ottenere vantaggi derivanti dall’ottimizzazione del Time-To-Solution e del consumo energetico in base alla variabilità del carico di lavoro.