Il supercomputer (o supercalcolatoreSUPERCALCOLATORE in "Enciclopedia Italiana" (treccani.it)) è un tipo di sistema di elaborazione progettato per ottenere capacità di calcolo con un numero di cifre, dette bit, estremamente elevate rispetto a quelle dei calcolatori, base, presenti prima della realizzazione (assemblaggio) della macchina superiore che si sta realizzando.

Storia

Sono considerati supercomputer i calcolatori con la massima capacità di calcolo esistente nella contemporanea generazione evolutiva, in corso nel pianeta in un dato periodo storico. Questa definizione comprende i primi calcolatori a partire dalla macchina analitica di Babbage passando per i vari modelli di Zuse (i primi computer funzionanti) fino ad arrivare ai supercomputer dei giorni nostri.

Molti esperti dell'informatica invece fanno risalire i supercomputer agli anni cinquanta e in particolare al NORC prodotto da IBM per via delle soluzioni particolari adottate per ottenere una macchina con le migliori prestazioni di calcolo e quindi con soluzioni tecniche elettroniche e di programmazione diverse da quelle utilizzate per i modelli fino ad allora creati. Il termine super computing venne utilizzato per la prima volta dal quotidiano New York World nel 1920 in un articolo che descriveva una macchina elettromeccanica costruita dall'IBM per la Columbia University

Tra gli anni sessanta e la metà degli anni settanta la società CDC con i suoi supercomputer fu l'azienda leader del settore. I tecnici della CDC per ottenere elevate prestazioni di calcolo svilupparono diverse soluzioni tecnologiche come l'utilizzo di processori specializzati per i diversi compiti (CDC 6600) l'utilizzo di pipeline (CDC 7600) e l'utilizzo di processori vettoriali (CDC STAR-100). Scelte strategiche della CDC rischiarono di far fallire la società e alcuni tecnici insoddisfatti dei dirigenti della società abbandonarono la CDC per tentare nuove strade. Tra questi il più famoso fu Seymour Cray che con il Cray-1 segnò una nuova strada per le soluzioni tecnologiche utilizzate e per l'elevata potenza di calcolo sviluppata.

Dalla metà degli anni settanta fino alla fine degli anni ottanta la Cray Research rappresentò il leader nel settore del supercalcolo. Cray estese le innovazioni utilizzate nelle macchine della CDC portandole al loro estremo e utilizzando soluzioni innovative come il raffreddamento a liquido o delle strutture a torre ove alloggiare le schede con le unità di calcolo in modo da ridurre la lunghezza media delle connessioni.

Durante gli anni 80 si assistette alla nascita di molte società che svilupparono sistemi di calcolo ad alte prestazioni. Queste piccole società entrarono in concorrenza con realtà affermate come IBM o Cray e le costrinsero a effettuare radicali riduzioni di prezzo dei sistemi per rimanere competitive. Alla fine degli anni 80 e anni novanta i supercomputer divennero macchine a parallelismo massivo basate su centinaia se non migliaia di processori elementari. Inizialmente questi processori erano ancora dei processori sviluppati esplicitamente per il supercalcolo come quelli utilizzati dal CM-5/1024 ma verso la fine degli anni novanta oramai si era passati definitivamente a processori generici che fornivano elevate prestazioni e costi ridotti per via della produzione in serie attuata da ditte come Intel o AMD. Le piccole ditte nate durante gli anni 80 erano fallite o erano state assorbite dalle grosse società, la stessa Cray fallì e fu acquisita dalla Silicon Graphics.

Negli ultimi anni i supercomputer sono macchine sempre più parallele e dotate di un numero sempre maggiore di processori elementari. Esempio eclatante fu il Blue Gene/L che con i suoi 212 992 processori divenne la macchina più potente del pianeta quando fu presentato. Lo sviluppo di questi sistemi oramai è svolto da grandi società di informatica come IBM o HP per via degli elevati costi di realizzazione dei sistemi di calcolo. I supercomputer oramai sono macchine costruite su ordinazione, sono pezzi unici progettati per le specifiche necessità dell'acquirente e realizzati assemblando componenti standard in modo da contenere i costi di sviluppo e produzione.

È da notare che l'Europa, dopo un inizio promettente, non ha mai trainato la ricerca dell'ambito dei supercomputer e in generale dei computer. Dalla seconda guerra mondiale fino agli anni novanta gli Stati Uniti d'America hanno praticamente posseduto sempre i più potenti computer del pianeta. Ma dagli anni novanta in poi il Giappone ha iniziato a imporsi come concorrente credibile all'egemonia statunitense grazie a cospicui finanziamenti pubblici a progetti di supercalcolo svolti da società nipponiche in cooperazioni con le locali università, particolarmente significativo è stato lo sforzo di NEC nel settore. Negli anni duemila il progetto Blue Gene (finanziato dal Dipartimento della Difesa Statunitense) ha rinsaldato la posizione statunitense, ma negli ultimi anni progetti cinesi e giapponesi sembrano poter rimettere in discussione la leadership statunitense.

Nel 2015 è iniziata la costruzione di Aurora, un supercomputer gestito dal Dipartimento per l'Energia degli Stati Uniti e installato presso l'Argonne Leadership Computing Facility nell'Illinois. Con 20 Terabyte di capacità di memoria e 32 TB/secondo di larghezza di banda, è capace di elaborare un quintilione di operazioni.

Descrizione Filosofia Ciò che differenzia un supercomputer da un classico computer non è solo la maggior potenza di calcolo ma anche le architetture utilizzate per sviluppare queste macchine. I classici computer sono progettati secondo l'architettura di von Neumann, dato che le operazioni che l'utente esegue di solito con la macchina possono essere svolte in modo efficiente da questa architettura. I supercomputer invece spesso analizzano molti dati senza una vera interazione dell'utente, dato che usualmente devono eseguire un numero ridotto di operazioni su un elevato numero di dati. I supercomputer, quindi, utilizzano architetture alternative che sono in grado di assolvere questi compiti con maggiore efficienza rispetto all'architettura di Von Neumann.

Negli ultimi anni questa distinzione si è comunque affievolita, dato che il diffondersi dei giochi tridimensionali ha costretto i computer classici e le loro schede grafiche ad adottare soluzioni sviluppate per i supercomputer, consentendo di ottenere elevate prestazioni a prezzi modesti, poiché i componenti sono venduti in decine (o centinaia) di milioni di pezzi e, quindi, i costi di ricerca e sviluppo sono distribuiti su un numero di elementi molto ampio.

Contestualmente l'aumento della potenza di calcolo dei microprocessori per computer, e problemi di carattere tecnico legati alla difficoltà di elevare le frequenze di funzionamento delle CPU, hanno spinto il settore del supercalcolo verso l'utilizzo di soluzioni classiche in modo da abbattere i costi senza penalizzare le prestazioni. Infatti i supercomputer più potenti del pianeta utilizzano microprocessori standard in collaborazioni con schede grafiche. I processori grafici delle schede grafiche si sono rivelati essere molto prestanti per alcune tipologie di operazioni matematiche comuni sulle elaborazioni scientifiche, quindi i moderni supercomputer utilizzano batterie di schede grafiche ad alte prestazioni.

Caratteristiche

I supercomputer sono strumenti costosi, normalmente di proprietà di società o enti di ricerca che condividono il loro utilizzo tra molti dipendenti/ricercatori. Vista la velocità attuale dello sviluppo tecnologico nel campo dell'informatica e dei microprocessori, di solito perdono l'aggettivo "super" dopo pochi anni dalla loro nascita, superati da macchine ancora più potenti.

In passato, i supercomputer erano dotati di architetture più sofisticate e componentistica migliore degli usuali computer, al fine di poter svolgere con maggior efficienza le elaborazioni assegnate. Tuttavia, a partire dagli anni novanta, il divario fra la potenza delle CPU per supercomputer e i normali microprocessori commerciali è andato assottigliandosi progressivamente, e l'architettura dei supercomputer ha visto crescere progressivamente il numero di CPU impiegate. Attualmente la maggior parte dei nuovi supercomputer in progetto e di quelli in funzione è basata su cluster di migliaia o addirittura centinaia di migliaia di unità di calcolo non molto più potenti di un buon personal computer, connesse da reti locali ad alta velocità e coordinate da estensioni apposite del sistema operativo adottato, generalmente una versione di Unix: una di queste estensioni, openMosix, è anche open source.

Un parallelismo di calcolo simile è sfruttato da qualche anno a questa parte anche nei computer commerciali con le cosiddette tecnologie multicore.

Il parallelismo sempre più massiccio dei supercomputer e in generale delle macchine nate per garantire elevate capacità di calcolo ha stimolato molte ricerche in campo software per esplicitare il parallelismo intrinseco nelle operazioni e nei programmi: queste ricerche hanno portato alla definizione di alcuni linguaggi di programmazione paralleli, come l'Occam,

Prestazioni La velocità dei supercomputer viene generalmente misurato in "FLOPS" (FLoating Point Operations Per Second) o in suoi multipli come il TeraFLOPS (1012 FLOPS). Questa misura viene ottenuta eseguendo particolari benchmark che simulano classi di problemi reali per permettere un confronto obiettivo tra le varie macchine. Normalmente i benchmark effettuano una decomposizione LU di un'ampia matrice, un problema simile ai problemi presenti in campo scientifico ma sufficientemente semplice da essere eseguito in tempi ragionevoli.

Utilizzi I supercomputer vengono utilizzati per realizzare processi di calcolo intensivi come le previsioni meteorologiche (incluse le analisi sull'incidenza dell'inquinamento sull'ambiente), le analisi molecolari (calcolo della struttura tridimensionale e del loro ripiegamento, delle proprietà chimiche, ecc) simulazioni fisiche (simulazioni di fluidodinamica, simulazioni di detonazioni nucleari, di astrofisica, di fisica nucleare ecc), crittoanalisi e altro. I militari e le agenzie governative di tutte le nazioni ne fanno un uso molto intenso. Anche le aziende industriali ne stanno sperimentando l'utilità per i calcoli di previsione e di gestione di grandi volumi di dati che devono essere processati dall'APS (Advanced Planning System) del loro sistema gestionale (ERP).

Hardware Architettura

I supercomputer, per ottenere prestazioni sempre più elevate, nel corso degli anni hanno esplorato molte strade e sviluppato architetture hardware diverse dalle solite architetture utilizzate nei computer. Queste architetture sono ottimizzate per eseguire alcune tipologie di operazioni mentre sono inefficienti per altre elaborazioni e quindi le architetture sono state sviluppate a seconda dello scopo alla quale era dedicata la macchina.

Tecniche di elaborazione Il calcolo vettoriale venne sviluppato nei supercomputer e viene attualmente utilizzato per migliorare le elaborazioni di alcune tipologie di programmi. Dalle tecnologie di elaborazione vettoriale sono derivati i DSP e le elaborazioni SIMD che attualmente sono presenti in praticamente tutti i processori moderni tramite set specializzati di istruzioni.