Introduzione MPI & GPU Giuseppe Andronico CCR-WS10 Santa Tecla, 18 Maggio 2010 Sommario Introduzione MPI Calcolo parallelo & MPI Risorse MPI MPI & GRID Introduzione GPU Calcolo con le GPU Introduzione MPI Message Passing Interface: libreria che implementa un metodo di comunicazione tra processi eseguiti indipendentemente, dove ogni processo è una istanza dello stesso eseguibile Uno dei metodi più diffusi per realizzare applicazioni parallele Supporta diversi metodi di comunicazione tra processi: ► Tramite il bus di sistema ► TCP/IP ► Infiniband, Myrinet, ... Prevede comunicazione sincrona e asincrona Calcolo parallelo & MPI Esempio tipico: Lattice QCD Algoritmo di tipo Montecarlo su un reticolo di punti in 4 dimensioni Il cambiamento nel singolo punto dipende dallo stesso punto e dai prossimi vicini I punti possono essere divisi in due insiemi in modo tale che l'aggiornamento dei punti di un dato insieme non abbia correlazioni ⇒ possono essere trattati in parallelo Il reticolo viene diviso in parti eguali che verranno trattate dai vari processi I vari processi scambiano informazioni necessarie al corretto svolgimento del programma anche diverse volte per ciclo Calcolo parallelo & MPI Il grande numero di scambio di messaggi rende importante la latenza nell'attivazione di un collegamento più che la larghezza di banda L'esempio mostra un utilizzo tipico: lo stesso codice applicato a diversi insiemi di dati con scambio di informazioni tra le varie parti, tipicamente in modo sincrono In generale MPI supporta applicazioni dove processi diversi eseguono in parallelo del codice, non necessariamente lo stesso, che richiede lo scambio di informazione in modo sincrono o asincrono Risorse MPI Un qualsiasi cluster può essere usato per programmi MPI, ma per un elevato numero di collegamenti la latenza diventa un fattore importante Sono stati sviluppati cluster che fanno uso di Infiniband per minimizzare questo problema: al momento l'INFN conta alcune risorse di questo tipo su cui riporterà Roberto Alfieri MPI & GRID La presenza di risorse MPI con Infiniband distribuite rende interessante l'accesso via grid Esperienze in tal senso in EGEE (mpistart), Consorzio COMETA Sono richieste, comunque, delle adeguate politiche di utilizzo Con la fine di EGEE il supporto dovrebbe proseguire in EMI Ulteriori informazioni nel talk di Roberto Alfieri MPI & GRID Usare MPI con GRID solleva altri aspetti: L'accounting dell'uso delle risorse, che nel caso specifico richiede alcuni accorgimenti particolari, come ci dirà Marco Bencivenni Il monitoraggio delle risorse per verificare il corretto funzionamento e prevenire problemi agli utenti; di questo ci parlerà Paolo Veronesi Introduzione GPU L'evoluzione delle schede video ha portato i maggiori produttori a sviluppare unita di calcolo dedicate (GPU) estremamente potenti Due produttori (NVIDIA e ATI) hanno sviluppato delle librerie per accedere facilmente a questa risorsa Negli ultimi modelli la potenza di calcolo disponibile e' dell'ordine del TeraFlop in singola precisione Si possono montare più schede in un singolo computer Calcolo con le GPU Le GPU sono usate come co-processori Va scritto il codice necessario Bisogna gestire gli spostamenti dei dati tra memoria della CPU e memoria della GPU Il metodo di calcolo e' di tipo data-parallel: diversi thread (centinaia o migliaia) che eseguono lo stesso codice su porzioni differenti di dati Si devono usare librerie fornite dal produttore Servono compilatori che supportano le GPU Calcolo con le GPU Possibili grandi aumenti di prestazioni Richiesta algoritmi e programmazione specifici L'argomento viene presentato da Roberto Ammendola