Intervista a Marco Aldinucci, coordinatore dell’High-Performance Centre for Artificial Intelligence (HPC4AI) dell’Università di Torino e co-leader dello Spoke 1 di ICSC, dedicato all’High Performance Computing (HPC) e ai Big Data
Di che cosa parliamo quando facciamo riferimento a HPC?
High Performance Computing significa usare una potenza di calcolo molto elevata per risolvere un problema più velocemente o per risolvere un problema più grande rispetto a quello di partenza nello stesso tempo. Nel primo caso, l’HPC entra in gioco per risolvere problemi scientifici o industriali in cui il valore dell’informazione degrada col tempo. Ne sono un esempio le previsioni meteorologiche o le simulazioni di fenomeni naturali che abilitano scenari operativi, la chimica farmaceutica e la scienza dei materiali, in cui la complessità del calcolo è enorme e occorre completare l’analisi in tempo ragionevole. Nel secondo caso, invece, l’HPC consente di risolvere problemi in cui la griglia di calcolo è resa più fitta, per cui aumenta il numero di calcoli e la dimensione del problema. Rimanendo sulle previsioni meteorologiche, potrei aver bisogno di passare da una griglia di 1 km per 1 km a una griglia di 100 metri per 100 metri o di 1 metro per 1 metro, perché magari devo prevedere una bomba d’acqua o se un’auto a guida autonoma troverà ghiaccio a un determinato incrocio. Oppure, guardando all’Intelligenza Artificiale (IA), potrei voler aumentare il numero di parametri del mio Large Language Model (LLM) per renderlo capace di affrontare problemi più complessi, e quindi passare dalla traduzione di un testo al ragionamento, al capire l’ironia. Per farlo avrò bisogno di un modello più grande: dovrò passare da 7 a 70, o addirittura a 700 miliardi di parametri, che vuol dire una matrice con 700 miliardi di celle, una crescita non lineare in termini di tempo di calcolo (la complessità dell’operazione base, la moltiplicazione di matrici dense, è cubica), e una moltiplicazione dello spazio occupato. Se infatti per il modello base di computer, il laptop, la potenza si ottiene attraverso miniaturizzazione, nel caso di un computer che sia un milione di volte più potente di un laptop, non disponiamo di una tecnologia in grado di miniaturizzare un milione di volte in più. Allora, per ovviare al problema, poniamo uno di fianco all’altro tanti sistemi, fino a occupare un’area pari a un campo di calcio. A volte, scherzando, quando qualcuno mi chiede che cos’è HPC, rispondo “se si vede dal satellite è HPC”, ma potrei dire anche “se consuma più di 1 megawatt è HPC”. Insomma, è una roba grossa, e anche energivora.
E invece quando si parla di Big Data che cosa si intende?
Inizierei da quello che non sono, e cioè Big Data non significa solo “tanti dati”. Big Data significa raccogliere, gestire ed estrarre conoscenza da insiemi di dati caratterizzati dalle cosiddette “5V” (Volume, Velocità, Varietà, Veridicità e Valore) utilizzando algoritmi distribuiti; compiti che sarebbero impossibili se affrontati con metodi d’analisi tradizionali e sistemi di calcolo non scalabili. Ovviamente, c’è il tema della quantità dei dati, perché più ne ho e più posso, forse, estrarne buona conoscenza, ma è anche una questione di estrazione. C’è una famosa leggenda, mai dimostrata con dati reali, che viene spesso usata come aneddoto per illustrare le correlazioni nascoste scoperte dai Big Data: sei a fare la spesa e il supermercato ti propone di fare la tessera per accedere agli sconti. In cambio, registra le tue abitudini di acquisto, ti profila, e usa poi questa profilazione per disporre i prodotti sugli scaffali. Posiziona allora la birra accanto ai pannolini. È chiaro che i bambini non bevono birra, ma gli adulti con bambini escono meno, e quindi comprano birra da consumare a casa. Questa correlazione, difficilmente estraibile in forma statistica in quanto accomuna oggetti apparentemente incompatibili tra loro, è ciò di cui si occupano i Big Data. Oggi le IA moderne — le reti neurali, il machine learning (ML) — si integrano bene con le tecniche Big Data e ne amplificano l’efficacia su task come classificazione, segmentazione, clustering di testo e immagini. Le due aree a partire dal 2017 si sono un po’ fuse; in quel periodo si è passati dal progettare soluzioni di IA per problemi specifici di tipo Big Data, a modelli più generici, universali, dotati di una pluralità di funzioni. Si sono affermati modelli di IA detti “fondazionali”, i Large Language Model come ChatGPT, sia specializzabili in task statistici, sia capaci di task generativi, e dunque di una potenza maggiore rispetto agli algoritmi Big Data.
In questo vasto panorama, lo Spoke 1 di ICSC, di cui sei co-leader, dove si colloca?
Dunque, ICSC ha 10 Spoke. Otto guardano alle applicazioni del calcolo, dalla fisica delle alte energie alla medicina, mentre due — detti tecnologici o metodologici — guardano al calcolo come strumento: il calcolo tradizionale nel caso dello Spoke 1, il quantum computing nel caso dello Spoke 10. Lo Spoke 1, nello specifico, si occupa di efficientare gli strumenti di calcolo necessari per progettare ed eseguire le applicazioni sia lato hardware (quindi processori, sistemi, macchine, memorie), sia lato software (software a basso livello come i driver e i sistemi operativi, strumenti di sviluppo come compilatori e librerie, strumenti per la progettazione delle applicazioni). Questo approccio, cosiddetto di co-design o co-progettazione, — e introdotto dagli americani più di 10 anni fa nell’ambito dell’Exascale Computing Program — permette di lavorare senza che il software debba inseguire l’hardware, o viceversa, ma si limita a produrre dei prototipi, cui non sempre seguono dei follow-up industriali. Trasformare la ricerca in innovazione industriale significa infatti garantire alle aziende la possibilità di preservare gli investimenti negli anni, senza dover riprogettare le proprie soluzioni a ogni avanzamento tecnologico. Noi dello Spoke 1 ci stiamo impegnando in questo senso, adottando metodi e tecnologie specifiche che garantiscono la portabilità delle applicazioni su diverse generazioni di supercomputer, e che consentono di ridurre tempi e costi di sviluppo e di ottimizzare delle applicazioni.
Lo Spoke 1 ha già prodotto prototipi che hanno avuto, o stanno avendo, un impatto industriale?
Lo Spoke 1 ha prodotto la prima versione al mondo di Pytorch per RISC-V. Pytorch è lo strumento di programmazione di gran lunga più usato per l’IA, e RISC-V è la nuova scommessa nell’ambito dei processori. RISC-V è un’architettura hardware libera, modulare ed estendibile per processori, progettata per essere semplice, efficiente e adatta a molteplici applicazioni, dai microcontrollori ai supercomputer. La sua estendibilità permette di produrre processori efficaci ed energicamente efficienti anche per applicazioni di grande interesse commerciale, come l’inferenza di modelli di IA. L’indipendenza da licenze che proteggono il linguaggio macchina lo rendono adatto ad affrontare le sfide della sovranità tecnologica (per esempio di Europa e Cina): chiunque voglia può — se ne è capace — sviluppare il proprio processore RISC-V senza chiedere la licenza a AMD o ARM; una licenza che spesso viene negata per motivi geopolitici. Per Pytorch, siamo partiti da un hardware sperimentale per approdare a un software sperimentale, ma sarebbe importante anche riuscire a fare il contrario, andare da un software sperimentale a un hardware sperimentale. È più complesso, perché fare i test con l’hardware ha dei costi molto diversi, ma abbiamo ottenuto un finanziamento per farlo, grazie al progetto europeo DARE (Digital Autonomy with RISC-V in Europe) da 240 milioni di euro. Sotto il coordinamento di ICSC, diverse università ed enti di ricerca italiani, fra cui l’INFN, aderiscono al progetto con l’obiettivo di progettare nuovi processori, anche sfruttando le conoscenze sui software che girano sui processori attuali.
Qual è il vantaggio nel procedere dal software all’hardware?
Procedendo in questa direzione, è possibile progettare l’hardware così che l’utilizzo del software risulti più efficiente o meno energivoro, o entrambe le cose. Per esempio, i processori nel calcolo scientifico normalmente fanno i calcoli a 64 bit di precisione, talvolta 32 bit. Le applicazioni di intelligenza artificiale oggi possono fare calcoli anche utilizzando 16 bit, 8 bit, 4 bit. Specializzando l’hardware per processi di inferenza a bassa precisione per l’intelligenza artificiale, e quindi riducendo la precisione dell’hardware da 64 bit a 4 bit, si riduce l’energia e la velocità di un fattore gigante, ottenendo un guadagno in prestazioni di oltre 200 volte con lo stesso numero di transistor. Dal punto di vista metodologico, il tentativo è quello di passare da un oggetto calcolatore general purpose a una collezione di oggetti che sono specializzati per un certo tipo di calcolo. La Spoke 1, nell’ambito del progetto DARE, utilizza a questo scopo la tecnologia dei chiplet, che sostituisce a un grande chip tanti chip più piccoli, progettati e realizzati separatamente con funzioni diverse, e poi stampati insieme. Il singolo chip si attiva in modo efficiente e veloce quando richiesto, e rimane spento, evitando di consumare corrente, quando non c’è bisogno della sua funzione. La corrente rappresenta un problema enorme per il calcolo, perché si trasforma in calore in funzione della frequenza: più si vuole essere veloci, più la frequenza è alta e più si produce calore, che non riusciamo a dissipare. Oggi un chip di intelligenza artificiale consuma intorno a 1 kW e la densità di calore si aggira tra i 70 e gli 80 watt per centimetro quadrato, quando a 110 watt per centimetro quadrato ci sono i nuclei dei reattori nucleari (da 80 a 150 W/cm² nei nuclei di combustibile per reattori PRW). Tutti gli studi che abbiamo indicano una crescita costante, per cui immaginiamo di arrivare a 5 kW per chip nell’arco di qualche anno. Se non risolviamo la questione della dissipazione del calore, questi oggetti incominciano a deteriorare e a funzionare male.
Oltre alla specializzazione in sottoparti, state testando altre strategie per la dissipazione del calore?
Ne stiamo testando diverse, tutte con lo stesso obiettivo: portare via tanto calore in modo efficiente da una superficie piccola. Con l’aria oggi non si riesce, perché non c’è uno scambio termico sufficiente. La tecnologia più utilizzata è piuttosto quella dell’acqua: l’acqua viene condotta con dei tubi in una piastra, che è a contatto con il processore, e porta via il calore per contatto. È una strategia che funziona, ma che ha dei limiti. Più è il calore da dissipare, maggiore è la quantità di acqua da far scorrere nei tubi, per cui aumenta la pressione, c’è il rischio che il fluido diventi turbolento, e si ha bisogno di tubi di derivazione aeronautica, molto resistenti. Qualora poi uno dei tubi si rompesse, l’acqua finirebbe dove passa l’elettricità, ed è un rischio molto alto da correre. Abbiamo quindi sperimentato un’altra soluzione, che consiste nell’utilizzare l’evaporazione al posto del contatto. C’è un fluido — isolante, dielettrico e innocuo — che, passando sopra al calore, evapora. L’evaporazione è molto più efficiente del contatto per dissipare calore e, in più, non mette in pericolo i circuiti elettrici nel caso in cui un tubo si rompa. Anche la pressione è minore: è sufficiente una pompa da pochi euro per mandare il fluido in circolo. Questo meccanismo, chiamato two-phase cooling (perché il liquido cambia fase due volte, passa da liquido a gas, e poi viene ricondensato), è circa quaranta volte più efficiente dell’aria. Ovviamente, non è quaranta volte più efficiente dell’acqua, perché l’acqua è piuttosto efficiente, ma si tratta di una sperimentazione interessante, anche dal punto di vista impiantistico. Un’altra possibilità è offerta dal ciclo dell’ammoniaca, l’adsorbimento. Si usa il calore per convincere un composto chimico a cristallizzarsi. La formazione di cristalli consuma calore, e dunque si abbassa la temperatura. Ora, come Università di Torino stiamo lavorando, in collaborazione con lo Spoke 1, a una serie di sperimentazioni di più ampio respiro. Stiamo infatti costruendo un nuovo data center nel campus dell’Università di Torino, dove vogliamo sperimentare l’alimentazione a energie rinnovabili con i sistemi di stoccaggio dell’idrogeno. Gli impianti a idrogeno funzionano come una batteria: quando c’è troppa energia trasformano l’acqua in idrogeno e quando ce n’è poca trasformano l’idrogeno in corrente. Sappiamo che l’idrogeno ha un’efficienza più bassa delle batterie chimiche, ma presenta dei vantaggi, e in più nessuno l’ha ancora sperimentato sui data center.
L’Italia come si posiziona rispetto al resto d’Europa in questo ambito?
L’Italia è certamente tra i principali Paesi che si stanno dedicando a queste tecnologie, ma la scienza dovrà trovare l’appoggio dell’industria. Siamo pieni di storie in cui la ricerca italiana non ha avuto eco industriale e, curiosamente, pur essendo gli ideatori delle tecnologie tutti italiani, non siamo proprietari di nulla. Il microprocessore, per esempio, è stato inventato dal vicentino Federico Faggin, e le due società al mondo che fanno strumenti per progettare quasi il 100% dei processori sono state fondate entrambe da Alberto Sangiovanni Vincentelli, milanese in California. Adesso, con il progetto DARE — che sta trovando l’appoggio finanziario di una società europea — abbiamo una nuova opportunità: dare vita in Europa a una filiera per la progettazione e la produzione di processori ad alte prestazioni, che ad oggi manca, e la cui assenza ci pone nella situazione di dover dipendere dagli Stati Uniti. Rispetto alle tecnologie statunitensi, RISC-V presenta un grande vantaggio: nasce con l’idea di essere open source, e non solo concede agli utenti l’uso libero ma dà anche loro la possibilità di intervenire sulla progettazione, aggiungendo istruzioni specifiche per le proprie esigenze. E questo apre la strada agli investimenti, che non richiedono più un impegno economico insormontabile. C’è poi Leonardo, il supercomputer di Cineca ospitato al Tecnopolo DAMA a Bologna, che non è la macchina calcolatrice più potente in Europa, ma è la più richiesta dai gruppi di ricerca. Per quale ragione? Perché lo Spoke 1 non si limita a progettare processori, ma offre agli utenti un ecosistema funzionante di servizi per utilizzarli, di sistemi di automazione che semplificano loro la vita. Perciò alla tua domanda se l’Italia è attiva ed efficace, rispondo che sì, siamo effettivi, come confermano i dati sull’utilizzo di Leonardo. Ci manca soltanto la proiezione industriale, a cui stiamo lavorando, cercando di rendere più facili da sviluppare e resistenti al tempo — quindi meno costose — le applicazioni HPC.
Che cosa c’è nel futuro del supercalcolo in Italia?
C’è la speranza di investire autonomamente sulla parte software, e di aggregarci con altri player europei per affrontare la parte hardware, magari con il sostegno di una policy a livello europeo che agevoli gli investimenti in questa direzione. Però partire dal software è imprescindibile. Immagina di cambiare il cellulare, e di optare per un oggetto con un processore diverso. Ci fai caso? Non proprio. Ma nel momento in cui lo accendi e scopri che a questo nuovo hardware corrisponde un nuovo ecosistema digitale, difficile da navigare o che non offre quello a cui sei abituato, pensi subito di fare un passo indietro, di tornare al vecchio hardware. Nell’ambito dell’intelligenza artificiale e del calcolo scientifico, per esempio, le cosiddette GPU hanno rappresentato la chiave di volta della rivoluzione delle IA, perché sono acceleratori in grado di risolvere un problema molto specifico, ovvero fare calcoli ad alta densità, tipicamente di algebra lineare. NVIDIA non è l’unica azienda che produce questi oggetti — li fanno anche Intel o AMD — ma tutti si affidano a quelli di NVIDIA, perché NVIDIA ha investito, fin da subito, nel rendere i propri prodotti facili da usare e ben integrati negli ecosistemi software. Dunque, è a questi che bisogna guardare nell’immediato, anche in prospettiva degli obiettivi a lunghissimo termine: la sovranità tecnologica europea sui processori e il risparmio energetico. Quella dell’energia rappresenta la prossima grande sfida. Abbiamo l’opportunità in questo campo di fare un balzo, anche alla luce dei recenti sviluppi negli Stati Uniti, dove per ordine governativo sono stati chiusi tutti i progetti e bloccati tutti i finanziamenti sul risparmio energetico. L’Università di Torino è già molto attiva sulla questione. Grazie a un investimento di circa 5 milioni di euro, il data center HPC4AI dell’Università ha raggiunto un’efficienza del 92% — di contro alla media nazionale del 65% — ed è stato premiato qualche anno fa tra i data center più green d’Italia. L’obiettivo, naturalmente, è di arrivare più in alto, vicini al 100% di efficienza, e con la riprogettazione del centro vogliamo lavorare sugli aspetti energetici a vari livelli. Dal punto di vista architettonico, per esempio, stiamo puntando sui materiali riciclati o sul riuso dei materiali piuttosto che la loro dismissione, e in generale vorremmo poter misurare l’impatto globale della struttura e delle sue attività. Abbiamo bisogno di quantificare la nostra impronta ecologica, per porci obiettivi realistici e ad ambizione crescente.
BIO
Marco Aldinucci è professore ordinario di Informatica e coordinatore del gruppo di ricerca sul Calcolo Parallelo presso l’Università di Torino. Ha fondato il laboratorio HPC4AI@UNITO e il laboratorio nazionale HPC del consorzio CINI di cui è direttore. È co-leader dello Spoke 1 del Centro Nazionale di Ricerca in High Performance Computing, Big Data e Quantum Computing (ICSC), dedicato allo sviluppo di tecnologie altamente innovative, sia hardware sia software, per i supercalcolatori e i sistemi di calcolo del futuro.