Skip to main content
Sta arrivando un container carico di...
Sta arrivando un container carico di...

Sta arrivando un container carico di...

| Giuseppe Attardi | La nuvola della ricerca e istruzione

Articolo letto 4280 volte

Presto a disposizione degli utenti dell’università e della ricerca la nuova piattaforma cloud container

È stata installata e testata e sarà presto aperta agli utenti la nuova piattaforma di cloud container, che va ad affiancare l’offerta di cloud computing tradizionale, basato su macchine virtuali. Nel mondo delle cloud pubbliche commerciali in molti stanno investendo sulla tecnologia container, ma in ambito accademico e nella ricerca questo tipo di piattaforma non ha ancora preso piede.

Giuseppe AttardiGiuseppe Attardi
Coordinatore Dipartimento Calcolo e Storage Distribuito
Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

Eppure, i container presentano alcune interessanti caratteristiche che li rendono particolarmente appetibili per alcuni tipi di applicazioni scientifiche: vediamo di cosa si tratta.

Le caratteristiche e i benefici

Rispetto al cloud tradizionale, la tecnologia dei container propone un approccio più agile alla virtualizzazione, che avviene a un livello superiore: in pratica, mentre una macchina virtuale astrae l’hardware, un container astrae il sistema operativo. All’interno di un container si possono installare pacchetti software completamente autonomi e isolati gli uni dagli altri, che contengono ciascuno i propri elementi necessari per girare: codice, runtime, tool e librerie di sistema, impostazioni. Con i container, le applicazioni condividono il sistema operativo, e in particolare il kernel, i file di sistema e i driver di rete e dei dischi. Non dovendo inglobare tutte le funzioni di un server, i container sono molto più leggeri delle macchine virtuali, richiedono poche risorse di CPU e possono essere attivati in pochi istanti (parliamo di un ordine di decine di secondi, contro i minuti di una macchina virtuale). Uno svantaggio è che tutte le applicazioni di un container vanno scritte per lo stesso sistema operativo, dato che lo condividono: ma, se sono costruite a partire da codice portabile, ciò non pone grandi limitazioni.

Sulla piattaforma di container GARR è possibile ottenere livelli molto elevati di automazione nel dispiego di applicazioni basate su container, aggiungendo o togliendo container per assecondare dinamicamente le variazioni di carico delle applicazioni: una volta sviluppata (o, nel caso di applicazioni legacy, portata) l’applicazione su container, è infatti il sistema di orchestrazione ad occuparsi sia del suo deployment sulla piattaforma, che di dimensionare le istanze in modo dinamico, in maniera completamente automatica. In questo modo l’applicazione, scalando e modulando le risorse necessarie, assorbe le fluttuazioni nel suo utilizzo, senza dover occupare costantemente la quantità di risorse necessarie a coprirne i picchi massimi d’uso.

LA TECNOLOGIA DEI CONTAINER PROPONE UN APPROCCIO PIÙ AGILE ALLA VIRTUALIZZAZIONE, CHE AVVIENE A LIVELLO DI SISTEMA OPERATIVO

La realizzazione

Per gestire l’automazione delle applicazioni su container, la piattaforma GARR utilizza Kubernetes, lo strumento più diffuso per l’automazione del dispiegamento di container. Ma la stessa piattaforma è a sua volta un servizio complesso, che comprende una serie di altri servizi ancillari oltre a Kubernetes.

Per gestirne installazione e configurazione abbiamo sfruttato gli stessi strumenti di automazione che usiamo per gestire la cloud, ossia MaaS e Juju. MaaS (Metal as a Service) rende disponibili i server virtuali sui quali realizzare i container; a sua volta Juju installa in maniera automatica e scalabile i componenti della piattaforma, ad esempio il nodo master o i nodi worker dove Kubernetes poi installerà i container. Grazie a Juju possiamo variare facilmente le configurazioni della piattaforma, facendola scalare a seconda delle esigenze, ad esempio aumentando il numero di nodi worker a disposizione di Kubernetes.

Ci sono due possibili architetture per una piattaforma di container: la prima e più diffusa la realizza come un ulteriore strato di virtualizzazione, sopra a quello delle macchine virtuali (nel nostro caso OpenStack); l’altra, più complessa dal punto di vista della realizzazione, ma in grado di offrire prestazioni migliori, ne prevede la realizzazione direttamente al di sopra del livello bare metal. È quest’ultima la via che abbiamo sperimentato a GARR.
Questo approccio ha l’altro importante vantaggio di offrire accesso diretto alle interfacce di dispositivi particolari, quali ad esempio le GPU (Graphics Processing Unit o processori grafici), che non possono essere condivise con la virtualizzazione tradizionale.

HPC in tasca

Le GPU sono processori specializzati nati per l’elaborazione e il rendering di immagini grafiche, che sono molto più veloci delle CPU nell’esecuzione parallela su grandi blocchi di dati, in particolare per il calcolo tensoriale.
Da un sondaggio svolto recentemente all’interno della comunità degli utilizzatori del cloud GARR, è emerso un elevato interesse per la disponibilità di GPU in modalità cloud. Le GPU sono infatti risorse costose e di non facilissima gestione, motivo per cui non tutti i gruppi di ricerca possono permettersele; d’altra parte, esse offrono un’efficienza di calcolo comparabile con l’HPC (parliamo di almeno 2 ordini di grandezza in più rispetto ai processori tradizionali). Per questa ragione, avere la possibilità di utilizzare le GPU in ambiente accademico può fare la differenza necessaria a restare al passo con la ricerca di punta a livello internazionale: è quasi impossibile competere con chi può svolgere 100 simulazioni nel tempo in cui un ricercatore riesce a completarne una sola.

LA NOSTRA PIATTAFORMA CONTAINER HA IL VANTAGGIO DI OFFRIRE ACCESSO DIRETTO AI PROCESSORI GRAFICI (GPU)

Le GPU consentono infatti di ottenere prestazioni paragonabili ai sistemi HPC in termini di GFLOPS, ma con costi più bassi e un’efficacia superiore in alcuni tipi di applicazioni. Alcune GPU dispongono di aritmetica in half precision cioè con numeri a 16 bit piuttosto che a 64 (double precision) come è tipico per le applicazioni HPC classiche. Con tale modalità si aumentano la velocità di calcolo e la quantità di dati caricabile nelle memoria locale della GPU e si riduce il consumo energetico, guadagnando quindi in efficienza, efficacia, energia (EEE). Le applicazioni che svolgono calcoli di tipo statistico e che non hanno necessità di livelli di precisione particolarmente elevati beneficiano delle velocità maggiori che si possono ottenere maneggiando numeri a 16 bit.

L’APPROCCIO CHE ABBIAMO SCELTO CREA VALORE AGGIUNTO AL LAVORO DELLA COMUNITÀ GARR

Ciò vale in particolare per le applicazioni di machine learning, per le quali lo sfruttamento delle GPU è grandemente agevolato dalla disponibilità di una serie di librerie pronte per l’uso su GPU. Questo consente di avvicinare all’uso di tecniche di calcolo parallelo un pubblico molto più ampio di ricercatori, che finora erano ostacolati dalla difficoltà di scrivere codice in grado di sfruttare il parallelismo. Le tecniche di deep learning possono infatti essere utilizzate in una vasta gamma di applicazioni e in molti casi possono diventare un nuovo paradigma di programmazione a spettro molto ampio. La piattaforma di cloud container GARR metterà a disposizione le più diffuse librerie di machine learning, in versione container, agevolandone l’utilizzo da parte dei ricercatori italiani.

Più potenza per deep learning e Big Data

Le applicazioni che hanno maggiormente beneficiato dell’utilizzo delle GPU sono quelle basate sul deep learning, che negli ultimi dieci anni hanno avuto una esplosione di risultati sorprendenti nei campi dell’elaborazione di immagini, giochi strategici, robotica, guida automatica, riconoscimento e sintesi vocale, traduzione automatica e comprensione del linguaggio, e in generale dell’intelligenza artificiale, potendo sfruttare le capacità di calcolo per elaborare grandi quantità di dati di apprendimento. In molti settori queste applicazioni hanno raggiunto un notevole grado di maturità e un’accuratezza almeno comparabile con quella degli esperti umani, come nel caso della diagnostica medica a partire da radiografie, immagini di TAC e risonanza magnetica o tracciati EEG.

Il valore della comunità

Per le applicazioni di machine learning sono fondamentali i dataset annotati per l’apprendimento e i modelli che se ne ricavano. Un’idea per la nuova piattaforma container GARR è quella di permettere ai ricercatori di accedere gratuitamente alle risorse in cambio della condivisione di dati e modelli che possano essere utilizzati liberamente come punto di partenza da altri membri della comunità scientifica. L’accesso a queste risorse condivise rappresenterebbe un grande valore aggiunto sia per chi si approcci per la prima volta a questo ambiente, che potrebbe così orientarsi e non partire da zero, sia per tutti coloro che lavorano a problemi simili, che in questo modo non si troverebbero a dover “reinventare la ruota” decine di volte. Ma questo approccio ha anche un altro vantaggio, forse ancora più importante, cioè di incentivare la diffusione dei risultati di ricerche e sperimentazioni in questo settore anche tra gruppi e domini diversi e valorizzare, anche attraverso il riuso e il miglioramento delle soluzioni realizzate, l’operato della comunità scientifica, rendendola protagonista dello sviluppo di questa nuova corrente dell’intelligenza artificiale e non solo utente di soluzioni realizzate da altri.

Il servizio

Come abbiamo accennato, piattaforme a container si stanno diffondendo sulle maggiori cloud pubbliche ma non sono ancora approdate nel mondo accademico: anche se non manca qualche gruppo di ricerca che ha fatto da apripista, si tratta perlopiù di esperienze limitate a uno specifico progetto o sperimentazione; non esistono ancora servizi di questo tipo dedicati alla comunità scientifica e accademica, ma sappiamo che varie reti della ricerca si stanno muovendo in questa direzione. GARR è partito presto e oggi abbiamo un prototipo perfettamente funzionante, per cui possiamo prevedere la partenza di un vero e proprio servizio già nei primi mesi del 2018. La prima macchina con GPU è stata già installata e verrà integrata nella piattaforma nei prossimi mesi.

Ti è piaciuto questo articolo? Faccelo sapere!
Dai un voto da 1 a 5, ne terremo conto per scrivere i prossimi articoli.

Voto attuale:

Ultimi articoli in rubrica