Parallel Computing: storia del calcolo ad alte prestazioni
Che cos’è il parallel computing? In letteratura un primo riferimento all’utilizzo di uno strumento di calcolo ad alte prestazioni capace di fornire più risultati nello stesso tempo si pensa sia quello comparso nella pubblicazione della biblioteca universale di Ginevra risalente al 1842 il cui titolo era “Sketch of the Analytical Engine Invented by Cherles Babbage“, ad opera di J.F. Menabrea.
Il suddetto articolo discuteva della necessità di avere una macchina di calcolo da poter impiegare nel caso in cui si dovessero eseguire una lunga serie di calcolo identici, come ad esempio un insieme di moltiplicazioni di due numeri costituiti ognuno da venti cifre. In questo modo si risparmiavano tempo e processi, e si riusciva a fornire più risultati contemporaneamente.
Non sappiamo se il parallelismo fosse effettivamente implementato dalla macchina analitica, ma in ogni caso già a quei tempi era chiaro l’impatto dello strumento di calcolo sulla metodologia di risoluzione di un problema scientifico.
Lo scopo del parallel computing
A cosa serve il calcolo ad alte prestazioni? La risposta può sembrare banale, ma in realtà non lo è. Obbiettivo del calcolo ad alte prestazioni e quindi di un super computer è quello di risolvere problemi complessi. Con il termine “super-calcolatore” ci riferiamo ad un sistema che fornisce le prestazioni più elevate in quel dato momento. Come si misurano le prestazioni di un super-calcolatore? La prestazione di un super-calcolatore viene misurata dal tempo necessario per risolvere una particolare applicazione.
Evoluzione negli anni
Ecco un breve excursus negli anni per avere un idea dell’evoluzione della potenza dei super-calcolatori nel tempo:
- anni 70-80: 106 flops (M FLOPs) calcolatori sequenziali-scalari “CDC 7600”, “IBM 360”;
- anni 80-90: 109 flops (G FLOPs) calcolatori vettoriali “CRAY 1”, “CRAY X-MP”.
- anni 90-2000: 1012 flops (T FLOPs) calcolatori a parallelismo massiccio “CRAY T3D”, “ASCI White”.
- anni 2000-2010: 1015 flops (P FLOPs) calcolatori a parallelismo massiccio “CRAY Jaguar”.
- anni 2011-2016: 1017 flops (187 P FLOPs) summit, oak Ridge Lab
Come è possibile vedere si è passati da milioni (M) di operazioni al secondo negli anni 70-80 a milioni di miliardi di operazioni al secondo (P).
I nostri computer, ad esempio un moderno notebook di fascia media, sono in grado di eseguire all’incirca 10 miliardi di operazioni al secondo, circa la capacità di calcolo di un super-computer di fine anni Ottanta – inizio anni Novanta.
Perché è necessario il parallel computing
Per capire quanto sia importante il calcolo parallelo, prendiamo l’esempio delle previsioni metereologiche. Vista la complessità dei calcoli e la potenza di calcolo necessaria per effettuarli, con un comune PC si potrebbe arrivare al paradosso di avere le previsioni meteo dopo 23 giorni di calcolo. Una previsione meteo dovrebbe fornire informazioni in tempo reale o al più dopo mezz’ora. Maggiori prestazioni consentono di risolvere problemi in tempo reale e risolvere problemi di grandi dimensioni, su larga scala.
La situazione attuale
Esiste una Top 500 dei migliori calcolatori al mondo: ogni anno negli Stati Uniti si tiene un evento di enorme portata durante il quale viene stilata la lista dei migliori super-computer. Durante questa manifestazione tutti i produttori presentano il loro nuovo hardware e software per il calcolo delle alte prestazioni. Le prestazioni vengono valutate da “Linpack”, una libreria ormai standardizzata per queste misurazioni.
L’ultimo edizione della Top 500, la 59°, si è tenuta a giugno scorso. Il primo posto è ora detenuto dal sistema Frontier presso l’Oak Ridge National Laboratory (ORNL) negli Stati Uniti. Basato sulla più recente architettura HPE Cray EX235a e dotato di processori AMD EPYC 64C a 2GHz, il sistema ha 8.730.112 core totali, un’efficienza energetica di 52,23 gigaflops/watt e si basa su Gigabit Ethernet per il trasferimento dei dati.