Obiettivo Exaflop

    Digitiamo su Google la parola “coccodrillo”. Ma mentre procediamo il meccanismo interno di Instant Google ci propone istantaneamente varie scelte (corriere, comune di Roma, …), basandosi sui siti più frequentati da noi in passato o più gettonati in generale. Non appena poi abbiamo completato la digitazione, veniamo subito informati che in rete vi sono tre milioni e mezzo di documenti (indicizzati dal motore di ricerca) che contengono il termine “coccodrillo”. La cui lista ci viene prontamente snocciolata.

    Cerchiamo un libro su Amazon. Prima ancora di cominciare, veniamo a sapere quali siano i libri che in questo momento altri clienti stanno guardando. E quando poi abbiamo individuato quello che cercavamo, appare immediatamente l’elenco degli altri libri che chi ha acquistato questo articolo ha acquistato a sua volta. Le macchine impiegate per ottenere questi risultati non hanno certamente svolto calcoli intensivi, ricorrendo a prestazioni misurabili in termini di numero di operazioni matematiche al secondo. Piuttosto si è trattato di andare a pescare quanto occorreva in gigantesche basi di dati, accedendo velocemente alle locazioni di memoria dove si trovano i dati necessari. E per di più, gestendo in parallelo molte migliaia di “clienti”, senza introdurre attese apprezzabili per nessuno di essi: nel caso di Google si tratta di circa un miliardo di richieste al giorno, in una quarantina di lingue diverse.

    È immediato concludere che nei casi citati, come in molti altri (Facebook, Twitter,…), il benchmarking (la misura delle prestazioni dei calcolatori) tradizionale, basato sulla misura dei tempi impiegati dalle macchine per eseguire calcoli di algebra lineare allo scopo di stabilirne la velocità di calcolo in termini di numero di flop (operazioni matematiche elementari a virgola mobile) al secondo, sebbene significativo, non risulta oggi pienamente soddisfacente. Almeno per gran parte delle applicazioni oggi prevalenti, che sono a carattere data intensive.

    Del resto, chi valuterebbe le prestazioni di un’automobile basandosi esclusivamente sulla sua velocità massima, mettendo così da parte altri elementi di valutazione, quali il consumo di carburante, l’entità di emissioni di anidride carbonica, e via dicendo? È proprio per questo che sono stati introdotti nuovi criteri di valutazione, più appropriati. Come il benchmark graph500  che è basato sulla teoria dei grafi e riconduce essenzialmente le prestazioni alla misura del numero di “attraversamenti di connessioni” al secondo compiuti dalla macchina. E qui è interessante notare che i calcolatori più veloci secondo il benchmark tradizionale risultano più deboli di altri alla misura con il graph500.

    I calcolatori più veloci

    Naturalmente, nelle applicazioni di supercalcolo più tradizionali, computing intensive quali per esempio le simulazioni di fisica in tre dimensioni, la potenza di elaborazione espressa in termini di velocità di calcolo mantiene pieno significato. Sul sito TOP500 sono raccolte informazioni sui 500 calcolatori più veloci in funzione nel mondo, la cui lista viene periodicamente aggiornata. A giugno 2011, in cima all’elenco troviamo il supercalcolatore giapponese K, prodotto da Fujitsu e installato a Kobe presso l’Istituto Riken di Scienza del calcolo. Che ha appena spodestato il capofila precedente, la macchina cinese Tianhe-1A. E qui è piuttosto significativa la dominanza delle macchine asiatiche: ben quattro fra le prime cinque della lista, relegando al terzo posto il supercalcolatore USA Jaguar prodotto da Cray. E l’Europa? La troviamo soltanto al nono posto, rappresentata dal calcolatore francese Tera-100 prodotto da Bull.

    La macchina giapponese K, in particolare, utilizza circa 80 mila microprocessori a 8 nuclei (core) per fornire una velocità di calcolo di oltre 8 petaflop (dove peta significa 1015), tre volte maggiore della macchina cinese Tianhe e cinque volte maggiore della statunitense Jaguar, con un assorbimento di potenza di 10 MW. La sua denominazione proviene dalla parola giapponese “Kei”, che significa 1016, indicando l’obiettivo di raggiungere la velocità di 10 petaflop.

    Sono anche interessanti le prospettive future delle macchine ultraveloci in vista di raggiungere l’obiettivo, alquanto ambizioso, dell’exaflop (dove exa significa 1018). Perché una loro crescita in scala rispetto alle attuali appare oggi impraticabile. Una macchina cento volte più potente della giapponese K, che fosse semplicemente cento volte più grande, richiederebbe infatti una potenza di alimentazione veramente improponibile: 1 GW, cioè quanto produce una grossa centrale termoelettrica. Per di più con un rilascio di quantità di calore assai difficilmente gestibili. Qualche vantaggio si otterrebbe riducendo a 0,5 volt la tensione di alimentazione dei transistori usati nei microprocessori, sebbene questa scelta possa condurre ad aumentare la probabilità di errori. Ma quanti sono i minuscoli transistori impiegati in un supercalcolatore? Dato che ciascun microprocessore SPARC64VIIIfx della macchina giapponese K ne contiene 760 milioni, il totale ammonta a circa 50 mila miliardi.

    Per raggiungere l’obiettivo dell’exaflop in modo realistico sembra infatti necessaria una vera e propria svolta nelle scelte di progetto, come ha stabilito di recente un gruppo di lavoro istituito dall’agenzia americana DARPA (la stessa che a suo tempo introdusse la rete Internet). Come avvenne anni fa, assai vantaggiosamente, con l’interruzione della corsa verso frequenze di clock sempre più alte e l’introduzione dei microprocessori “multipli” (multicore). Operazione che, questa volta, dovrebbe svolgersi con particolare riguardo alle architetture e alle prospettive di progresso nelle tecnologie di memoria. In particolare operando per disporre i giusti tipi di memorie nei punti giusti.

    Articolo pubblicato su Sapere. Ecco come abbonarsi alla rivista

    LASCIA UN COMMENTO

    Please enter your comment!
    Please enter your name here