Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica...

42
Scalabilità Energetica di Algoritmi Paralleli su Architetture Multicore Gennaro Cordasco

Transcript of Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica...

Page 1: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Scalabilità Energetica di Algoritmi Paralleli su

Architetture Multicore

Gennaro Cordasco

Page 2: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Outline

• Motivazioni

• Scalabilità Computazionale vs Scalabilità Energetica

• Modelli Computazionali e Assunzioni

• Una metodologia per massimizzare l’efficienza energetica su architetture parallele

• Esempio: Shared Memory

• Altri esempi

Page 3: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Motivazioni

• Ridurre il consumo di energia nei Computer…• Problema abbastanza semplice da risolvere su

architetture single-core• Energia consumata cresce in maniera non lineare (cubica)

rispetto alla frequenza della CPU.• E = TX X3

• Piattaforme emergenti: Architetture multi-core– Il problema si fa complesso

• Dipendenza fra i task• Energia per la comunicazione • Quanti core?• Quale frequenza utilizzare per ogni core?

Page 4: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Algoritmo Parallelo

• Cosa significa progettare un algoritmo parallelo?

– Definire in che modo il lavoro è suddiviso ed assegnato ai client/core

– Definire in che modo i client interagiscono/si scambiano informazioni

Page 5: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Dipendenza fra i task

• In ogni computazione parallela, il job da eseguire viene suddiviso in tasks

• I tasks possono essere dipendenti l’uno dall’altro

• Il grafo delle dipendenze è un grafo diretto aciclico (DAG) che descrive tali dipendenze

Page 6: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Grado di Parallelismo e Critical path

Dato un DAG

• I task senza dipendenze (figli) sono detti source, quelli senza genitori sono detti target

• Il critical path è la più lunga path fra un nodo source e uno target

Page 7: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Energia richiesta per la comunicazione

• Al fine di realizzare un job, è necessario far comunicare i task:

– I costi di comunicazione di un algoritmo parallelo in generale non sono costanti ed in particolare dipendono da:• Dimensione dell’input N

• Numero di core utilizzati P

Page 8: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Quanti Core?

• Considerando E = TX X3, più core utilizziamo e meglio sfruttiamo l’energia:

– Possiamo ad esempio raddoppiare il numero di core e dimezzare la frequenza per ottenere lo stesso risultato nello stesso tempo e con minore energia

– Detto in un altro modo due core con una frequenza ridotta all’80% consumano la stessa energia di un solo core alla frequenza massima, ma producono una potenza computazionale maggiore di circa il 60%

• E la comunicazione/interazione?

Page 9: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Scalabilità Computazionale vs Scalabilità Energetica

• Scalabilità Computazionale:– Relazione fra le prestazioni e il numero di core

usati.

• Scalabilità Energetica:– Relazione fra Energia dissipata e numero di core

usati.

• Perché sono diverse:– E possibile mascherare i tempi di comunicazione …

ma non l’energia richiesta per la comunicazione.

La prestazione è l’inverso del tempo richiesto per eseguire un determinato algoritmo su un determinato input

Page 10: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Scalability Metrics

• Energy Scalability:– Fissate l’istanza di un problema ed il tempo massimo

di esecuzione, qual è il numero di core ottimale per minimizzare l’energia dissipata?

• Performance Scalability:– Fissate l’istanza di un problema e l’energia disponibile,

qual è il numero di core ottimale per massimizzare le prestazioni?

• Energy Efficient Scalability:– Fissata l’istanza di un problema, qual è il numero di

core ottimale per massimizzare il rapporto prestazioni/energia?

Page 11: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Modelli di computazione

• Message passing

• PEM (Parallel External Memory)• P cores

• 2 livelli di memoria

Page 12: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Assunzioni

• Tutti i core operano alla stessa frequenza

• E’ possibile scalare la frequenza su qualsiasi valore. L’accesso alla cache dipende dalla frequenza dei core

• L’accesso alla memoria centrale richiede tempo costante (è indipendente dalla frequenza)

Page 13: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Notazione

• X, frequenza di un core• Tbusy = (numero di cicli) 1/X, tempo speso da un

core per l’esecuzione di una computazione• Tactive, tempo di attività di un core• Em, energia richiesta per l’accesso alla memoria• F, frequenza massima di un core• Mc, numero di cicli eseguiti durante l’accesso alla

memoria (alla frequenza massima)• N, dimensione input• P, numero di cores• A, istanza di un algoritmo parallelo

Page 14: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Energy Model

• P = CL V2 f + IL V

• Edynamic = Ed Tbusy X3

• Eleakage = El Tactive X

Page 15: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Metodo (Energy Scalability)

• Step 1: Analizzare il grafo delle dipendenze al fine di individuare la critical path A

• Step 2: Decomporre A in tempo computazione, tempo di accesso alla memoria e tempo di sincronizzazione

• Step 3: Ridurre la frequenza dei core in modo che il tempo richiesto da A coincida con il tempo massimo di esecuzione.

Page 16: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Metodo (Energy Scalability)

• Step 4: Calcolare il numero di cicli richiesti per eseguire A

• Step 5: Calcolare il numero di accessi alla memoria richiesti da A

• Step 6: Calcolare Tactive per ogni core (dipende

dalla frequenza calcolata allo step 3)

Page 17: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Metodo (Energy Scalability)

• Step 7: Calcolare l’energia dissipata in funzione dei dati calcolati agli step precedenti– Ecomp= Ed (numero di cicli) X2

– Emem = Em (numero di accessi alla memoria)

– Emes = Et (numero di messaggi scambiati)

– Eleak = El Tactive X

E= Ecomp+ Emem+ Emes+ Eleak

Page 18: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Metodo (Energy Scalability)

• Step 8: Risolvere l’equazione E= Ecomp+ Emem+ Emes+ Eleak

al fine di identificare il numero di core ottimale per minimizzare i consumi di energia

Page 19: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio 1: sommare Nnumeri in parallelo

• Architettura PEM– Assumiamo N multiplo di P e P potenza di 2

Procedura:1. Ogni core ricopia N/P numeri (a blocchi di B) nella

propria cache 2. Ogni core computa la somma dei propri numeri3. La metà dei core in esecuzione scrive nella memoria il

risultato ottenuto e passa nello stato idle4. L’altra metà legge dalla memoria un valore e lo somma

al proprio5. Se il numero di core attivi è maggiore di 1 vai al passo 36. L’ultimo core scrive il risultato nella memoria e passa

nello stato idle

Page 20: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio: sommane Nnumeri in parallelo

• Architettura PEM

– Step 1: Critical Path ----

– Step 2: Analisi Critical Path

• Letture di memoria

N/(B P) + log P

• Sincronizzazioni

log P

• Step di computazione(N/P) – 1 + log P

Page 21: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio: sommane Nnumeri in parallelo

• Architettura PEM

– Step 3: Nuova Frequenza

Page 22: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio: sommane Nnumeri in parallelo

• Architettura PEM

– Step 4: Numero totale di cicli

(((N/ P) – 1) P + (P – 1))

= (N – 1)

è il numero di cicli per una

somma

Page 23: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio: sommane Nnumeri in parallelo

• Architettura PEM

– Step 5: Numero totale di accessi alla memoria

(N / B) + 2 (P – 1)

Page 24: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio: sommane Nnumeri in parallelo

• Architettura PEM– Step 6: Calcolare Tactive

Page 25: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio: sommane Nnumeri in parallelo

• Architettura PEM

– Step 7:

Ecomp= Ed (N – 1) X2

Emem = Em ((N/B)+2(P – 1))

Emes = 0

Eleak = El Tactive X

Page 26: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio: sommane Nnumeri in parallelo

• Architettura PEM

– Step 8:

Fissiamo β=3, k=1000 e Mc=1000

Page 27: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio: sommane Nnumeri in parallelo

• Architettura PEM

– Step 8:

Page 28: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio: sommane Nnumeri in parallelo

• Architettura PEM

– Step 8:

Page 29: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio2: Message Passing

• N numeri – 4 nodi

N/4 additions

1 2 3 4

Communication period

Page 30: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

1 2 3 4

Esempio2: Message Passing

• Architettura MEM

– Step 1: Critical Path ----

– Step 2: Analisi Critical Path

• messaggi

log P

• Step di computazione

(N/P) – 1 + log P

Page 31: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

1 2 3 4

Esempio2: Message Passing

• Architettura MEMStep 3: Nuova Frequenza

cKPFT

PP

N

FX

log

log

'1

Page 32: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

1 2 3 4

Esempio2: Message Passing

• Architettura MEMStep 4: Numero di messaggi

(M-1)

Step 5: Ecomm = Em (P - 1)

Ecomp = Ec (N - 1) X’2

Eidle = Eidle Tidle

Page 33: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio2: Message Passing

Page 34: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Esempio2: Message Passing

k è il rapporto fra l’energia spesa per la comunicazione e quella per la computazione

Page 35: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Case Study: Naïve Quicksort

Ener

gy

No: of Cores

No Tradeoff: Single Core is good enough

Page 36: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Parallel Quicksort

• Data to be sorted is distributed across the cores (assume parallel I/O).

• A single pivot is broadcast to all cores.

• Each core partitions its own data

• Data is moved so that the lessers are at cores in one region, and greaters are in another.

• Recursively quicksort each region.

Page 37: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Parallel Quicksort Algorithm

Page 38: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

LU Factorization

• Given an N x N matrix A, find a unit lower triangular matrix L and an upper triangular matrix U, such that A = L U

• Use the coarse-grain 1-D column parallel algorithm

Page 39: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Case Study : LU Factorization

Page 40: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Conclusioni

• Il problema c’è…

• Il problema è interessante…

• La soluzione? La metodologia attuale merita senza dubbio ulteriori sviluppi.

BINGO

Page 41: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire
Page 42: Scalabilità energetica di Algoritmi Paralleli su ...cordasco/seminari/Scalabilita energetica di... · Algoritmo Parallelo •Cosa significa progettare un algoritmo parallelo? –Definire

Riferimenti

• "Towards Optimizing Energy Costs of Algorithms for Shared MemoryArchitectures"Vijay Anand Korthikanti and Gul Agha.To appear in ACM Symposium on Parallelism in Algorithms andArchitectures (SPAA), Santorini, Greece, 2010.

• "Energy-Performance Trade-off Analysis of Parallel Algorithms"Vijay Anand Korthikanti and Gul Agha.To appear in USENIX Workshop on Hot Topics in Parallelism (HotPar),Berkeley, California, USA, 2010.

• "Analysis of Parallel Algorithms for Energy Conservation inScalable Multi-core Architectures"Vijay Anand Korthikanti and Gul Agha.International Conference on Parallel Processing (ICPP), Vienna, Austria, 2009.