Successivo

News

Velocità  da fare Nvidia a un supercomputer

Michele Costabile | 24 Aprile 2008

Le schede video hanno capacità  di calcolo straordinarie. Per rispondere alle richieste di elaborazione dei giochi sono stati creati computer massicciamente paralleli specializzati per il calcolo in virgola mobile e le operazioni vettoriali, proprio quello che serve per il calcolo scientifico o le simulazioni.

Nvidia Tesla, una soluzione per il supercomputing a basso prezzoLe schede video hanno capacità  di calcolo straordinarie. Per rispondere alle richieste di elaborazione dei giochi sono stati creati computer massicciamente paralleli specializzati per il calcolo in virgola mobile e le operazioni vettoriali, proprio quello che serve per il calcolo scientifico o le simulazioni.
Nvidia annuncia una catena di compilazione e strumenti hardware che permette di far stare una capacità  di calcolo di 4 Teraflops in un PC casalingo con la modica spesa di 200 dollari per Teraflop.
Il software in grado di abilitare queste prestazioni da supercomputer è NVCC: un ambiente di compilazione basato sul linguaggio C con estensioni specifiche per il parallelismo che viene proposto da Nvidia con una licenza open source.
La catena di compilazione separa il codice che girerà  sul processore primario, cioè sulla Cpu del computer, da quello che girerà  sulle Gpu delle schede video, mentre il linguaggio ha estensioni per mettere a frutto la possibilità  di attivare migliaia di thread in parallelo gestiti in hardware per segmentare un calcolo parallelo, come la testurizzazione di un poligono o una simulazione di fluidodinamica.

Secondo Nvidia, la parallelizzazione è una strada conveniente e economica, perché il numero di transistor dedicato alla Alu (unità  aritmetico/logica) di una Cpu è relativamente piccolo rispetto al numero di transistor impiegati per la cache e la logica di controllo, da qui l’idea di sperimentare con cache ridotte e un grande numero di alu, per questo l’architettura della Gpu prevede una cache ridotta, ma un costo di un solo ciclo per schedulare un thread e comunicare tra thread.
Il codice per la Gpu è espresso in Ptx, un “linguaggio macchina” intermedio, che viene tradotto nel microcodice specifico della Gpu dalla Gpu stessa, quindi il software può gestire diverse configurazioni, da un sistema con una o più schede VGA a un array di Gpu ospitate in un box esterno, il Tesla.
Su un singolo PC si possono installare fino a quattro schede, mentre un sistema Tesla permette di arrivare a 4 Teraflops su un singolo PC.
È un segno dei tempi che parliamo per la seconda volta di calcolo parallelo, un’indicazione del fatto che il trend di crescita della velocità  del clock delle CPU sta rallentando e si nutrono più speranze nella parallelizzazione per i prossimi incrementi di performance dato che l’incremento di velocità  del clock comporta una produzione di calore che cresce più velocemente della frequenza di clock.
Questa democratizzazione del supercomputing è un’occasione interessante, di quelle che capitano una volta in una carriera, di battere una strada non ancora asfaltata e si può iniziare con una configurazione davvero minima: il PC e la scheda grafica, che ha tutta la potenza di calcolo di riserva che può servire per sperimentare mentre fa il suo mestiere di spostare le nostre finestre.
Le applicazioni per cui il calcolo scientifico può entrare in casa sono la trascodifica dei video, un processo che bene si presta benissimo alla parallelizzazione, oppure il trattamento di immagini e audio. Anche critografia e compressione offrono possibilità  interessanti.
Per saperne di più developer.nvidia.com/CUDA.