GPU, un microprocessore Un progetto che avrebbe dovuto cambiare il mondo e unintroduzione in un campo di ricerca davvero interessante...
Parallelizzare è difficile!! Nella vita reale: ad esempio lavarsi i denti, leggere un fumetto e vestirsi... Al più tardi a scuola ci si accorge che lattaccapanni è rimasto nella giacca! Su di un supercomputer: si risolva lequazione parziale di Laplace su un poligono e in parallelo, con il metodo iterativo di Jacobi. È importante mantenere la comunicazione fra i nodi al minimo. Altrimenti, più nodi si utilizzano, più il calcolo diventa lento...
Come si programma in parallelo al giorno doggi?? Si definisce un numero fisso di processori (=p) che prendono parte al calcolo, prima che il programma venga eseguito sul supercomputer. OpenMP: Il compilatore si incarica completamente della parallelizzazione (il programmatore dà solo delle direttive per aiutarlo) MPI (Message Passing Interface): Il programmatore deve definire da solo la comunicazione fra i nodi. Di solito però si scrive un programma da far partire con parametri diversi, senza che ci sia comunicazione fra i nodi.
Un confronto fra supercomputer Il tuo computer (a un Gigahertz) esegue circa mezzo miliardo di operazioni al secondo = ½ GigaFlop, questa era la potenza di un supercomputer, dieci anni fa! un supercomputer con Shared Memory (= tutti i processori accedono allo stesso banco di memoria), arriva a 470 Gigaflops (HP Superdome) un Linux Beowulf Cluster con Distributed Memory e 502 processori (ogni processo ha memoria propria), circa 266 Gigaflops
Un confronto fra supercomputer (2) Il supercomputer giapponese Earth Simulator calcola a 35 Teraflops (=35000 Gigaflops) Il progetto il primo progetto di successo sul principio del Grid Computing calcola a 43 Teraflops!
Le CPU del giorno doggi sono disoccupate!! Più del 80% del tempo di calcolo di una normale CPU è speso inutilmente, nellattesa che lutente schiacci un tasto o muova il mouse... Gli attuali sistemi operativi possono eseguire programmi in background, senza che lutente se ne accorga.
Internet - Supercomputer Se tutti i computer della Terra si potessero fondere in un cluster solo, quale potenza di calcolo si potrebbe teoreticamente raggiungere?? 400 millioni di computer a ½ Gigaflop = 200 millioni di Gigaflop = Teraflop = circa 2000 Supercomputer!
Confronto fra supercomputer
caccia a E.T.!! caccia a E.T.!! Un vecchio supercomputer distribuisce dati di un radiotelescopio a dei computer normali. Su questi computer è installato un piccolo programma che analizza i dati nel tempo inutilizzato delle CPU. Lanalisi si svolge utilizzando una lunga e pesante trasformazione di Fourier. I risultati dellanalisi sono poi rispediti al vecchio supercomputer. Tutti possono partecipare al progetto! Anche un 80486! Tutti possono partecipare al progetto! Anche un 80486!
Ricerca contro il cancro United Devices, come distribuisce dati che vengono analizzati da una rete di normali computer, messi a disposizione da volontari.
Attenzione! In questi due progetti, e Ricerca contro il Cancro, il numero di processori coinvolti (=p) non è definito già allinizio… I computer possono entrare e uscire dal calcolo quando e come vogliono… Ciò è diverso da MPI e OpenMP!!
Unestensione del modello client/server?? Client / Server Esempi: Ricerca contro il Cancro (United Devices) Rete Peer to peer Esempi: Kazaa, Gnutella, eMule, GPU processing unit?? Se rv er Cl ie nt Client/Ser ver Peer to peer No de
Come funziona a grandi linee una rete Peer-to-Peer?? Node A A A A Un pacchetto in arrivo… … è rispedito attraverso tutte le altre connessioni Problema della crescita geometrica dei pacchetti! I duplicati vanno gettati, altrimenti la rete collassa.
Come si potrebbe migliorare?? Lidea proposta da un team della Princeton University, basata su delle simulazioni Node A A Un pacchetto in arrivo... … è rispedito soltanto attraverso una connessione scelta a caso
Lidea di GPU Computer messi a disposizione da volontari lasciano girare GPU. GPU si collega automaticamente a una rete peer-to-peer GPU mette a disposizione biblioteche di funzioni scientifiche e ludiche. Ogni persona che installa GPU ha la possibilità di utilizzare gli altri computer, per eseguire propri calcoli.
Lidea di GPU (2) GPU è divisa in tre parti Il Routing Layer rispedisce pacchetti di calcolo Una macchina virtuale interpreta i pacchetti di calcolo con laiuto di una biblioteca di plugins. I plugins sono DLL compilate che estendono la funzionalità di un nodo
Lidea di GPU (3) La macchina virtuale utilizza la notazione polacca diventa 1,1,+ I pacchetti di calcolo vengono cammuffati come ricerca di files: ad esempio GPU:1,1,+ viene interpretato come un calcolo dalle GPU connesse alla rete peer-to-peer.
GPU in pratica Due plugins (Pi e calcolo del logaritmo discreto) Continuazione come progetto Open Source Il prototipo si può scaricare da Internet
GPU in pratica (2) La versione implementa tutto ciò che è descritto nella documentazione... Ma è molto instabile. La versione è molto stabile (grazie al componente TGnutella di Kamil Pogorzelski), ed è raccomandata.
Screenshots
Screenshots (2)
Links Global Grid Forum EU Grid: I 500 Supercomputer più veloci: Ricerca contro il cancro: