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