Li chiamano supercomputer, da quasi un secolo assistono l’uomo nelle sue scoperte, capaci di cambiare il corso della scienza in ambiti fondamentali come la medicina, la biologia, la chimica, le applicazioni finanziarie e le simulazioni ingegneristiche più avanzate. Ma cosa sono davvero i supercomputer? Come funzionano e perché sanno rivelarsi decisivi a tal punto da attirare investimenti per decine di miliardi? Proveremo a dare una risposta ad ognuna di queste domande, ponendoci una riflessione necessaria relativa al futuro del supercomputing.
Un celebre spot televisivo con il leggendario Carl Lewis citava: “la potenza è nulla senza controllo”: la corsa verso l’era exascale, la prossima grande milestone dell’efficienza computazionale, deve necessariamente tenere conto di vari aspetti di gestione ed essere improntata per realizzare dei sistemi HPC (High Performance Computing) meno energivori e, in generale, più sostenibili dal punto di vista dello sfruttamento delle risorse necessarie per alimentare la loro incredibile potenza di calcolo. Vediamo pertanto quali sono gli aspetti tecnologici ed organizzativi che caratterizzano il mondo dei supercomputer, per comprendere la loro importanza e soprattutto per capire quali scoperte potranno supportare in un futuro sempre più prossimo.
Cosa sono i supercomputer
Per supercomputer si intendono i sistemi di elaborazione progettati per ottenere capacità di calcolo molto elevate, ai fini di eseguire operazioni matematiche ad altissime prestazioni. Spesso sono identificati anche come HPC (High Performance Computer).
In altri termini si tratta di sistemi storicamente dedicati allo svolgimento di operazioni legate al calcolo scientifico, le cui simulazioni complesse necessitano di numeri del tutto fuori della portata dei singoli personal computer.
Secondo tale definizione, potremmo fare addirittura risalire il primo supercomputer alla macchina analitica di Charles Babbage, che risale alla fine dell’Ottocento anche se, come vedremo, la concezione attuale di questi sistemi è ben più prossima ai nostri giorni, quando al fascino dei primi sistemi meccanici è subentrata l’elettronica e soprattutto una componente software in grado di gestire e interfacciare la potenza a disposizione con le varie applicazioni che la richiedono per portare a termine i loro processi di calcolo.
Ciò che distingue il semplice personal computer dal supercomputer non è soltanto l’ordine di grandezza della potenza di calcolo, totalmente sbilanciata a favore del secondo, ma tutta la filosofia alla base del loro sviluppo, a cominciare dall’architettura che li contraddistingue.
Il computer tradizionale è stato concepito per essere utilizzato da un utente per svolgere soprattutto operazioni di carattere generico, mentre il supercomputer nasce quale sistema destinato a rimanere confinato all’interno di un datacenter, con compiti ben specifici, che hanno consentito di verticalizzare anche in maniera estrema le configurazioni.
Il supercomputer è storicamente un sistema informatico caratterizzato dai costi estremamente elevati che, a dispetto della composizione modulare dei rack che contengono le varie unità computazionali, è spesso progettato e realizzato come un unicum, per svolgere un compito ben preciso nell’ambito del calcolo scientifico. Questo almeno fino agli anni Ottanta.
A partire dagli anni Novanta, complice il netto incremento in termini di performance dei microprocessori per computer, le distanze architetturali tra personal computer e supercomputer si sono ridotte.
Per ottenere sistemi HPC capaci di ottimizzare il rapporto tra prezzo e prestazioni si è progressivamente fatto ricorso alle tecnologie hardware più diffuse sul mercato, come vedremo nel corso dei successivi paragrafi.
A cosa servono
Sin dalla loro origine, i supercomputer hanno occupato la nicchia molto ben remunerata del calcolo scientifico, per supportare la computazione delle simulazioni complesse legate alla ricerca in vari settori, come la medicina, la fisica, l’astrofisica, la biologia, la chimica, la scienza dei materiali, la farmacologia, l’automotive, l’aerospace, la crittoanalisi, le applicazioni in ambito militare, nonché l’indagine climatica e la meteorologia, giusto per citare alcune tra le discipline in cui il ricorso ai sistemi HPC costituisce ormai una prassi consolidata.
Agendo costantemente dietro le quinte, i supercomputer hanno sempre esercitato un ruolo cruciale nell’innovazione dei sistemi industriali e della società civile, oltre a consentire lo svolgimento dell’analisi dei dati con i sistemi di intelligenza artificiale, e nell’ambito della cybersecurity, della blockchain e delle più moderne applicazioni di calcolo scientifico.
La capacità di svolgere calcoli di elevata complessità rende i supercomputer una risorsa indispensabile per il progresso scientifico e per l’innovazione e questa rilevanza strategica contribuisce a destinare al loro sviluppo ingenti investimenti da parte di enti governativi e di grandi holding private.
L’esigenza di risorse computazionali è infatti in continua crescita e l’accelerazione del digitale cui stiamo assistendo negli ultimi anni ha particolarmente enfatizzato questa tendenza.
Supercomputer: come funzionano
Esistono varie tipologie di supercomputer, che possono essere accomunati da una serie di tecnologie distintive. Limiteremo la nostra sintetica rassegna ai sistemi per utilizzo generico, che possono supportare un’ampia gamma di processi di calcolo, in quanto i sistemi specializzati godono spesso di tecnologie talmente specifiche da meritare un’argomentazione differente rispetto al contesto generalista del calcolo ad elevato livello di performance.
Attraverso una serie di definizioni chiave, vediamo quali sono le principali caratteristiche che distinguono a livello computazione i supercomputer e per quale motivo la loro potenza complessiva è oggetto di una continua escalation che dura ormai da oltre cinquant’anni.
Calcolo vettoriale
Si tratta di un modello computazionale che consente di svolgere la stessa operazione, aritmetica o logica, su molti dati simultaneamente.
I sistemi dotati di tali caratteristiche sono ad esempio le schede video per il rendering dei videogiochi e delle applicazioni in computer grafica 3D, che si sono progressivamente diffuse in ambito consumer, agevolando la diffusione di massa e la conseguente riduzione di costi di queste tecnologie.
Tali architetture computazionali sono in grado di svolgere con successo anche i calcoli scientifici, che si basano su modelli matematici simili a livello logico, per cui di recente l’hardware di base delle singole workstation e dei supercomputer si sono avvicinati moltissimo. È la ragione per cui ad esempio un brand come NVIDIA, storico punto di riferimento nelle schede video per il gioco e la visualizzazione 3D professionale ha potuto diversificare il proprio business diventando una forza di prim’ordine anche per quanto riguarda GPU e tecnologie implementate dai supercomputer a dispetto ad esempio di quei player ultra specializzati in sistemi professionali all-in-one, come lo storico marchio Silicon Graphics, la cui offerta è stata assorbita da attori più generalisti.
NVIDIA ha inoltre rafforzato la propria egemonia estendendo le tecnologie GPU, grazie alla recente acquisizione di ARM, che da sempre produce SoC (Sistem-on-Chip) con architettura Risc, molto diffuse sui dispositivi mobile ed in molti contesti più performanti rispetto alle tradizionali architetture x86, soprattutto in termini di contenimento dei consumi.
Il mondo consumer e l’esclusiva nicchia del supercalcolo stanno progressivamente trovando sempre più punti di contatto. Personal computer e supercomputer condividono pertanto molti elementi fondamentali, per cui a fare la differenza sta diventando sempre più la quantità di processori, memoria e sistemi di storage e di rete necessari per raggiungere determinati livelli di performance, che soltanto i sistemi HPC sono in grado di garantire.
Calcolo parallelo
I supercomputer si basano sulla capacità di suddividere il calcolo dei carichi di lavoro in parallelo su più processori. Questa logica consente di strutturare i sistemi HPC in maniera modulare, affiancando un numero incredibilmente elevato di unità di calcolo.
Molti problemi analizzati dai supercomputer possono essere parallelizzati in modo da sfruttare meno possibile la memoria di sistema, utilizzando la più veloce memoria di cache dei processori stessi o dei chipset integrati.
Il segreto risiede quindi nella qualità delle applicazioni, che vanno sviluppate in maniera da creare molti task eseguibili su molti processori, rendendo il più possibile indipendenti e leggeri i carichi di lavoro, per non sovraccaricare il sistema, evitando ad esempio quelle situazioni in cui un processore che ha esaurito il proprio compito rimane fermo anche diversi minuti, in attesa che un altro porti a termine il suo processo di calcolo.
Il calcolo parallelo consente di conformare i supercomputer come attualmente li conosciamo, articolandoli nei data center, dove si succedono una serie di cabinet destinati ad ospitare i rack, quei moduli contenenti CPU, GPU e memorie fondamentali per costituire un’unità di calcolo indipendente ma capace di dialogare con tutte le altre connesse allo stesso sistema HPC.
Tale logica consente di creare delle strutture computazionali enormi, totalmente scalabili e valutabili ormai nell’ordine di milioni di core.
Modello Cluster
Si tratta di una serie di personal computer tra loro connessi tramite soluzioni a bassa latenza, per via di criteri di prossimità e reti molto veloci. Tale modello si avvale quindi di tecnologie standard come quelle dei computer tradizionalmente utilizzati per le operazioni generiche, raggiungendo livelli computazionali elevati grazie alla loro azione sinergica.
Questo modello di supercomputer individua il proprio punto di forza nel fatto, apparentemente paradossale, di non essere nativamente un supercomputer, ma una rete di semplici computer, le cui tecnologie di massa possono abbattere sensibilmente i costi complessivi.
I cluster vengono pertanto utilizzati per realizzare sistemi equivalenti ai supercomputer con una logica di gestione più flessibile rispetto al data center tradizionale, con crescente ricorso alle tecnologie di virtualizzazione, capaci di consolidare oltre modo le risorse hardware a disposizione.
Modello Grid e sistemi collaborativi distribuiti (quasi-supercomputer)
Per incrementare le risorse computazionali a disposizione sono stati messi a punto molti modelli architetturali, tra cui ritroviamo i grid, che consistono nel mettere in rete la potenza di calcolo di vari sistemi di elaborazione, costituiti da vari HPC che non si trovano per forza in una condizione di prossimità fisica.
Esistono almeno due tipologie di grid. La più nota sfrutta un’applicazione in grado di distribuire il calcolo su più sistemi, che comunicano i dati con il server centrale in maniera del tutto indipendente tra loro. Tale modello costituisce da anni la base di funzionamento dei progetti collaborativi @home, utilizzati per la ricerca in ambito scientifico.
Tali progetti consistono in una adesione su base volontaria di utenti che mettono a disposizione le proprie risorse hardware per svolgere in background il calcolo richiesto per portare a termine i job assegnati dal software manager centrale, con cui comunicano grazie ad una applicazione in locale.
Tra i progetti più noti ricordiamo il SETI@home, con l’obiettivo di dimostrare la presenza di forme intelligenti extraterresti, il FightAIDS@home, per supportare la conoscenza utile a combattere l’AIDS, come i progetti Folding@home, che spaziano dalle simulazioni sul ripiegamento molecolare (protein folding) per combattere il cancro e le malattie degenerative, nonché le moderne varianti per studiare la celebre proteina Spike che il virus Covid-19 utilizza per contagiare l’organismo umano.
Folding@home ha registrato numeri record durante il primo lockdown pandemico, dimostrando un enorme senso di solidarietà da parte della comunità informatica.
La particolarità dei progetti collaborativi è data dalla loro enorme flessibilità applicativa, dal momento che possono coinvolgere un computer sfruttando in maniera intensiva le sue risorse CPU e GPU, oltre che stressarlo in maniera blanda utilizzando soltanto le risorse che non vengono impiegate durante i processi che normalmente l’utente esegue ad esempio durante la giornata lavorativa. Allo stesso modo, è possibile usufruire del calcolo di un semplice computer portatile come di un supercomputer da un milione di core.
La formula dei progetti collaborativi consente inoltre una sana e stimolante competizione a livello globale, data dalla possibilità di registrare squadre formate da più utenti e sistemi di calcolo, ai fini di assicurarsi punteggi elevati sulla base del numero di simulazioni portate a termine utilizzando l’applicazione. I dati sono riepilogati in classifiche che gratificano il contributo dei volontari che vi aderiscono.
Un’altra tipologia di grid è quella di natura consorziale, come nel caso del LHC (Large Hadron Collider) Computing Grid, una rete di supercomputer utile a gestire l’enorme quantità di dati generata dagli acceleratori di particelle del QUANTUM.
Il celebre ente di ricerca nucleare europeo, con sede in Svizzera, ha infatti stretto accordi a livello internazionale per sfruttare la potenza di molti sistemi HPC, collocati nei data center di tutto il mondo.
Attualmente il grid del CERN conta su 11 hub primari connessi in maniera diretta tramite reti private, a cui si aggiungono svariate decine di hub secondari, localizzati in gran prevalenza in università e centri di ricerca, sfruttando prevalentemente la connessione internet. In questo caso il CERN riesce a suddividere i carichi di lavoro di cui necessita, assegnandoli ai vari hub che collaborano per garantire il risultato complessivo delle simulazioni. Nel momento in cui scriviamo, il grid del CERN può contare su oltre 170 hub complessivi.
Sistemi operativi e linguaggi di programmazione
I supercomputer ormai vengono eseguiti in gran parte da sistemi operativi open source, con una netta prevalenza di distribuzioni Linux (98%), con le quote di completamento relative a sistemi su base Unix ed in misura ancora inferiore Windows Server.
Le interfacce grafiche di gestione sono bene o male le stesse delle distro server Linux standard, in questo caso implementate sui sistemi HPC (Red Hat, CentOS, ecc.).
Il loro livello è decisamente più user friendly rispetto al passato, anche se il problema non si pone più di tanto, in quanto non sono destinate al pubblico generalista, ma ad esperti perfettamente in grado di gestire applicazioni server di complessità molto elevata.
La natura open source dei sistemi operativi Linux non è in questo caso implementata in funzione dell’interoperabilità, dal momento che i supercomputer tendono a rimanere piuttosto incompatibili tra loro, per via della personalizzazione delle estensioni proprietarie che i reparti IT sviluppano per ottimizzare le loro performance e la loro gestione, in cui spiccano ad esempio quelle dedicate alla sicurezza informatica.
Le applicazioni vengono invece scritte prevalentemente utilizzando il linguaggio di programmazione Fortran, capace di sfruttare al meglio le architetture parallele dei supercomputer, risultando più semplice rispetto al C++, soprattutto per quanto riguarda la qualità del codice elaborato dai compilatori.
La presenza di molte tecnologie e la crescente ibridazione tra CPU e GPU ha ovviamente aumentato anche i linguaggi di programmazione coinvolti, come avviene nel caso di CUDA e OpenCl per sfruttare le già citate GPU di Nvidia, le cui funzioni, per quanto supportate da linguaggi open source, si basano in gran parte su tecnologie proprietarie.
A livello software il calcolo distribuito è, ad esempio, garantito da soluzioni open source come Beowulf e openMosix, che possono creare dei supercomputer virtuali astraendo le risorse dei computer tradizionali che compongono un determinato cluster, oltre che un insieme di macchine connesse in rete, con cui un software manager comunica in modalità input/output, per assegnare i job da calcolare e ricevere i risultati delle simulazioni.
Tale logica deriva ad esempio dai render manager, software nati nell’ambito della computer grafica 3D per distribuire il calcolo sulle varie renderfarm che i colossi degli effetti visivi hanno dislocate in varie regioni del mondo.
È ad esempio il modo con cui case di produzione come la Pixar riescono a realizzare i milioni di frame che compongono i loro film di animazione. Alcune tecnologie proprietarie, come nel caso di Bonjour (Apple) consente di realizzare supercomputer virtuali per eseguire compiti specifici.
La varietà tecnologica non manca di certo e ad oggi il principale collo di bottiglia del supercomputing è con buona probabilità costituito dalla disponibilità di linguaggi e tecniche di programmazione specifiche per sfruttare in maniera semplice ed efficiente le capacità di calcolo parallelo dei sistemi HPC.
Per rendere il concetto, sarebbe infatti inutile avere a disposizione migliaia di processori, con applicazioni che riuscirebbero a sfruttarne soltanto una manciata. L’obiettivo delle applicazioni che si avvalgono dei supercomputer per eseguire i loro processi deve pertanto essere mirato a consolidare in maniera dinamica ed ottimale il maggior numero delle risorse a disposizione.
Sviluppo configurazioni hardware
Per offrire un’idea generale di configurazione di un supercomputer, ogni rack potrebbe essere composto almeno da una serie di processori dotati di proprietà di calcolo vettoriale, di un sistema di memoria NUMA (Non-Uniform Memory Access), unità disco HDD e/o SSD configurati in RAID, sistemi di raffreddamento a liquido, oltre ad interfacce in grado di garantire una connessione ottimale con i dataset e le informazioni fornite dai carichi di lavoro. I vari rack vengono installati nei cabinet all’interno dei data center che li alimentano in ambienti controllati.
I supercomputer infatti generano enormi quantità di calore che devono essere prontamente dissipate, ai fini di garantire una qualità adeguata del calcolo, che potrebbe altrimenti risentirne anche in termini di stabilità, oltre che di performance.
Si tratta infatti di sistemi estremamente energivori, costruiti per operare in modalità 24/7, con tutte le conseguenze del caso in termini di stress e consumi.
Un altro aspetto che chi progetta il layout del data center deve necessariamente considerare è quello relativo alle latenze, che devono essere il più ridotte possibile, ai fini di garantire una connessione ottimale tra le varie unità di calcolo.
Si tratta di un concetto elementare, che non vale soltanto nell’ambito dei supercomputer, per cui minore è la distanza tra i collegamenti, maggiore è la velocità di scambio delle informazioni utili.
La storia di Seymour Cray, il padre dei supercomputer
I supercomputer esistono di fatto, ma non di nome, dagli anni Trenta del Novecento, quando iniziarono a manifestarsi i grandi elaboratori basati sulla tecnologia meccanica. Erano mostri di svariate tonnellate di peso, capaci di occupare degli interi hangar, per sviluppare una capacità computazionale che oggi susciterebbe ovviamente un senso di tenerezza, ma anche un naturale fascino e un senso di curiosità per delle tecnologie che ora non ci verrebbe nemmeno in mente di associare all’informatica.
I primi “supercomputer” di IBM progettati da Howard Aiken, come l’Harvard Mark, costavano centinaia di migliaia di dollari di quell’epoca, per sviluppare la bellezza di tre addizioni al secondo, mentre una moltiplicazione, di secondi, ne richiedeva ben sei.
Per non parlare dei più semplici calcoli logaritmici, capaci di richiedere oltre un minuto a meccanismi formati da schede perforate, azionate in maniera meccanica da un asse motorizzato lungo diversi metri. Harvard Mark non ebbe un grande futuro, ma certamente un grandissimo merito, quello di essere stato il primo calcolatore automatico, quello che attualmente definiremmo quale computer.
In realtà, il contesto cui facciamo riferimento nell’immaginario attuale fa capo ad un percorso evolutivo iniziato negli anni Cinquanta, quando fece la sua comparsa sulla scena dell’industria informatica un certo Seymour Cray (1925-1996), l’autentico deus ex machina dei supercomputer.
A Cray si deve il progetto di CDC 1604, il primo supercomputer costruito nel 1961 dalla Control Data Corporation, che divenne ben presto la principale antagonista di IBM, con cui ebbe inizio una fiera rivalità nello sviluppo dei primi grandi elaboratori destinati al calcolo scientifico.
Fu un’altra creazione di Seymour Cray, il CDC 6600, a strappare il primato di velocità al “rivale” IBM Stretch, con quella che per l’epoca rappresentava una incredibile capacità computazionale: ben tre milioni di FLOPS (floating-point operations).
ll termine supercomputer non era ancora stato coniato, lo sarebbe stato di lì a breve e l’ascesa della computazione verso livelli di performance sempre più elevati non si sarebbe più fermata.
Dopo alcuni anni di proficua collaborazione, Cray decise di lasciare la CDC per mettersi in proprio e fondare la Cray Research Inc. che nel 1976 presentò al mondo il suo Cray-1, il primo supercomputer basato sul calcolo vettoriale, una tecnologia che avrebbe di fatto aperto una nuova dimensione nell’ambito della scienza degli elaboratori.
Cray uscì di scena nel 1981, pur continuando a collaborare con l’azienda da lui fondata come consulente esterno. In quel periodo aumentò i propri sforzi sulla ricerca dei sistemi multiprocessore, che oggi diamo per scontati persino sul più semplice degli smartphone, ma all’inizio degli anni Ottanta rappresentavano ancora un concetto piuttosto rivoluzionario.
Tale design comportava infatti la suddivisione dei processi di calcolo per assegnarli a processori multipli, in modo da distribuire il calcolo su sistemi scalabili sempre più estesi. Tale filosofia, una volta tradotta nella controparte tecnologia, avvio una vera e propria escalation degli HPC a livello di performance.
Sulla base dei progetti scaturiti dall’instancabile genio di Seymour Cray, si susseguirono i primi supercomputer con tecnologia a multiprocessore, come il Cray X-MP (1982), caratterizzato da due Cray-1 in parallelo, il Cray-2 (1985), il primo HPC a sfondare la barriera del miliardo di FLOPS, e il Cray Y-MP (1988), capace di elevare tale limite a 2.67 miliardi di FLOPS. Sulla base di questi successi, Seymour Cray decise di fondare la Cray Computer Corporation, ma il mercato del computing stava rapidamente cambiando, con il crescente interesse per i sistemi a microprocessore. Una serie di insuccessi e circostanze poco favorevoli portarono l’azienda a dichiarare bancarotta nel 1995.
Cray tuttavia non si diede per vinto e aprì una nuova realtà imprenditoriale nel corso dell’anno successivo: la SRC Computers. Il nuovo sogno rimase tale, in quanto nell’ottobre del 1996 Seymour Cray perse la vita in un tragico incidente stradale.
Con lui se ne andava per sempre una personalità unica nella computazione informatica. Grazie al suo spirito pionieristico e alla sua costante genialità, la celebrità e la credibilità tecnologica dei supercomputer ha assunto la rilevanza con cui oggi siamo soliti identificarli.
Dopo la scomparsa del suo fondatore e il già citato fallimento, il marchio Cray sopravvisse grazie ad una serie di acquisizioni. Nel 1996 venne rilevata da Silicon Graphics, mentre dal 2019 è parte integrante del gruppo HPE (Hewlett Packard Enterprise) che ha aperto l’apposita divisione HPE Cray, dedicata allo sviluppo di sistemi HPC.
I supercomputer, come accennavamo, sono nel frattempo diventati una celebrità, soprattutto grazie all’instancabile ricerca di IBM, che oltre a spingere sul fronte computazionale ha cercato di allargare progressivamente il fronte applicativo, puntando molto su questo aspetto anche a livello mediatico.
È il caso della sfida a scacchi tra il supercomputer Deep Blue e il campione russo Garry Kasparov, leggenda vivente della disciplina e ai tempi il più forte scacchista in attività. Deep Blue era in sostanza dotato di un’intelligenza artificiale programmata con la consulenza di grandi esperti di scacchi, per istruirlo sul maggior numero di combinazioni possibili.
Grazie alle sue istruzioni, Deep Blue poteva rispondere alle mosse di Kasparov, al punto da riuscire a batterlo dopo una serie di sei affascinanti partite, che attirarono l’attenzione mediatica di tutto il mondo: era il 1996.
Da allora le intelligenze artificiali hanno fatto enormi passi avanti, arrivando ad apprendere automaticamente le regole del gioco grazie alle tecnologie di deep learning, che richiedono tuttavia una crescente capacità di calcolo per eseguire le loro operazioni.
È il caso delle applicazioni Alpha di Deepmind, supportate dai supercomputer di Google, la cui tecnologia Tensorflow è stata progettata ed ingegnerizzata proprio per ottimizzare le istruzioni dei processori in modo da rendere più performanti le applicazioni AI.
Deep Blue fa parte di una tipologia definita supercomputer specializzati, di cui sono stati tra gli altri celebri esponenti anche GRAPE (Astrofisica), Deep Crack (Crittografia) e Anton (Bioinformatica).
Il resto è storia recente, con la nascita del progetto Top 500 (1993), un database che ogni sei mesi aggiorna la lista dei cinquecento supercomputer più potenti al mondo. Al di là dello spirito da hit parade che piace tanto agli americani, inguaribili fanatici per qualsiasi cosa assomigli ad una classifica, tale iniziativa si è ben presto rivelata molto utile per avere una visione unificata dei più grandi elaboratori del pianeta, delle loro tecnologie e delle loro applicazioni.
La top 500, gli anni 2000 e l’obiettivo exascale
Mentre Kasparov si dannava l’anima per cercare di competere con Deep Blue, i supercomputer si facevano sempre più strada nei laboratori delle principali industrie, a partire da quella militare.
Il ban dei test nucleari, firmato nel 1996 da una serie di paesi, tra cui gli Stati Uniti d’America, costrinse i fisici e gli ingegneri militari a dover cercare soluzioni virtuali per poter procedere con la ricerca, non avendo modo di provocare devastanti esplosioni nei luoghi più remoti del pianeta.
Il Dipartimento di Energia americano finanziò il progetto ASCI (Accelerated Strategic Computing Initiative) che nel 1997 vide l’esordio del primo supercomputer capace di simulare i test nucleari: ASCI Red, sviluppato da Intel, con oltre 9.000 processori Pentium Pro, per una potenza equivalente di 1.8 TeraFLOPS (TFLOPS).
Sempre dai fondi della difesa del governo americano è nato il progetto di IBM per i supercomputer Blue Gene, capaci nel 2007 di superare la soglia dei 500 TeraFLOPS, con software di gestione interamente open source, a partire dal sistema operativo Linux.
Nel 2008, IBM RoadRunner ha superato la soglia del petaFLOP (1000 TeraFLOPS), grazie ad un’architettura computazionale ibrida, basata su circa 7.000 CPU AMD Opteron e 13.000 processori IBM Cell Broadband Engine, utilizzati anche per le GPU della console gaming Sony PlayStation 3. La questione non sorprende, se si considera come la tipologia di calcolo vettoriale del rendering gaming sia molto simile alle simulazioni matematiche sviluppate in ambito scientifico.
A livello globale, è iniziata una lunga sfida a distanza tra USA e Cina, per assicurarsi l’egemonia nell’ambito del supercomputing. Sono queste due nazioni infatti a ricoprire la maggior parte delle posizioni della Top 500, la classifica che certifica e aggiorna continuamente l’elenco dei supercomputer più potenti al mondo, con la Cina a dominare in termini numeri e gli USA in termini di presenza nelle posizioni di vertice.
La terza nazione classificata in termini di numero di supercomputer Top 500 è il Giappone, che può vantare sul capolista Fugaku, realizzato da Fujitsu nei datacenter Riken di Kobe. Fugaku è attualmente affiancato sui gradini più bassi del podio da IBM Summit e IBM Sierra, entrambi localizzati in data center statunitensi.
Nel momento in cui scriviamo (dati Top500 del secondo semestre 2021) l’Italia conta soltanto su sei sistemi Top 500, anche se molto ben posizionati. Tra questi spicca HPC5, supercomputer di ENI, sviluppato da Dell EMC e collocato in un data center nella provincia di Pavia, attualmente alla posizione numero 9 del ranking Top 500 grazie ai 35,45 PetaFLOPS di cui dispone, precedendo di una posizione un’autentica celebrità nel suo genere: Frontera, il supercomputer della University of Texas (USA). HPC5 di Eni è attualmente il secondo supercomputer più potente in Europa, preceduto soltanto dal tedesco JUWELS (44,12 PetaFLOPS). Eni dispone inoltre di altri 3 sistemi Top 500: HPC4 (33), HPC2 (128) e HPC3 (182)
Subito fuori dalla top10 ritroviamo un altro supercomputer italiano: Marconi-100 (14), in forza al CINECA di Bologna, mentre il sistema davinci-1, attivo dal 2020 nel data center genovese di Leonardo SpA, è posizionato da Top500 alla posizione numero 119 del ranking mondiale.
Il prossimo grande traguardo in ambito HPC è costituito dal raggiungimento del exascale, l’equivalente di 1000 PetaFLOPS.
Il più potente supercomputer al mondo, il già citato giapponese Fugaku, basato su tecnologia ARM, può contare su 442 PetaFLOPS e pur essendo di gran lunga il sistema più potente attualmente disponibile è ancora molto distante dal raggiungere exascale. Per arrivare a tale milestone nella storia del supercomputing sono attualmente in fase di sviluppo diversi progetti che dovrebbero iniziare a vedere la loro operatività nel corso del 2022, tra cui Frontier, basato su tecnologie AMD.
A livello tecnologico la tendenza è un modello ibrido CPU+GPU che consente di calcolare la maggior parte delle applicazioni che vengono sviluppate in ambito scientifico. Il database di Top 500 di racconta che Intel gode della grande maggioranza delle GPU presenti, superando il 90% del totale, mentre il leader in ambito GPU è naturalmente NVIDIA, che come abbiamo visto può contare anche sulle tecnologie di ARM. Anche AMD si sta diffondendo rapidamente grazie alle performance dei suoi processori EPYC.
Tale varietà tecnologica è sicuramente fondamentale per evitare situazioni di stand-by monopolistico ed accelerare il più possibile la ricerca, nonostante alcune difficoltà a livello globale che non possono certamente essere trascurate, come la crisi globale dei chip che ha investito il mercato hardware a partire dal 2020.
Lo scenario europeo: EuroHPC alla ricerca del supercomputing sovrano
Nel corso del 2018, la Commissione Europea ha dato il via al progetto EuroHPC, consorzio composto dai 27 paesi membri dell’Unione, associati extra-UE come la Svizzera e la Turchia, oltre ad alcune associazioni private che vedono la presenza, tra gli altri, della Big Data Value Association.
L’obiettivo originale di EuroHPC aveva in qualche modo anticipato quel desiderio di rivalsa, diventato ben più evidente dopo la pandemia Covid-19, che la Commissione Europea sta cercando di rendere concreto in vari settori tecnologici, per ridurre la dipendenza tecnologica da Stati Uniti e paesi asiatici.
Si tratta di un’esigenza ormai indifferibile, soprattutto alla luce delle crisi sulla catena di approvvigionamento (supply chain) che ha coinvolto molti settori alla luce delle crisi di produzione e logistica che hanno interessato alcuni distretti extra UE, esclusivisti o quasi per quanto concerne certe forniture. In altri termini, l’Europa non può più dipendere soltanto dagli altri. E il supercomputing, data la sua rilevanza strategica, non fa certo eccezione.
Il primo periodo di attività di EuroHPC è stato fondamentale per stanziare le risorse necessarie e predisporre l’installazione di otto supercomputer in vari data center collocati esclusivamente in Europa, tra cui figura il CINECA di Bologna, dove verrà avviato l’HPC Leonardo, un possibile top 10 mondiale destinato ad affiancare, tra gli altri, il già citato Marconi-100.
Nel 2021 è stato finalmente pubblicato il nuovo regolamento EuroHPC, assolutamente necessario per allinearsi al quadro finanziario stabilito per il periodo 2021-2027 e consentire di sfruttare le risorse stanziate dai programmi UE Horizon Europe, Digital Europe e Connecting Europe Facility. Il regolamento non si sofferma tanto sulle singole assegnazioni, quanto sui requisiti che un data center deve necessariamente possedere per ospitare un progetto EuroHPC. Tra questi figurano la collocazione in uno degli stati membri della UE. È stata inoltre regolamentata la possibilità di co-finanziamento con le risorse addizionali che i singoli paesi membri possono destinare ai vari progetti.
EuroHPC si ritrova nella non semplice condizione di bilanciare la supremazia tecnologica dei colossi USA e asiatici, con la necessità di coinvolgere gli attori europei nella gestione dei progetti. In più circostanze l’ha spuntata la francese Atos, leader in Europa per il mercato HPC, che si è peraltro aggiudicata i lavori per il supercomputer italiano Leonardo. Molte tecnologie hardware rimangono comunque una prerogativa extra UE, per cui il gioco in termini di concorrenza e competitività dell’offerta rimane tuttora un argomento molto delicato da trattare.
Tra sovranità digitale, supercomputing e opportunità per le imprese europee
Una prima risposta al dubbio con cui abbiamo chiuso il precedente punto è già stata in qualche modo presa in seria considerazione da parte della UE, soprattutto nell’orientare le proprie politiche verso la sovranità digitale. La UE pare intenzionata a raggiungere questo ambizioso obiettivo agendo su due livelli differenti di azione. Da un lato, a livello comunitario vengono definite le iniziative per l’autosufficienza tecnologica, che godono del finanziamento diretto da parte della Commissione UE, dall’altro i singoli paesi membri possono di fatto aggiungere obiettivi specifici per il loro interesse nazionale, a patto che contribuiscano a co-finanziare le iniziative principali.
Il progetto EuroHPC, per quanto riguarda i supercomputer, agisce proprio secondo questa logica, in modo da coniugare gli interessi globali con quelli locali, in favore dell’innovazione e della resilienza tecnologica.
Anche se a prima vista potrebbe apparire un dettaglio scontato, tale distinzione è assolutamente cruciale in termini pratici, in quanto la sovranità digitale non sarebbe altro che la capacità di uno o più paesi di avere il totale controllo decisionale sui processi digitali che lo coinvolgono. Quindi come creare i dati, come trattarli e come proteggerli in tutte le fasi del loro ciclo di vita. Tali fattori non possono esaurirsi con un approccio globalizzante ma devono per forza entrare nel merito delle esigenze puntuali dei singoli distretti europei, considerando anche la possibilità di accordi tra più paesi, soprattutto nel sostenere politiche di sviluppo industriali capaci di superare i semplici confini nazionali.
In questo contesto, diventa sempre più rilevante avere il totale controllo dell’infrastruttura IT e dei servizi che abilitano determinati comparti d’azione, in cui il supercomputing va inteso come una piattaforma hardware-software capace di gestire ed elaborare enormi quantità di dati di rilevanza strategica a livello nazionale ed europeo.
Per tale motivo, anche se il provider della tecnologia rimane extra UE, è necessario che almeno la parte di gestione ricada in capo a soggetti europei, per non mettere a rischio il concetto stesso di sovranità dei dati, che non può essere circoscritto alla semplice condizione geografica della loro collocazione.
Per contro, con argomentazioni altrettanto legittime, vi sono diversi detrattori di questa politica, in quanto rischierebbe di creare dei monopoli di gestione che potrebbero avere ricadute negative in termini di competitività e innovazione per una realtà, quella europea, da sempre sede di eccellenza nella ricerca, ma troppo frammentata per intraprendere delle politiche industriali in grado di competere con i numeri dei leader tecnologici di livello mondiale, soprattutto nell’ambito dell’informatica.
Tra le buone notizie, vi è il fatto che quando si insegue, si conosce già la strada percorsa da chi ci ha preceduti e anche se sul breve termine sarà necessario individuare delle soluzioni di compromesso tecnologico per avviare i progetti, sul medio e lungo periodo una supply chain di totale marca europea dovrebbe costituire il contesto di resilienza operativa più funzionale alla competitività delle imprese attive presso i paesi membri. In altri termini, la condizione migliore coincide con il totale controllo della filiera sul territorio europeo.
I primi otto supercomputer del progetto EuroHPC dovranno dunque vedere l’azione di imprese e centri di ricerca attivi nello sfruttare realmente le capacità di calcolo che questi investimenti sapranno mettere a disposizione dell’innovazione, soprattutto nella direzione di recuperare il gap che separa molti comparti industriali dell’industria europea dalle principali realtà internazionali.
La ricerca per il supercomputing europeo va sostenuta formando e finanziando importanti centri a livello comunitario. E sostenere economicamente un simile impegno rappresenterà una sfida enorme per il vecchio continente, al di là di saper reperire le competenze e l’imprenditorialità necessari per dare corpo ai vari progetti.
I supercomputer in Italia
Il supercomputer più potente che si trova in Italia si chiama “Leonardo” ed è stato inaugurato ed attivato alla fine del 2022 presso il tecnopolo di Bologna. E’ gestito dal consorzio Cineca, fa parte di un ampio programma europeo a sostegno del supercalcolo e, grazie alle sue prestazioni (174,7 petaflops), figura come il secondo supercomputer più potente in Europa ed il quarto a livello mondiale.
Nella classifica dei supercomputer disponibili a livello globale figurano altri due sistemi presenti in Italia e gestiti sempre dal consorzio Cineca: il supercomputer di Eni Hpc5 che figura tra i più potenti sistemi dedicati alle applicazioni industriali (ed è al tredicesimo posto nella lista Top500); Marconi100 è il nome dell’altro supercomputer tutto italiano che si è aggiudicato il ventiquattresimo posto della classifica.
Gli ambiti applicativi del supercomputing
Il supercomputer è storicamente impiegato per risolvere, dal punto di vista del calcolo, i grandi problemi della scienza. I ricercatori hanno bisogno di conoscere ciò che non conoscono, ciò che non comprendono, e per farlo attuano continuamente delle simulazioni, dai cui risultati è possibile confermare l’attendibilità delle loro ipotesi.
I supercomputer offrono quindi un supporto strumentale indispensabile per il progresso scientifico, dotando gli studiosi della potenza che necessitano per fare luce sui fenomeni ignoti nell’ambito della chimica, della fisica e di tutti gli elementi che compongono l’universo. Il supercomputing rappresenta dunque un fattore fondamentale per migliorare la produttività della ricerca, da cui deriva un significativo incremento della qualità delle scoperte e, di conseguenza, della vita delle persone.
La premessa ci consente di affermare con sufficiente certezza che tutti gli ambiti applicativi della scienza possono trarre giovamento dalle capacità simulative dei supercomputer. Lo dimostra il fatto che le applicazioni del supercalcolo siano ormai diffuse in qualsiasi ambito industriale e scientifico.
Limitandoci ai temi di stretta attualità, possiamo vedere come i supercomputer stiano contribuendo allo studio del climate change, della metereologia e nel cercare soluzioni alla pandemia Covid-19.
Il climate change costituisce una delle principali sfide che il pianeta, e in particolare chi lo abita, dovrà affrontare di qui alle prossime generazioni. I timidi risultati ottenuti dai grandi eventi come la COP26 ci confermano come la strada da fare sia ancora molto lunga, soprattutto per la costante divisione che interessa gli attori di governo dei vari paesi a livello globale. Senza entrare nel merito di tali criticità, possiamo tuttavia rilevare come il supercomputing sia fondamentale per supportare le simulazioni relative agli eventi geofisici alla base del cambiamento globale. Occorre fare ancora molto in termini di conoscenza e lo dimostra il fatto che sia al momento ancora difficilissimo accertare le correlazioni tra le dinamiche inquinanti, l’aumento della temperatura globale del pianeta e i violenti fenomeni climatici che si innescano ormai con preoccupante frequenza.
Anche se non vi è un ragionevole dubbio a livello logico, dimostrare il legame tra tali fenomeni dal punto di vista scientifico rappresenta una questione ben diversa e impegnativa. Gli scienziati stanno provando varie soluzioni per simulare tali dinamiche, avvalendosi puntualmente delle risorse elaborative dei supercomputer.
La meteorologia rappresenta da sempre uno degli ambiti simulativi più complessi. Tante volte ci lamentiamo del fatto che una previsione meteo non si rivela particolarmente accurata, specie quando dimentichiamo l’ombrello a casa, ma se fossimo al corrente dell’impegno che gli scienziati devono produrre per valutare l’impatto dei fenomeni meteorologici, saremmo senza dubbio più comprensivi e indulgenti nei loro confronti.
I modelli di calcolo che i ricercatori utilizzano per prevedere i fenomeni metereologici, come il Weather Research and Forecasting (WRF) richiedono enormi risorse di calcolo, che vengono assolte dai supercomputer. Tali modelli risultano assolutamente fondamentali per prevenire ad esempio la portata di un uragano o di uno tsunami, identificando la sua traiettoria, la tempistica e la portata della sua azione, in modo da mettere al sicuro la popolazione soggetta alla sua azione distruttiva. Il modello WRF consente di simulare il comportamento dei grandi fenomeni atmosferici con una velocità all’incirca cinque volte superiore rispetto alle soluzioni tradizionalmente adottate.
Un altro ambito che vede i supercomputer alleati della ricerca è quello rappresentato dalla medicina e dalla farmacologia. Nel primo caso non si contano le applicazioni per favorire la ricerca di nuovi trattamenti sanitarie e nuove terapie, indispensabili per contrastare l’azione dei tumori, delle patologie genetiche e dei problemi di natura cardiovascolare o neurodegenerativa.
La pandemia Covid-19 ha visto l’avvio di tantissimi filoni di ricerca fondati sulle simulazioni attraverso il supercomputing, sia per conoscere meglio la natura del virus e le sue continue mutazioni, sia per individuare nuove molecole utili a costruire farmaci efficaci per prevenire e contrastare la sua azione patologica.
Il futuro dei supercomputer: quali sfide ci attendono?
Per quanto sia in qualche modo complesso parlare espressamente di futuro del supercomputing, non si può prescindere da una serie di valutazioni mirate soprattutto a contestualizzare l’azione dei supercomputer con le principali dinamiche in atto a livello globale, in particolare per quanto concerne i concetti di resilienza e sostenibilità.
Come accennato in precedenza, la crisi pandemica obbliga a ripensare la supply chain delle filiere fondamentali a livello strategico per l’interesse nazionale, in modo da non ritrovarsi tagliati fuori in termini di competitività o vincolati da decisioni esterne, che possono risultare oltre modo penalizzanti. I vari ambiti a livello globale dovrebbero quindi cercare, come accennato nel caso del progetto europeo EuroHPC, di dotarsi di infrastrutture, competenze ed applicazioni proprie, in modo da costruire un contesto d’azione più lungimirante e resiliente, mitigando gli impatti di possibili crisi come quella che attualmente coinvolge a livello globale i semiconduttori.
Altrettanto imprescindibile è il contesto determinato dalla sostenibilità. Per quanto lo sviluppo dei semiconduttori sia in grado offrire maggior potenza di calcolo a fronte di minori consumi, i supercomputer rimangono strutture estremamente energivore, per cui si rende necessario limitare i consumi, ridurre le emissioni CO2 e rendere l’intera filiera più sostenibile.
Molte importanti realtà hanno già introdotto nei propri programmi di business azioni per rendere più efficienti i loro data center dal punto di vista dei consumi energetici, ad esempio aprendo la strada alla soluzione offerta dalle fonti rinnovabili, in conformità con gli obiettivi di transizione verde definiti dalla UE.
Per rendere più razionale il dispendio energetico dei supercomputer è opportuno cercare di ridurre la concentrazione del calcolo, decentralizzando per quanto possibile l’impegno computazionale verso le periferie della rete, in particolar modo per quanto concerne i processi di pre-elaborazione. Ciò è possibile implementando una pipeline di gestione dei dati che sfrutta le proprietà dell’Edge Computing, in particolare per quanto riguarda il lavoro dei dispositivi IoT che si occupano di raccogliere e selezionare i dati in prossimità dei sensori, ai fini di archiviarli e renderli disponibili ai processi analitici dei supercomputer.
Un utilizzo più razionale delle risorse contribuisce a rendere molto più efficiente la gestione dei consumi energetici, con enormi vantaggi sia per l’aspetto economico che per le ricadute ambientali che il supercomputing inevitabilmente genera.
Le ulteriori sfide che i supercomputer dovranno affrontare riguardano tutti gli aspetti legati alla conservazione e al trattamento dei dati digitali, il cui contesto normativo è in continua evoluzione sia a livello globale che a livello locale, è i contesti cross tecnologici che vedono il supercomputing quale protagonista.
Sarà molto interessante capire il livello di sinergia che il quantum computing, paradigma emergente nell’ambito del calcolo informatico, sarà in grado di stabilire con le capacità elaborative di quelli che vengono ormai definiti computer classici. Le prime applicazioni dimostrano che gli elaboratori tradizionali possono supportare in maniera significativa i simulatori quantistici, che non richiedono per forza l’impegno di un quantum computer.
Dal momento che, attualmente, le risorse di supercalcolo tradizionale superano notevolmente in termini di disponibilità quelle offerte dai computer quantistici, sarà importante trovare soluzioni ibride che aiutino il calcolo quantistico a diffondersi in termini di ricerca e applicazioni, uscendo progressivamente dai laboratori per coinvolgere in maniera più concreta l’industria.
Le future applicazioni del supercomputing non potranno inoltre prescindere dall’elaborazione degli algoritmi delle varie tecniche di Intelligenza Artificiale, fondamentali per analizzare i dati e generare valore informativo e predittivo per le principali applicazioni in ambito industriale e scientifico.