CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO. A cura di Tania Caprini

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO. A cura di Tania Caprini"

Transcript

1 CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO A cura di Tania Caprini 1

2 CALCOLO SERIALE: esecuzione di istruzioni in sequenza CALCOLO PARALLELO: EVOLUZIONE DEL CALCOLO SERIALE elaborazione di un istruzione elementare: fetch, decode, execute, memory write back CALCOLO PARALLELO: suddividere un problema in parti discrete che possono essere risolte contemporaneamente su CPU diverse esecuzione simultanea di istruzioni mutuamente indipendenti su più microprocessori o più core dello stesso processore 2

3 CALCOLO PARALLELO: PERCHE'? Migliorare le prestazioni: Scale-up e Speed-up Superare vincoli di memoria. Aumentare affidabilità calcoli. Migliorare il rapporto Costo/Prestazioni. ALCUNE DIFFICOLTA' Problemi Parallelizzabili mondo fisico, previsioni del tempo, scacchi (BlueGene/L ) Problemi di Programmazione ed Architettura 3

4 ALCUNE MISURE (1) SPEED-UP: aumento della velocità, inteso come diminuzione del tempo dovuto all uso di n processori: S(n) = T(1)/T(n) T(1) = tempo totale seriale T(n) = tempo totale usando n processori S(n) = n speed-up lineare (caso ideale) S(n) < n speed-up di una caso reale S(n) > n speed-up superlineare (effetti di cache) Limite Asintotico: LEGGE DI AMDHAL 4

5 ALCUNE MISURE (2) EFFICIENZA: effettivo sfruttamento della macchina parallela E(n) = 1 caso ideale E(n) < 1 caso reale E(n) << 1 problematico E(n) = S(n)/n = T(1)/(T(n)*n) SCALABILITA': capacità di essere efficiente su una macchina parallela: aumento le dimensione del problema proporzionalmente al numero di processori usati per migliorare le prestazioni. 5

6 CLASSIFICAZIONE DEI CALCOLATORI: flusso di istruzioni (instruction stream) flusso di dati (data stream) SISD: Single Instruction Single Data Comune architettura scalare, con codice sequenziale. SIMD: Single Instruction Multiple Data Ad un'istruzione in ingresso corrispondono più valori in uscita, ottenuti dall esecuzione di ogni processore di una singola istruzione/programma che operano su dati differenti. MISD: Multiple Instruction Single Data Esiste solo a livello sperimentale; si eseguono più istruzioni relative ad un singolo dato. MIMD: Multiple Instruction Multiple Data Ogni processore può avere un proprio programma e lavora su flussi di dati differenti. Si può, in parte, schematizzare come più SISD in parallelo, senza vincolo di sincronismo tra le varie operazioni parallele. 6

7 GESTIONE DELLA MEMORIA: Architettura a memoria condivisa Ogni processore può accedere tutta la memoria: cambiamenti di locazione per un processore visibili a tutti I processori condividono le stesse risorse di memoria, ma operano indipendentemente. VANTAGGI - Facilità Programmazione - Condivisione Dati Veloci SVANTAGGI - Scalabilità limitata - Programmatore deve sincronizzare accessi alla memoria - Collo di bottiglia 7

8 GESTIONE DELLA MEMORIA: Architettura a memoria distribuita Ogni processore dispone di un area di memoria locale. I processori possono scambiare dati solo attraverso il network di comunicazione SVANTAGGI VANTAGGI - Alta scalabilità - Accesso rapido alla propria memoria - Costi limitati - Crucialità interconnessione e programmazione delle comunicazione di dati tra processi - Complesso distribuire e rintracciare dati 8

9 GESTIONE DELLA MEMORIA: Architettura ibrida - Il singolo nodo è un sistema Shared Memory - I nodi sono interconnessi tramite un network di comunicazione - La comunicazione tra i processori avviene - tramite un area di memoria condivisa (sullo stesso nodo) - tramite il network (se su nodi diversi) 9

10 OGGI Nei processori multi core l'interconnessione fra i core integrati nella CPU può avvenire attraverso il system bus, oppure tramite una crossbar ad alta velocità. Ogni core disponde di una propria cache, oppure può esservi una cache condivisa in modo dinamico. E DOMANI? 10