Puntata #37

Il podcast che parla del nostro futuro

La capacità di calcolo alla base di supercomputer e computer quantistici

La capacità di calcolo alla base di supercomputer e computer quantistici

La potenza di calcolo e la velocità di supercomputer e computer quantistici. In questa puntata esploro la storia di queste due tecnologie, vi racconto come funzionano, ma più che altro quali sfide possono affrontare e sperabilmente risolvere. Nell’interesse del genere umano.
Siete curiosi? Seguitemi.

Iscrivetevi al canale Telegram https://t.me/thefutureof


La capacità di calcolo alla base di supercomputer e computer quantistici

Daniel Greenberger ha scritto ”Einstein disse che se la meccanica quantistica è corretta, l’universo è folle. Ebbene, Einstein aveva ragione. L’universo è folle.“

L’universo sarà anche folle, ma a distanza di cento anni, le applicazioni della meccanica quantistica ci stanno sempre più avvicinando alla realizzazione di computer in grado di esplorare campi della conoscenza che potrebbero accelerare esponenzialmente il progresso.

Ma prima di lanciarsi nel favoloso mondo delle possibilità offerte dai computer quantistici, dobbiamo fare un salto indietro nel tempo.

Se oggi entrate al National Museum of Computing, a Bletchley Park, un paesino a Nord di Londra tra Luton e Northampton, vi trovate davanti agli occhi un monumentale computer fatto da centinaia di valvole termoioniche rossastre allineate come bottiglie di vino a riposo. Un manufatto che trasuda storia, quella vera.

Siamo nel 1943. Se avete un po’ di immaginazione dovete pensarlo in un hangar, probabilmente un po’ fumoso, insieme ad altri 9 gemelli delle stesse dimensioni, protetto da militari armati di tutto punto, a guardia di 550 specialisti che lo imboccavano con testi tedeschi cifrati. Quanti testi? Secondo la storia qualcosa come 63 milioni di caratteri che entravano cifrati ed uscivano, tre ore e mezza dopo, decrittati, cioè perfettamente comprensibili. Cosa contenevano i testi? Ma ovviamente le comunicazioni e gli ordini che Hitler impartiva ai suoi generali. 

Il Colossus è stato il primo computer elettronico programmabile nella storia dell’informatica. Costruito e messo in opera nel Regno Unito, durante la seconda guerra mondiale, fu in grado di forzare i codici sviluppati dalla cifratrice Lorenz usata dai nazisti per proteggere la corrispondenza fra Adolf Hitler e i suoi capi di stato maggiore, oltre che alle comunicazioni Purple e Red giapponesi, basate sulla tecnologia di Enigma.

Il Colossus, costruito in segreto per la Royal Navy, è stato il primo a usare le valvole termoioniche, fino ad allora usate solo dagli amplificatori, al posto dei relè: sfruttandone ben 1500, fu in grado di aumentare notevolmente la potenza di calcolo.

Colossus venne progettato dal matematico Max Newman, basandosi sui concetti della macchina universale di Turing, e realizzato da Tommy Flowers nella Post Office Research Station a Dollis Hill. 

Del resto Turing fu il primo ad avere l’illuminazione che una macchina, una cifratrice appunto, poteva essere sconfitta solo da un’altra macchina e non da una combinazione di cervelli umani, ancorchè brillanti e qualificati.

Cosa ci insegna questa storia? Che la capacità di calcolo serve a risolvere problemi complessi. Che la tecnologia spesso parte da o serve scopi militari, per poi andare ad impattare il campo civile. E questi due aspetti, valgono anche oggi.

Oggi ovviamente tutto è cambiato. La corsa ai supercomputer è diventata globale e le macchine che siamo in grado di creare oggi sono qualcosa che sfuggono alla nostra concezione di meri utilizzatori di computer domestici.

Prendete Summit, l’attuale re dei supercomputer progettato e realizzato da IBM. Con oltre 340 tonnellate, gli armadi di Summit, il file system e le infrastrutture aeree pesano più di un Boeing. Nella sua pancia viaggiano oltre 300 km di cavi in fibra ottica.

Per raffreddarlo e dissipare il calore generato dai 13 megawatt che utilizza, ogni minuto attraverso il suo sistema di raffreddamento, vengono pompati più di 15.000 litri di acqua.

Con una performance di 200 petaflop, o 200.000 trilioni di calcoli al secondo, Summit raddoppia la velocità massima di TaihuLight, il precedente supercomputer dei record, che può raggiungere “solo” i 93 petaflop, quindi poco meno della potenza di calcolo di Summit.

Anche se è costato 200 milioni di dollari ed è il bolide dei supercomputer moderni, già oggi si prevede che sarà sorpassato da Frontier, un nuovo supercomputer che dovrebbe essere consegnato nel 2021 con una performance massima prevista di 1 exaflop, o 1.000 petaflop.

Ma chiaramente non saremmo qui a parlare di futuro se vi raccontassi solo quello che è già pianificato, perché quello per certi versi è già il presente. Se pensiamo che abbiamo raggiunto la capacità di calcolo di un petaflop nel 2008, quindi poco più di dieci anni fa, non vi stupirà sentire che entro il 2030 avremo computer che si misurano in zettaflops e quindi ben entro il 2040 in yottaflops. Ora se state pensando che questi nomi discendano da un manga giapponese vi spiego, un petaflop vuol dire 10 alla 15 operazioni al secondo, un exaflop (cioè dove saremo nel 2021) 10 alla 18 operazioni al secondo, lo zettaflop 10 alla 21, lo yottaflop 10 alla 24 e così via. Quindi ogni progresso non è lineare, ma esponenziale rispetto al punto di partenza.

Bello mi direte, ma in pratica? Ma cosa significano davvero quei numeri? Beh, per cominciare, si ritiene che una simulazione completa del cervello umano sarà possibile entro il 2025, ed entro 10 anni, i computer zettaflop dovrebbero essere in grado di prevedere con due settimane di anticipo l’intero sistema meteo del pianeta. Direi che tutto questo è abbastanza pratico.   

Ma oggi cosa facciamo con 200 “miseri”, si fa per dire, petaflops?

L’arrivo di questi nuovi supercomputer dà ai ricercatori un forte impulso alla lotta contro il cancro. Ad esempio, gli algoritmi di apprendimento automatico scalati su Summit aiuteranno a fornire ai ricercatori medici una visione completa della popolazione tumorale statunitense ad un livello di dettaglio tipicamente ottenuto solo per i singoli pazienti degli studi clinici. America oggi, l’intero mondo dove i dati sono disponibili, domani.

Il Deep Learning inoltre, potrebbe aiutare gli scienziati a individuare materiali per batterie migliori, materiali da costruzione più resistenti e semiconduttori più efficienti. Attraverso algoritmi di analisi per prevedere le proprietà dei materiali, i ricercatori possono rispondere a domande di lunga data sul comportamento dei materiali su scala atomica.

Ancora in campo medico, utilizzando un mix di tecniche di intelligenza artificiale, i ricercatori saranno in grado di identificare modelli di funzione, cooperazione ed evoluzione delle proteine umane e dei sistemi cellulari. Una migliore comprensione di come questi modelli danno origine a fenotipi clinici, tratti osservabili di malattie come il morbo di Alzheimer,  malattie cardiache e dipendenze varie, si potrà arrivare alla realizzazione di nuovi farmaci.

Ma l’elenco dei casi reali non finisce qui. 

Una collaborazione guidata dal Lawrence Berkeley National Laboratory con gli sviluppatori di Summit, ha addestrato una “rete neurale profonda” per identificare modelli meteorologici estremi a partire da simulazioni climatiche ad alta risoluzione.

Un team dell’Università di Tokyo guidato dal professore associato Tsuyoshi Ichimura, ha applicato l’intelligenza artificiale e l’aritmetica di precisione per accelerare la simulazione della fisica dei terremoti negli ambienti urbani. Man mano che le città continuano a crescere, del resto, megatrend ampiamente citato in questa stagione di The Future Of, una migliore comprensione degli effetti del terremoto sugli edifici e sulle infrastrutture urbane diventa sempre più importante.

Joe Oefelein della Georgia Tech, il cui team sta effettuando simulazioni di combustione che si adattano perfettamente alle condizioni di funzionamento del motore, potrebbe ispirare la progettazione di motori a basso consumo di carburante e a basse emissioni.

E con gli esempi si potrebbe continuare senza sosta. Quindi, se da qualche parte qualcuno può usare queste incredibili risorse per tenere sotto controllo fenomeni militari complessi, giocare a fare le spie del ventunesimo secolo e scoprire dove si trovano nemici e terroristi, esistono una miriade di applicazioni ad-hoc in campo scientifico che possono migliorare la vita delle persone.

Con una considerazione importante. Se saremo in grado di risolvere problemi più complessi, i nuovi problemi saranno anch’essi di non poco conto; per risolverli serviranno macchine sempre più potenti e così via. Facciamo un esempio. Alcune delle applicazioni appena raccontate, ci dicono chiaramente che potremmo arrivare a limitare o addirittura cancellare il cancro, e lo stesso vale per molte altre malattie. Se poi proteggeremo i cittadini da terremoti, disastri metereologici, attacchi terroristici ed altre calamità varie, possiamo solo aspettarci l’aumento dell’età media della popolazione mondiale. Se poi si materializzeranno le visioni di semi-immortalità alla Kurzweil, basate su nanobot e cure immediate, potremmo trovarci ad essere davvero in tanti e davvero longevi. Quindi nasceranno problemi di fornire cibo a tutti, energia elettrica per svolgere le più svariate attività, alloggi confortevoli e così via. Nuovi problemi, uguale maggiore capacità di calcolo per affrontarli.

La potenza di calcolo però, si porta dietro innumerevoli questioni pratiche. Tutta questa potenza ha un costo. Se hai mai avuto un guasto alla ventola del tuo computer portatile tenuto in grembo, sai già qual è il costo: i computer utilizzano molta energia e  producono calore. In realtà, una delle maggiori sfide per gli sviluppatori di supercomputer è trovare un modo ragionevole per installare e utilizzare macchine potenti senza guasti hardware e senza aumentare i danni alla terra. Dopo tutto, uno degli usi principali delle simulazioni meteorologiche sarà quello di monitorare le fluttuazioni di emissioni e di temperatura, quindi non sarebbe molto intelligente aggravare il problema da risolvere, proprio a causa dei supercomputer che lo dovrebbero risolvere! Ogni supercomputer consuma già oggi come una piccola città.

Affrontare i problemi ecologici e di efficienza non è solo una buona idea per il nostro pianeta, ma è necessario per far funzionare le macchine. Forse non è l’applicazione più affascinante che questa ricerca può promettere a tutti noi, ma sicuramente è un punto di attenzione.

L’altro elemento da conoscere però, per non parlare a sproposito dell’argomento, è programmare per un supercomputer. Ovviamente le simulazioni ed i calcoli di sistemi complessi come il meteo od i tumori, non si fanno con Excell. Bisogna programmare soluzioni ad-hoc per la singola analisi e deve essere ottimizzata sull’architettura hardware dello specifico supercomputer per estrarre fino all’ultima goccia di potenza.

E una volta fatto questo sforzo, servono chiaramente una montagna di dati da dare in pasto alla macchina. E questo è il secondo trend dei supercomputer, dopo il tema di renderli più green ed efficienti. I supercomputer possono ricevere informazioni da ogni possibile fonte, dagli ultimi tweet di tendenza, ai modelli di traffico, all’uso della rete energetica, e creare modelli in tempo reale per regolare non solo i fattori in corso, ma anche i piani per il futuro. I blackout, la penuria di gas e persino il traffico causato da eventi ad alta densità di popolazione come le Olimpiadi, saranno un ricordo del passato.

Questo vuol dire che i supercomputer passeranno dall’essere utilizzati per analisi e ricerche ad-hoc, all’essere dedicati a specifici temi. Un supercomputer che monitora la rete elettrica, uno che si occupa della mobilità, uno della salute pubblica, uno del meteo e così via. Tutto in real time e tutto basato su algoritmi di intelligenza artificiale che imparano da soli. E questo forse ci fa capire un po’ meglio perché qualcuno teme gli scenari distopici delle macchine che prendono il controllo. Potenza, capacità decisionale immediata ed autonomia, sono tre caratteristiche che associamo più ad un dittatore che ad una democrazia.

E mentre continua la crescita dei supercomputer potenziati da intelligenza artificiale al centro e big data sempre più facilmente accessibili, altri ricercatori, a volte nei laboratori a fianco dei loro colleghi, stanno sviluppando una tecnologia ancora più nuova e potente: i computer quantistici.
E se suol nuovo si può discutere, sul potente ci sono pochi dubbi. Ma andiamo con ordine.

L’informatica quantistica è iniziata nei primi anni ’80, quando il fisico Paul Benioff propose un modello meccanico quantistico della macchina Turing. Richard Feynman e Yuri Manin suggerirono in seguito che un computer quantistico poteva eseguire simulazioni che erano fuori dalla portata dei normali computer. 

Nel 1994, Peter Shor sviluppò un algoritmo quantico polinomio-tempo per il factoring di numeri interi. Nella teoria dei numeri, la fattorizzazione di interi è la decomposizione di un numero composto in un prodotto di interi più piccoli. Se questi numeri interi sono ulteriormente limitati a numeri primi, il processo è chiamato fattorizzazione in numeri primi.

Tutto molto complesso vero? Ma più che altro a che cosa serve? Di fatto a decrittare. E torniamo al tema iniziale, la potenza di calcolo serve a decrittare, a rendere visibili segreti scritti da qualche parte. Segreti che normalmente sono leggibili solo dalle due parti che se li vogliono scambiare e che dispongono delle chiavi, cioè delle regole per proteggere e “sproteggere” i contenuti crittati. Le chiavi spesso si basano proprio sulla fattorizzazione dei numeri interi, che è un calcolo straordinariamente lungo e complesso da eseguire, e che, quindi, non può essere fatto rapidamente ed agevolmente da chi non ha la chiave.

L’esistenza di un algoritmo quantistico polinomio-tempo dimostra che uno dei protocolli crittografici più usati è vulnerabile ad un avversario che possiede un computer quantistico.

Ed ecco quindi spiegata la corsa ai computer quantistici, dalla quale nessuna superpotenza politica e militare si potrà esimere, a costo di pagare il prezzo di restare nudi senza un briciolo di protezione nelle comunicazioni riservate. Argomento che, in parte, spiega anche la grande quantità di risorse che vengono investite in questo campo ed il perché la corsa sta accelerando nel tempo.

Una corsa che si è rivitalizzata agli occhi dell’opinione pubblica, poche settimane fa, quando Google ha annunciato che il suo computer quantistico, Sycamore, ha svolto in pochi secondi un calcolo che un supercomputer avrebbe fatto in 10.000 anni. Questo ha aperto una diatriba importante con IBM, uno dei principali produttori di supercomputer, che ha cercato di smontare l’affermazione di Google sui 10.000 anni.

Ed il bello di questa storia è che hanno ragione entrambi. Proviamo a spiegarci. Gli informatici distinguono tra programmi che girano nel tempo polinomiale “veloce” e nel tempo esponenziale “lento”. I programmi lenti macinano in modo esponenziale e veloce, dato che la dimensione del problema che gli si chiede di risolvere diventa sempre più grande. I programmi veloci rimangono veloci anche quando si chiede loro di masticare un numero davvero grande di informazioni e calcoli.

Nel suo articolo pubblicato su Nature, Google ha dimostrato che il loro computer quantistico a 53-qubit esegue un certo calcolo specializzato in tempo polinomiale veloce. Un supercomputer classico avrebbe potuto eseguire il compito, ma avrebbe potuto farlo solo nel tempo esponenziale lento. Questo è molto più importante del tempo necessario in sé’, la differenza sta più nel metodo di calcolo che nella sua velocità.

Quindi non è importante che un supercomputer avrebbe potuto eseguire il calcolo in 10.000 anni o meno, e quindi ha ragione IBM quando dice che anche un supercomputer avrebbe potuto eseguire il compito. 

Ciò che conta è che la macchina di Google sta risolvendo un problema computazionale in un modo fondamentalmente diverso da quello di un computer classico. Un modo che è straordinariamente veloce, per sua natura. Ed in questo ha ragione Google.

Senza trascurare una serie di altri elementi fondamentali. Non solo Sycamore era più veloce della sua controparte classica, ma era anche circa 10 milioni di volte più efficiente dal punto di vista energetico. E scusate se è poco.

Questa differenza significa che ogni volta che il computer quantistico cresce anche di un solo qubit, un computer classico dovrà raddoppiare di dimensioni per tenere il passo. Quando un computer quantistico arriverà a 70 qubit,  probabilmente entro i prossimi due o tre anni, un supercomputer classico dovrebbe occupare l’area di una città per tenere il passo. Con tutto quello che questo comporta in termini di efficienza, energia, raffreddamento e tutto quanto detto poco fa.

A questo punto mi sorge spontanea una domanda che spero sia venuta in mente anche a voi: ma se già con i supercomputer possiamo fare una serie di cose meravigliose ed utilissime per la società, a cosa ci servono in pratica in computer quantistici? Tutto questo baillame si può davvero spiegare solo con il decrittare messaggi cifrati? dopo neanche 100 anni di evoluzione siamo partiti da Colossus per tornare ad una macchina che fa la stessa cosa?

Ovviamente non è così. Prima di tutto, se abbiamo un computer quantistico, gli scienziati potranno condurre esperimenti virtuali. Il Quantum computing è iniziato con l’osservazione di Feynman che i sistemi quantistici sono difficili da modellare su un computer convenzionale. Se avessimo un computer quantistico, potremmo usarlo per modellare sistemi quantistici. Per esempio, potremmo modellare il comportamento di atomi e particelle in condizioni insolite (per esempio, energie molto elevate che possono essere create solo nel Large Hadron Collider) senza creare queste condizioni insolite. Oppure potremmo modellare reazioni chimiche, perché le interazioni tra gli atomi in una reazione chimica è un processo quantico. Insomma potremo andare a modellizzare ed esplorare il comportamento degli elementi infinitesimali piccoli della materia. Un livello di approfondimento superiore a quello che può fare un supercomputer.

Un computer convenzionale elabora le informazioni codificandole in 0 e 1. Se abbiamo una sequenza di trenta 0 e 1, per esempio, abbiamo circa un miliardo di valori possibili. Tuttavia, un computer classico può essere solo in uno di questi un miliardo di stati allo stesso tempo. Un computer quantistico può essere in una combinazione quantistica di tutti questi stati, chiamata sovrapposizione. Questo gli permette di eseguire un miliardo o più copie di un calcolo allo stesso tempo. In un certo senso, questo è simile a un computer con un miliardo di processori che eseguono calcoli diversi allo stesso tempo in parallelo, ma con una differenza cruciale. Per un computer parallelo, abbiamo bisogno di un miliardo di processori diversi. In un computer quantistico, tutti i calcoli di un miliardo saranno eseguiti sullo stesso hardware. Questo è noto come parallelismo quantistico.

Questo vuol dire che, invece di risolvere i problemi poco a poco come facciamo ora con i computer classici, i computer quantistici affrontano l’intero problema contemporaneamente. Questo apre le porte a sviluppi sorprendenti in ogni campo, dai servizi finanziari alla sicurezza nazionale. Cioè potranno risolvere anche le stesse tematiche che stanno affrontando oggi i supercomputer, ma con un approccio completamente diverso ed esaustivo.

Mi viene anche da pensare alle straordinarie possibilità date dalla potenza di calcolo applicata alle tecnologie distribuite, come la blockchain. E’ una tecnologia che, come sapete, si basa sulla soluzione di calcoli matematici complessi, e quindi poterli fare rapidamente e contemporaneamente, ne accelererebbe l’adozione, oppure al contrario la farebbe implodere rendendola facilmente decrittabile. 

Ma forse, il bello di questa storia, è che la migliore applicazione dei computer quantistici, forse la scopriranno solo i computer quantistici stessi. Senza essere inutilmente tecno-fideisti, comunque il claim di questo podcast era e resta “un futuro pieno di possibilità”.

Del resto aveva ragione Einstein, l’universo è folle.

 

× Whatsapp