68
1 CALCOLO ALTE PRESTAZIONI- S. Orlando Introduzione Salvatore Orlando “CALCOLO AD ALTE PRESTAZIONI”

“CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

1 CALCOLO ALTE PRESTAZIONI- S. Orlando

Introduzione

Salvatore Orlando

“CALCOLO AD ALTE PRESTAZIONI”

Page 2: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

2 CALCOLO ALTE PRESTAZIONI- S. Orlando

Notizie generali sul corso

•  Sito Web: –  http://www.dsi.unive.it/~calpar/ –  Iscriversi alla lista di discussione

•  Esame suddiviso in due parti: –  Lettura di articoli scientifici o capitoli di libro, con piccolo orale sugli

argomenti del corso –  Progetto di Laboratorio

•  Il voto per i due esami di Calcolo Parallelo e Laboratorio come media dei due voti

•  Materiale didattico –  Slides –  A. Grama, A. Gupta, G. Karypis, V. Kumar. Introduction to Parallel

Computing, 2° Ed., Addison-Wesley, 2003. –  B. Wilkinson, M. Allen. Parallel Programming: Techniques and Applications

Using Networked Workstation and Parallel Computers. 2° Ed., Prentice-Hall, 2003.

–  The Sourcebook of Parallel Computing. J. Dongarra, I. Foster, G. Fox, et al. Morgan Kaufmann, 2002.

–  I. Foster. Designing and Building Parallel Programs. Addison-Wesley, 1995, Versione online disponibile presso http://www-unix.mcs.anl.gov/dbpp.

Page 3: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

3 CALCOLO ALTE PRESTAZIONI- S. Orlando

Calcolo parallelo

•  Calcolo sequenziale: –  risolve un problema tramite un algoritmo le cui istruzioni sono

eseguite in sequenza –  modello computazionale caratterizzato da un singolo

processore

•  Calcolo parallelo: –  risolve un problema tramite un algoritmo le cui istruzioni sono

eseguite in parallelo –  modello computazionale che prevede processori multipli e

relativi meccanismi di cooperazione –  l’algoritmo deve sfruttare in maniera efficiente il parallelismo

esplicitabile nel problema, per rendere più veloce l’esecuzione

Page 4: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

4 CALCOLO ALTE PRESTAZIONI- S. Orlando

Processo di parallelizzazione ottimale

•  Metodologia generale: –  dividere il problema tra processori (decomposizione) –  i vari processori lavorano sui propri pezzi del problema, e

comunicano per cooperare –  con l’obiettivo di bilanciare il carico e ridurre le comunicazioni/

sincronizzazioni allo stretto necessario

Page 5: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

5 CALCOLO ALTE PRESTAZIONI- S. Orlando

Trend nello sviluppo di hw/sw ad alte prestazione

•  Ultime decadi: migliorano le prestazioni dei microprocessori –  Legge di Moore (2x transistor/chip ogni anno e mezzo) –  Parallelismo/Pipeline nell’esecuzione delle istruzioni

•  ILP (Instruction Level Parallelism) •  Parallelismo implicito a grana finissima •  CPI medio ridotto di un ordine di grandezza (in una decade) •  Ciclo di clock ridottissimo (frequenza nell’ordine dei GHz) •  Incremento FLOPS di picco

•  Ultimi anni –  Il bottleneck del collegamento con la memoria, la cui tecnologia non è migliorata

dal punto di vista delle latenze, diventa più evidente •  si pone rimedio con la memoria cache, ma anche questo ha un limite

tecnologico e di costo –  Limiti oggettivi nell’estrarre ulteriore parallelismo ILP da un singolo programma

sequenziale

Page 6: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

6 CALCOLO ALTE PRESTAZIONI- S. Orlando

Trend nello sviluppo di hw/sw ad alte prestazione

•  Ultimi anni –  La curva delle prestazioni segna il passo per i processori più recenti

•  curva misurata rispetto al benchmark SPEC, ovvero insiemi standard e rappresentativi di programmi sequenziali

Page 7: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

7 CALCOLO ALTE PRESTAZIONI- S. Orlando

Trend nello sviluppo di hw/sw ad alte prestazione

•  Esistono quindi limiti nell’approccio basato su hw/sw sequenziale, anche se con parallelismo implicito a grana fine di tipo ILP –  i trend non fanno prevedere ulteriori incrementi di velocità

•  HW –  I costruttori di CPU corrono ai ripari, sfruttando l’area dei chip e

i grande numero di transistor per produrre CPU con processori multipli

•  Si prevede che il numero di processori (“core”) per chip dovrebbe raddoppiare ogni 2 anni

•  SW –  Parallelismo, anche esplicito, ovvero specificato direttamente

dal programmatore tramite opportuni linguaggi, librerie, ambienti di programmazione parallela

Page 8: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

8 CALCOLO ALTE PRESTAZIONI- S. Orlando

Trend nello sviluppo di hw/sw ad alte prestazione

•  I bassi costi oggi permettono la larga diffusione di server/workstation con 2/4/8 processori (anche sullo stesso chip) interconnessi in cluster –  usando reti veloci

•  Non solo calcolo scientifico, ma anche applicazioni di tipo business •  Ad esempio, per piattaforme parallele data intensive come web server, data

base, motori di ricerca, data mining –  maggiore banda aggregata di accesso alla memoria –  maggiore dimensione aggregata della memoria

Page 9: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

9 CALCOLO ALTE PRESTAZIONI- S. Orlando

Trend nello sviluppo di hw/sw ad alte prestazione

•  Piattaforme parallele usate anche per garantire high availability (ridondanza) •  Applicazioni scientifiche e di ingegneria richiedono l’accesso a piattaforme

più complesse, con centinaia di processori (MPP – Massively Parallel Processor)

•  Visto il campo applicativo in rapida espansione, è quindi estremamente importante capire dal punto di vista dei costi e delle prestazioni, e dei requisiti applicativi: –  Principi, strumenti e tecniche per programmare le piattaforme parallele

oggi disponibili

•  Applicazioni di visualizzazione e grafica computazionale usano pipe multiple per il rendering (rendering farm) –  Uso massiccio di farm

parallele da parte di recenti produzioni cinematografiche

Page 10: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

10 CALCOLO ALTE PRESTAZIONI- S. Orlando

•  Contro –  Lo sviluppo di software parallelo è considerato molto

difficile •  Complessità inerente nello specificare e coordinare task

concorrenti •  Algoritmi e software non portabili tra piattaforme differenti •  Ambienti di programmazione non standardizzati

–  Miglioramento continuo delle prestazioni dei microprocessori

•  “Ha senso dedicarsi sviluppare sw parallelo con costi elevati di sviluppo, visto gli incrementi di prestazioni dei microprocessori?”

•  In certe casi ha comunque senso per scalare con la dimensioni dei problemi da risolvere

Motivazioni contro il parallelismo

Page 11: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

11 CALCOLO ALTE PRESTAZIONI- S. Orlando

Argomenti a favore del parallelismo

•  A favore –  Standardizzazione hw

•  uso dei microprocessori off-the-shelf per realizzare piattaforme parallele

–  ambienti di programmazione paralleli più standard che migliorano la portabilità del sw

•  MPI, Open-MP, PVM –  parallelismo implicito a grana fine non sufficiente in futuro

•  limiti sulla quantità di parallelismo esplicitabile

Page 12: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

12 CALCOLO ALTE PRESTAZIONI- S. Orlando

Altri argomenti a favore del parallelismo

•  Bassa velocità della memoria e dei dischi –  Prestazioni non dipendono solo dalla velocità del calcolo, ma

anche dalla capacità della memoria di fornire i dati sui cui computare alla velocità richiesta

–  Von Neumann bottleneck •  L’uso delle gerarchie di memoria (cache) ha diminuito in parte le

conseguenze sulle prestazioni del bottleneck –  le cache diminuiscono le latenze di accesso alla memoria

•  Il problema comunque rimane, in quanto le prestazioni della memoria sono limitate della frazione di richieste alla memoria che riescono ad essere soddisfatte dalla cache

–  Le piattaforme parallele diminuiscono le conseguenze del bottleneck

•  Perché forniscono cache aggregate più grandi •  Banda aggregata di accesso alla memoria (anche dischi) più grande •  Necessario comunque sviluppare algoritmi paralleli in grado di

sfruttare il principio della località

Page 13: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

13 CALCOLO ALTE PRESTAZIONI- S. Orlando

Altri argomenti a favore del parallelismo

•  Le infrastrutture di rete –  Oggi è possibile usare Internet e i computer ad essa interconnessi

come una piattaforma a larga scala, ma eterogenea, per il calcolo parallelo/distribuito

–  Spesso l’esigenza nasce anche da vincoli sul movimento dei dati, che impediscono la centralizzazione degli stessi su una piattaforma standard parallela

–  Però non tutte le applicazioni sono adatte per poter essere eseguite su tali piattaforme …

–  Esempi: •  SETI@home (Search for Extra Terrestrial Intelligence) utilizza la potenza dei

desktop computer per analizzare i segnali elettromagnetici provenienti dallo spazio

•  Fattorizzazione di interi estremamente grandi, con applicazioni in crittografia e problemi di ottimizzazione

Page 14: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

14 CALCOLO ALTE PRESTAZIONI- S. Orlando

Programmare in parallelo

•  Un programma sequenziale può essere suddiviso in due tipi di sezioni: –  non parallelizzabili, ovvero inerentemente sequenziali –  potenzialmente parallelizzabili

•  I metodi di suddivisione delle sezioni parallelizzabili sono critici per il raggiungimento di elevate prestazioni

•  Scopo di una buona parallelizzazione: –  ottenere piccole sezioni sequenziali –  mantenere tutti i processori (equamente) occupati (load balancing) –  minimizzare le comunicazioni inter-processor (grana grossa) –  limitare la replicazione del calcolo allo stretto necessario –  evitare che i processori rimangano idle nell’attesa di

sincronizzazioni o latenze di I/O •  eliminare/spostare le sincronizzazioni •  associare ad ogni processore task multipli indipendenti (eccesso di

parallelismo) per nascondere idle times

Page 15: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

15 CALCOLO ALTE PRESTAZIONI- S. Orlando

A che serve il parallelismo?

•  Esistono applicazioni che storicamente richiedono maggiore capacità di quanto i computer sequenziali possano attualmente fornire

•  e-Science •  Esempi di problemi scientifici Grand Challenge, ovvero problemi

che non possono essere oggi risolti in tempi ragionevoli: –  Modellare grandi strutture di DNA –  Modellare e previsione dei fenomeni meteorologici globali, e di

quelli correlati (es. inquinamento, maree, ecc.) –  Modellare il movimento di corpi celesti

•  Le esigenze applicative sono duplici 1. ottenere computazioni che terminano in un tempo ragionevole 2. eseguire nello stesso tempo e con lo stesso algoritmo problemi

più complessi (es. simulazione su dati più grandi, o con time-step più piccolo)

Page 16: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

16 CALCOLO ALTE PRESTAZIONI- S. Orlando

E-Science

•  Modellazione del Clima e Previsioni atmosferiche

•  Ricerca di riserve energetiche •  Problemi di cosmologia, con

grandissime scale spaziali e temporali

Page 17: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

17 CALCOLO ALTE PRESTAZIONI- S. Orlando

e-Science & HPC Computational Science

•  HPC (High Performance Computing) offre un nuovo modo di fare scienza: –  Sperimentare, Teorizzare/Modellare, Computare

•  Il modello computazione è principalmente usato per approssimare sistemi chimico/fisici

•  Tra i vantaggi –  Giocare con i parametri della simulazione per studiare nuove

soluzioni, o eventi su cui non abbiamo raccolto dati sperimentali •  es. simulare eventi catastrofici

–  La possibilità di ripetere particolari eventi simulati –  Studiare sistemi quando non esistono teorie esatte

Page 18: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

18 CALCOLO ALTE PRESTAZIONI- S. Orlando

Esempio di applicazione: Industria delle automobili

•  Grandi utilizzatori di tecnologia HPC

•  Principali usi della simulazione: –  Aerodynamics (in modo simile all’industria aerospaziale) –  Crash simulation –  Metal sheet formation –  Noise/vibration optimization

•  Principali benefici: –  Riduzione del time-to-market di nuove automobili –  Aumento della qualità dei prodotti –  Riduzione della necessità di costruire prototipi –  Più integrazione ed efficienza nell’intero processo

manufatturiero

Page 19: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

19 CALCOLO ALTE PRESTAZIONI- S. Orlando

Previsioni del tempo

•  L’intera atmosfera è modellata dividendola in regioni o celle tridimensionali •  Il calcolo su ogni cella è ripetuto diverse volte per modellare il trascorrere

del tempo •  Esempio:

–  atmosfera suddivisa in celle di dimensioni 1 miglio × 1 miglio × 1 miglio, per un’altezza di 10 miglia (per un’altezza di 10 celle)

–  per un totale di circa 5 × 108 celle •  Supponiamo che il calcolo associato a ciascuna cella richiede 200 FP ops,

in un passo sono necessari 1011 FP ops •  Per una previsione meteo su 10 giorni, usando intervalli di tempo di

simulazione di 10 minuti, sono necessari 6 passi per simulare un’ora, per un totale di 1440 passi (circa 1,4 × 1014 FP ops) –  Un computer che operasse a 100 Mflops (108 FP ops/sec)

impiegherebbe più di 106 secs (circa 16 giorni !!!!) –  Per eseguire lo stesso calcolo in 10 minuti ci vorrebbe un computer in

grado di eseguire 0,2 Tflops (0,2 × 1012 FP ops/sec) •  Cosa succede se aumentassimo i passi o rimpicciolissimo le celle?

Page 20: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

20 CALCOLO ALTE PRESTAZIONI- S. Orlando

Simulazione movimento corpi celesti (N-bodies)

•  Ogni corpo celeste è attratto dagli altri dalla forza gravitazionale. •  Il loro movimento può essere predetto calcolando la forza che incide su ogni

corpo •  Se ci sono N corpi, dobbiamo calcolare N - 1 forze per corpo, o

approssimativamente N2 calcoli in totale •  Esistono algoritmi approssimati che richiedono N × log2 N calcoli

–  sono basati sulla suddivisione dei corpi in agglomerati di elementi vicini (galassie, sistemi solari)

–  interazioni tra agglomerati, invece che tra singoli corpi (es. Sistema solare approssimato con il centro di massa per calcolare l’interazione con la stella Proxima Centaury)

Page 21: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

21 CALCOLO ALTE PRESTAZIONI- S. Orlando

Simulazione movimento corpi celesti (N-bodies)

–  Gli algoritmi approssimati (come ad es. quello di Barnes-Hut) usano strutture dati irregolari organizzate ad albero (oct-tree)

•  tali alberi mantengono informazioni sui corpi presenti nello spazio, che viene suddiviso in sottoblocchi

•  su quali agglomerati di corpi ricadono nello stesso box •  sui centri e i valori di massa degli agglomerati di corpi

Page 22: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

22 CALCOLO ALTE PRESTAZIONI- S. Orlando

Simulazione movimento corpi celesti (N-bodies)

•  Gli algoritmi di simulazione degli N corpi si iterano per più passi: –  ad ogni passo si determina la nuova posizione dei corpi –  il calcolo deve essere quindi ripetuto

•  Supponiamo di avere una galassia con 1011 stelle. •  Anche se ogni calcolo potesse essere ottimisticamente fatto in 1 µs (10-6 s),

sarebbero necessari –  circa 109 anni per un’iterazione, usando l’algoritmo di complessità N2 –  quasi un anno per un’iterazione usando l’algoritmo approssimato (di

complessità N × log2 N)

Page 23: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

23 CALCOLO ALTE PRESTAZIONI- S. Orlando

Web Search Engines

Crawl Control

Crawlers

Ranking

Indexer

Page Repository

Query Engine

Collection Analysis

Text Structure Utility

Queries Results

Indexes

Page 24: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

24 CALCOLO ALTE PRESTAZIONI- S. Orlando

Data Mining (DM)

•  Applicazioni tipicamente commerciali/business •  Esplorazione & Analisi, in modo automatico o semi automatico, di

grandissime quantità di dati per scoprire e estrarre Pattern Significativi & Regole –  Pattern & Regole devono essere innovative, valide, potenzialmente utili,

comprensibili •  Algoritmi di DM su grandi quantità di dati costosi dal punto di vista

computazionale e di Input/Output •  DM è un passo del processo di KDD ….

Page 25: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

25 CALCOLO ALTE PRESTAZIONI- S. Orlando

DM

•  Disciplina che trae origine da vari campi: machine learning/AI, pattern recognition, statistica, database, e visualizzazione di dati scientifici

•  Alcuni dei più importanti Data Mining Tasks: •  Classification [Predittiva, Supervised]

•  Clustering [Descrittiva, Unsupervised]

•  Association Rule Discovery [Descrittiva, Unsupervised]

•  Le tecniche tradizionali (sequenziali) possono non essere adatte a causa di –  dati enormi e con alta dimensionalità –  natura eterogenea e distribuita dei dati

Page 26: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

26 CALCOLO ALTE PRESTAZIONI- S. Orlando

DM: Association rules

•  Uno degli algoritmi di DM più impiegati e più studiati dal punto di vista della parallelizzazione

•  Identifica regole associative all’interno di insiemi di transazioni, dato un certo supporto e una data confidenza

TID Items 1 Pane, Latte 2 Birra, Pane, Pannolini, Uova 3 Birra, Coca, Pannolini, Latte 4 Birra, Pane, Pannolini, Latte 5 Coca, Pane, Pannolini, Latte

Association rule: X⇒s,c y

Support: s =σ(X∪y) / |T|

Confidence: c = σ(X∪y) / σ(X)

Esempio: {Pannolini,Latte} ⇒s,c Birra

Il supporto è la probabilità che un certo itemset appaia nelle transazioni del dataset. s=P({Pannolini,Latte, Birra}) La confidenza è una probabilità condizionata c=P({Birra} | {Pannolini,Latte})

s = σ({Pannolini,Latte, Birra}) / Tot_trans = = 2/5 = 0.4 = 40%

c = σ({Pannolini,Latte, Birra}) /

σ({Pannolini,Latte}) = = 2/3 = 0.66

Page 27: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

27 CALCOLO ALTE PRESTAZIONI- S. Orlando

DM: Association rules

•  Per identificare tutte regole associative dato un certo supporto s –  si trovano prima tutti gli itemset frequenti, ovvero almeno con

supporto σ(Itemset) = s –  è il passo più costoso dell’algoritmo –  l’algoritmo più noto è Apriori [Agarwal, Srikant]

•  Apriori visita il dataset più volte, e identifica, ad ogni iterazione k, i k-itemset più frequenti –  l’algoritmo termina quando troviamo che, per un certo valore k, non

esistono k-itemset frequenti caratterizzati da quel certo valore di s •  Per supporti piccoli (es. 0.5 %) e dataset relativamente piccoli (es. 128 MB),

Apriori può impiegare anche diversi minuti per completare in sequenziale –  il tempo impiegato dipende

•  dalle caratteristiche del dataset, dal numero di item presenti nella transazioni, dalla dimensione del dataset, oltre che

•  dalla potenza del calcolatore, dalla memoria disponibile e dal I/O –  per provare più istanze dell’algoritmo, per scalare con la dimensione del

dataset, per rendere il processo di mining interattivo è necessario distribuire/parallelizzare l’algoritmo

Page 28: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

28 CALCOLO ALTE PRESTAZIONI- S. Orlando

Computer paralleli e loro programmazione

•  Negli scorsi anni abbiamo assistito al proliferare di architetture parallele diverse, associate con paradigmi di programmazione differenti e specializzati

•  A causa di ciò, programmare in parallelo è stata considerata un’attività complessa, che richiede l’uso di strumenti di programmazione a basso livello, e un’elevata attività di tuning dei programmi per ottenere alte prestazioni

•  Flynn [1972] ha introdotto la seguente tassonomia dei computer, dove le classi interessanti di computer paralleli sono MIMD (Multiple Instruction stream- Multiple Data stream) e SIMD (Single Instruction stream - Multiple Data stream)

Page 29: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

29 CALCOLO ALTE PRESTAZIONI- S. Orlando

Potenzialità dei 4 modelli di computer

Page 30: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

30 CALCOLO ALTE PRESTAZIONI- S. Orlando

SIMD

•  L’array di processori opera in modo sincrono, ovvero a ogni passo (global clock tick) tutti i processori eseguono la stessa istruzione su dati differenti –  Array processors : Connection

Machine, ICL DAP (Distributed Array Processor), MasPar MP

–  Pipelined vector computer : CRAY 1 & 2 e CYBER 205

–  Co-processori SIMD per multimedia –  GPUs (Graphics Proc. Units)

•  Macchine SIMD adatte per risolvere problemi data parallel regolari, dove la stessa istruzione può essere applicata a (partizioni di) dati distinti –  es.: Somma di 2 matrici: A + B = C. –  Se A[2][2] e B[2][2] distribuite su 4

processori, in parallelo: A11 + B11 = C11 A12 + B12 = C12 A21 + B21 = C21 A22 + B22 = C22

Page 31: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

31 CALCOLO ALTE PRESTAZIONI- S. Orlando

MIMD (Multiprocessor / Multicomputer)

•  Ogni processore opera in modo asincrono sotto il controllo di un proprio programma e su dati diversi

•  Come nel caso SIMD, la comunicazione dei dati e dei risultati può avvenire attraverso memoria condivisa o rete

•  Computer MIMD con memoria condivisa sono conosciuti come multiprocessors o tightly coupled machines. I multi-core attuali rientrano in questa classe.

•  Computer MIMD dove i processi comunicano tramite messaggi sono conosciuti come multicomputers o loosely coupled machines. Esempi sono le vecchie reti di Transputer, IBM SP, Intel Paragon, TM CM5, Cray T3E, Meiko CS-2, i moderni cluster di WS.

Page 32: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

32 CALCOLO ALTE PRESTAZIONI- S. Orlando

Shared memory vs message passing

•  Sia nel caso SIMD e sia nel caso MIMD per cooperare è necessario scambiare dati tra processori. Questo può essere fatto in due modi –  Usando SHARED MEMORY (SM) e SHARED VARIABLES –  Usando DISTRIBUTED MEMORY (DM) e MESSAGE PASSING

•  Alcune architetture moderne: Shared Memory Message Passing

Page 33: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

33 CALCOLO ALTE PRESTAZIONI- S. Orlando

Shared memory vs message passing

•  Nel caso SM abbiamo un unico spazio di indirizzamento fisico a cui i vari processori possono accedere –  problemi legati alla scalabilità, parzialmente risolvibile tramite cache –  modalità di cooperazione adatta per piccoli numeri di processori

(multiprocessor MIMD a 2-32 vie) –  message-passing emulato a software tramite astrazioni di canali di

comunicazione realizzati in SM

•  Nel caso DM abbiamo uno spazio di indirizzamento privato a ciascun processore, per cui per comunicare i processori devono scambiarsi messaggi via rete –  modalità tipica di molti MPP di tipo MIMD e dei cluster di WS con rete

veloce –  un unico spazio di indirizzamento (shared address space) può essere

emulato a software - Virtual Shared Memory (VSM)

Page 34: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

34 CALCOLO ALTE PRESTAZIONI- S. Orlando

Il processo di parallelizzazione

•  Una buona metodologia di progetto richiede di progettare in maniera indipendente dall’architettura target

•  Individuiamo prima cosa può essere eseguito concorrentemente (data/task parallelism)

•  Ritardiamo quanto più possibile tutti gli aspetti di progetto machine-specific

Page 35: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

35 CALCOLO ALTE PRESTAZIONI- S. Orlando

Il processo di parallelizzazione

•  Esempio di ciclo di progetto –  Partizionamento. Decomponiamo la computazione in task, a cui

assegniamo i dati su cui operare, e senza preoccuparci delle risorse fisiche disponibili (processori/memoria).

–  Comunicazione/Sincronizazione. Determiniamo la struttura di comunicazione/sincronizzazione per coordinare i task.

•  Accesso ai dati, comunicazione e sincronizzazione tra i processi •  Compito diverso se prevediamo una SM o una DM

–  Agglomerazione. Valutiamo le strutture di comunicazione / sincronizzazione, e cerchiamo di limitarle assegnando task piccoli (di minima granularità) a processi (thread) sequenziali più grossi. Necessario modello dei costi.

–  Mapping e Scheduling. I processi (thread) sono mappati sui processori per massimizzare l’utilizzo del processore e minimizzare le comunicazioni. Può essere effettuato staticamente o a runtime per bilanciare il carico. Scheduling locale dei processi assegnati allo stesso nodo.

Page 36: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

36 CALCOLO ALTE PRESTAZIONI- S. Orlando

Il processo di parallelizzazione (Foster)

Page 37: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

37 CALCOLO ALTE PRESTAZIONI- S. Orlando

Partizionamento / Decomposizione

•  Algoritmo sequenziale: –  funzione F applicata su un dato I

per produrre un dato O: O = F(I)

•  Data Parallelism o Domain Decomposition

–  Partizioniamo i dati –  I = {I1,…,In}

O = {O1,…,On}, dove Oj=F(Ij)

•  Task Parallelism o Functional Parallelism

–  Partizioniamo il controllo –  Pipeline (vantaggioso solo se

c’è uno stream di dati in input): •  O= F(I) = Fm( Fm-1( … F1(I)))

–  Task graph (esempio) •  O = F(I) = F3( F1(I), F2(I) )

•  Combinazioni di Task & Data Parallelism

F1 F2 Fm I O

F

I1 F F

I2 In

O1 O2 On

F1 F2

F3

O

I I

Page 38: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

38 CALCOLO ALTE PRESTAZIONI- S. Orlando

Partizionamento / Decomposizione

•  E’ buona norma provare strategie di partizionamento diverse, per poi valutarle durante le fasi successive

•  Es. di programma sequenziale da parallelizzare –  l’analisi Data Flow a livello delle singole operazioni (minima granularità)

mette in evidenza tutto il parallelismo esplicitabile nel programma

–  Per eseguire il programma, bisogna assegnare le operazioni ai processi (processori virtuali) da mappare poi sui processori reali

L = I1 * I2 M = I3 * I4 N = I5 * I6 O = I7 * I8 J1 = L * M J2 = N * O K = J1 * J2

I1 I2 I3 I4 I5 I6 I7 I8

* * * *

* * L M N O

* J2 J1

K

Page 39: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

39 CALCOLO ALTE PRESTAZIONI- S. Orlando

Comunicazione e Agglomerazione •  Il grafo data flow definisce un partizionamento funzionale

–  I nodi rappresentano task (di grana minima) eseguibili in parallelo –  Gli archi sono dipendenze sui dati (relazioni prod/cons), da trasformare

in comunicazioni esplicite o in sincronizzazioni •  dipende dal modello di programmazione (DM o SM)

–  Al massimo 4 task sono eseguibili in parallelo su processori diversi –  Se ogni task venisse eseguito in uno step da processori diversi:

•  Tseq=7 step Tpar=3 step Speedupmax= 7/3 = 2,3 su 4 proc

•  Il processo di agglomerazione tende a porre task dipendenti all’interno di uno stesso processo (da assegnare ad un processore) riducendo il grado di parallelismo massimo esplicitabile –  incrementare la granularità dei processi (da fine a medio/grossa)

•  riduce il rapporto tra numero di sincronizzazioni/comunicazioni e numero di passi computazionali elementari eseguiti da ciascun processo

–  ridurre il numero di sincronizzazioni/comunicazioni è di solito vantaggioso perché si riducono i ritardi ad esse associate

•  soprattutto nel modello DM, dove gli archi corrispondono a comunicazioni per spostare dati tra le memorie private associate ai processori

Page 40: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

40 CALCOLO ALTE PRESTAZIONI- S. Orlando

Mapping e scheduling

•  Mapping –  Assegnamento dei processi sui processori fisici

•  Mapping Tradeoff: –  Processi mappati su nodi diversi, per migliorare la concorrenza e il

bilanciamento del carico –  Processi (che comunicano frequentemente) mappati sullo stesso nodo,

per rendere locali le comunicazioni e

•  Una volta co-allocati i processi (cooperanti) ai nodi (singolo- o multi-processori), essi dovrebbero essere schedulati simultaneamente per evitare ritardi –  Su MPP, scheduling di tipo space-sharing, senza time-sharing –  Sui cluster, dove i nodi sono dotati di SO general-purpose time-

sharing, i processi vanno solitamente in esecuzione secondo la politica di scheduling locale

•  Non abbiamo il co-scheduling di processi cooperanti su nodi distinti

Page 41: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

41 CALCOLO ALTE PRESTAZIONI- S. Orlando

Agglomerazione: aumentiamo la granularità

I1 I2 I3 I4 I5 I6 I7 I8

* * * *

* *

*

*

I1 I2

I1 I2 I3 I4

L = I1 * I2; M = I3 * I4; J = L * M; Task di grana media

Task a grana minima

1comp.+1outputcomm.

3comp.+1outputcomm.

Page 42: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

42 CALCOLO ALTE PRESTAZIONI- S. Orlando

Granularità, mapping e performance

*: 5 *: 5 *: 5 *: 5

*: 5 *: 5

+: 5

6 6 6 6 6 6 6 6

6 6 6 6

6 6 P1 P2 P3 P4 Time

33

P1 P2 Time

32

5

6

Aumento granularità

Page 43: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

43 CALCOLO ALTE PRESTAZIONI- S. Orlando

Replicazione

•  Spesso, oltre a partizionare, è utile replicare la computazione per –  Ridurre/evitare le comunicazioni e bilanciare il carico

•  Rispetto al modello DM, può essere necessario replicare anche i dati associati ai task da replicare

Page 44: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

44 CALCOLO ALTE PRESTAZIONI- S. Orlando

Modello di programmazione

•  Controllo –  Come il parallelismo viene creato –  Qual è e come viene garantito l’ordine corretto tra le operazioni –  Come thread di controllo differenti si sincronizzano

•  Naming –  Quali dati sono private e quali shared –  Come i dati shared sono acceduti/comunicati dal punto di vista logico –  Nominandoli direttamente oppure inviando messaggi ai loro gestori (naming dei

processi/canali di comunicazione) •  Insieme di operazioni e costi

–  Quali sono le operazioni di base –  Qual è il loro costo

•  Storicamente –  Ciascuna macchina parallela era unica, e caratterizzata da una specifico modello

architetturale –  Aveva il proprio modello di programmazione e un linguaggio associato –  Discutiamo con un semplice esempio

Page 45: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

45 CALCOLO ALTE PRESTAZIONI- S. Orlando

Un semplice esempio

•  Decomposizione/Agglomerazione: –  Ciascuna valutazione / somma parziale diventa un task –  Assegniamo n/p numeri/subtask a ciascuno dei p processori virtuali

•  Ciascuno computa in maniera indipendente risultati “privati” e somme parziali

•  Uno (o tutti) colleziona le somme parziali e computa la somma globale

=> Classi di Dati –  Logicamente condivisi

•  Lo sono gli n numeri originali, e la somma globale –  Logicamente privati

•  Lo sono le variabili usate per memorizzare le funzioni di valutazione individuali e le somme parziali

Page 46: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

46 CALCOLO ALTE PRESTAZIONI- S. Orlando

Modelli di programmazione 1 (SM)

•  Shared Memory (SM). Nel modello shared-memory i processi (thread) condividono uno spazio di memoria comune, sul quale leggono/scrivono in maniera asincrona. Meccanismi vari come lock e semafori possono essere usati per controllare gli accessi alla SM.

•  Un vantaggio dal punto di vista del programmatore è che non esiste la nozione di “ownership” dei dati, e quindi non c’è bisogno di comunicare dati. Comunque, dal punto di vista della programmazione efficiente, gestire la località può diventare complesso.

•  Il modello shared memory è in un certo senso primitivo su macchine SM MIMD, ma uno spazio di indirizzamento comune può essere realizzato (efficientemente !?) anche su un DM MIMD (Virtual SM).

•  Il modello non mette vincoli alla fantasia del programmatore (unrestricted model) ed è di basso livello. Un ambiente di programmazione tipico sono le librerie portabili per la programmazione multi-threading (es.: pthread) da linkare con codice sequenziale.

•  Parallelismo di tipo esplicito: il programmatore è responsabile delle suddivisione del programma in task, e della cooperazione tra i task via SM

Page 47: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

47 CALCOLO ALTE PRESTAZIONI- S. Orlando

Modello di programmazione 1 (SM)

•  Shared Address Space –  Il programma consiste di una collezione di thread di controllo –  Ciascuno con un set di variabili private,

•  es. variabili locali sullo stack –  Collettivamente hanno accesso a variabili condivise

•  Es. variabili statiche, heap globale –  I thread comunicano implicitamente leggendo/scrivendo variabili

condivise –  I thread si coordinano attraverso operazioni di sincronizzazione su

variabili condivise •  Leggi/scrivi flag •  Usa locks, semafori

•  Come la programmazione concorrente sugli uniprocessori

Page 48: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

48 CALCOLO ALTE PRESTAZIONI- S. Orlando

Modello architetturale 1 (SM)

•  Una macchina SM (UMA) –  Processori connessi ad una singola SM –  Non abbiamo memoria “locale” del nodo, ma abbiamo una cache

•  Sun, DEC, Intel “SMPs” (Symmetric multiprocessors) •  Costo: molto più performante accedere alla cache rispetto alla memoria

principale

Page 49: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

49 CALCOLO ALTE PRESTAZIONI- S. Orlando

Codice SM per calcolare la somma

•  Variabili condivise –  Array A[N], in sola lettura –  Variabile s, che alla fine deve contenere la somma degli N numeri

Cosa potrebbe andare storto?

Page 50: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

50 CALCOLO ALTE PRESTAZIONI- S. Orlando

Problemi e soluzioni

•  Come avviene la somma globale (s = local_s1 + local_s2)?

•  Istruzioni di thread differenti possono mescolarsi arbitrariamente •  Quale potrebbe essere il risultato finale in memoria?

–  Race Condition •  Soluzione possibile: Mutua Esclusione con Lock (semafori binari)

•  I lock devono essere atomici (senza interruzione)

Page 51: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

51 CALCOLO ALTE PRESTAZIONI- S. Orlando

Modello di programmazione 2 (MP)

•  Message passing (MP). Il modello message-passing è basato sull’astrazione di processi multipli, creati staticamente o dinamicamente.

•  Ogni processo è caratterizzato da uno specifico codice e incapsula dati privati.

•  Le primitive send/receive nominano direttamente i processi (tramite degli identificatori/nomi unici) o delle astrazioni di canali di comunicazione che collegano i processi –  Esistono primitive collettive (gather/scatter/reduce) e di multicast.

•  Modello di basso livello, che permette qualsiasi tipo (unrestricted approach) di decomposizione e struttura di comunicazione

•  Il modello message passing è in un certo senso primitivo su macchine DM MIMD, ma può essere realizzato efficientemente anche su un SM MIMD.

•  Esistono linguaggi message passing, anche se oggi l’ambiente di programmazione tipico fa uso di librerie portabili, facili da usare, e efficienti da linkare con codice sequenziale (MPI, PVM)

•  Parallelismo di tipo esplicito: il programmatore è responsabile delle suddivisione del programma in processi, e della cooperazione tra i processi via MP

•  Paradigma naturale su DM-MIMD: –  MPMD - Multiple Programs Multiple Data – ovvero processi che eseguono

programmi diversi su dati diversi e che cooperano tramite MP

Page 52: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

52 CALCOLO ALTE PRESTAZIONI- S. Orlando

Modello di programmazione 2 (MP)

•  Message Passing –  I programmi consistono in una collezione di processi con nome

•  Thread di controllo con in più uno spazio di indirizzamento privato –  Variabili locali, variabili statiche, heap

–  I dati logicamente condivisi devono essere partizionati tra gli spazi di memoria locali dei vari processi

•  Processi comunicano con data transfer espliciti –  Coppie di send & receive (matching) tra una sorgente e una dest.

•  La sincronizzazione è implicita in ogni evento di comunicazione

•  Simile alla computazione distribuita su rete

Page 53: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

53 CALCOLO ALTE PRESTAZIONI- S. Orlando

Modello architetturale 2 (DM)

Processori connessi direttamente solo alla propria memoria privata & cache –  Non possono accedere direttamente alla memoria di altri processori –  Memoria distribuita (DM)

•  Ciascun “nodo” ha una sua interfaccia di rete (NI) –  Tutte le comunicazioni/sincronizzazioni passano attraverso questa NI

•  Macchine a memoria distribuita –  IBM SP, Cluster di Workstations

Page 54: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

54 CALCOLO ALTE PRESTAZIONI- S. Orlando

Calcolare S = X(1) + X(2) su ciascun processore

•  Prima soluzione per realizzare S = X(1)+X(2) (con possibili problemi.. deadlock)

•  Seconda soluzione

Page 55: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

55 CALCOLO ALTE PRESTAZIONI- S. Orlando

Modello di programmazione 3 (DP)

•  Data Parallel (DP) –  Un unico thread di controllo che consiste di

•  operazioni parallele applicate a tutti i (o un ben definito sottoinsieme dei) dati elementari che costituiscono una struttura dati

–  La comunicazione è implicita negli operatori paralleli e nelle operazioni di “shift” delle strutture dati (array)

–  Elegante e facile da capire –  Non tutte le parallelizzazioni possono essere espresse naturalmente

con questo modello (solo data paralellism)

•  Vector Computing –  Una istruzione eseguita su tutti i dati di una struttura dati in modo

pipeline –  Sfrutta ancora il data parallelism

Page 56: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

56 CALCOLO ALTE PRESTAZIONI- S. Orlando

Modello architetturale 3 (DP)

•  Macchina SIMD (Single Instruction Multiple Data) •  Un gran numero di processori piccoli ed elementari •  Un singolo “controllo” invia le istruzioni per tutti i processori

–  Ciascun processore esegue la stessa istruzione –  Alcuni processori possono essere “spenti” sull’esecuzione di

specifiche istruzioni

•  Le macchine SIMD a larghissima scala non sono più molto popolari (es. Connection Machne), ma lo è il modello di programmazione –  Implementato allocando il parallelismo originale ad n-vie (a grana

finissima) su un numero ridotto p di processori –  Supportato da compilatori (e.s., HPF = High Performance Fortran), che

producono codice SPMD (vedi prossima slide)

Page 57: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

57 CALCOLO ALTE PRESTAZIONI- S. Orlando

Modelli di programmazione (SPMD)

•  SPMD - Single Program Multiple Data - è un paradigma software (tipicamente di tipo MP) usato su computer DM-MIMD per implementare il data parallelism

•  Il modello di calcolatore SIMD permette di implementare il parallelismo di tipo data parallel in modo sincrono: ogni processore opera in lockstep

•  Il modello SPMD è la versione software e asincrona del modello SIMD? –  medesimo programma eseguito da ciascun processore di una

macchina MIMD: ma ogni processore ha un proprio controllo e un proprio clock

•  Poiché i programmi sono eseguiti su dati separati, è possibile che i flussi di controllo, a causa dei salti condizionali, siano differenti. –  I processori non eseguono le stesse istruzioni in lockstep, ma solo

processi caratterizzati dallo stesso codice –  Comportamento del codice differenziato in base al PID del processo –  Processi scambiano dati ancora tramite message passing

•  Considera il seguente programma: IF X = 0 THEN S1 ELSE S2 –  Se X=0 su P1 e X != 0 su P2, P1 esegue S1 mentre P2 esegue S2 –  Questo non potrebbe accadere sulla macchina SIMD (MIMD più potente

che SIMD)

Page 58: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

58 CALCOLO ALTE PRESTAZIONI- S. Orlando

Modelli di programmazione (sommario)

•  Storicamente, tutte le architetture parallele avevano caratteristiche uniche –  Ciascuna con il proprio modello di

programmazione e linguaggio associato •  Necessario riprogettare il sw parallelo per

ogni macchina …

•  Attualmente –  Distinguiamo il modello di programmazione dall’architettura sottostante

•  Il modello di programmazione visto come una concettualizzazione della macchina parallela che il programmatore usa per le sue applicazioni

–  Possiamo scrivere codice corretto e portabile, che esegue su più macchine

•  MPI (modello MP) è oggi l’opzione più portabile –  Ma cosa possiamo dire per le prestazioni? –  Purtroppo scrivere codice portabile ma veloce richiede ancora il tuning

per ogni specifica architettura

•  La sfida è rendere semplice questo processo di programmazione parallela portabile ed efficiente –  Campo di ricerca per algoritmi, linguaggi e strumenti di compilazione

Page 59: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

59 CALCOLO ALTE PRESTAZIONI- S. Orlando

Valutazione delle prestazioni: Speedup

•  Speedup su n processori:

•  Massimo speedup Sp(n)=n con n processori: speedup lineare •  Speedup superlineare se Sp(n) > n

–  può essere dovuto all’uso di un algoritmo sequenziale sub-ottimo –  può essere dovuto a caratteristiche dell’architettura che favoriscono la

versione parallela. •  Una ragione comune dello speedup superlineare è la maggiore quantità di

memoria disponibile sulle architetture parallele, che permette di mantenere in memoria più dati del problema rispetto al caso sequenziale (senza quindi coinvolgere il disco … swapping).

Page 60: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

60 CALCOLO ALTE PRESTAZIONI- S. Orlando

Legge di Amdahl

•  Massimo speedup ottenibile nel parallelizzare un algoritmo

Page 61: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

61 CALCOLO ALTE PRESTAZIONI- S. Orlando

Legge di Amdahl

•  Lo Speedup Factor è dato da

•  Se la frazione non parallelizzabile del codice sequenziale è f = 1/k, la legge di Amdahl stabilisce che il massimo speedup ottenibile per n → ∞ è:

Sp(n) = 1/f = k

Page 62: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

62 CALCOLO ALTE PRESTAZIONI- S. Orlando

Valutazione delle prestazioni: Efficienza

•  Efficienza:

•  L’efficienza dà una misura della frazione del tempo totale durante il quale i vari processori sono efficacemente usati per effettuare la computazione.

•  Un’efficienza uguale a 1 (Sp(n)=n) significa che tutti i processori partecipano in maniera proficua all’esecuzione dell’algoritmo

•  Un’efficienza molto minore di 1 testimonia il fatto che –  carico sbilanciato –  processori idle –  lavoro extra nella versione parallela dell’algoritmo –  overhead legati alle comunicazioni/sincronizzazioni

Page 63: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

63 CALCOLO ALTE PRESTAZIONI- S. Orlando

Valutazione delle prestazioni: Costo

•  Il prodotto processor-time o Costo (o Work) di una computazione è definita come

Costo= (no. Totale di processori usati) ⋅ (tempo di esecuzione) •  Il Costo di una computazione sequenziale è semplicemente ts

•  Il Costo di una computazione parallela è n ⋅ tp •  Poiché tp = ts / Sp(n) il Costo può essere formulato come

Costo = n ⋅ tp = n ⋅ ts / Sp(n) = ts / E(n)

•  Un algoritmo parallelo è Cost-Optimal se il costo per risolverlo in parallelo è simile al costo per risolverlo in sequenziale –  Efficienza ottima = 1

Page 64: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

64 CALCOLO ALTE PRESTAZIONI- S. Orlando

Valutazione delle prestazioni: Scalabilità

•  Il termine scalabilità si usa per indicare un progetto hardware che può essere espanso (aggiungendo processori, memoria, rete, I/O) per aumentare la banda totale di comunicazione/calcolo: –  In questo caso parliamo di scalabilità dell’architettura o dell’hardware –  Es.: il bus è una struttura di interconnessione facilmente ed

economicamente espandibile, ma non scalabile

•  Esiste anche il concetto di scalabilità algoritmica •  Un algoritmo parallelo è scalabile se è possibile

–  a causa di un incremento della dimensione dei dati –  incrementare il livello di parallelismo (usare più processori)

con un basso o limitato incremento del tempo di esecuzione •  Problema

–  Come aumenta il lavoro da compiere all’aumentare della dimensione dei dati ?

–  Questo aumento è in relazione con la quantità di processori che dobbiamo aggiungere per garantire che i tempi di esecuzione non cambino

Page 65: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

65 CALCOLO ALTE PRESTAZIONI- S. Orlando

Dimensione del problema e Scalabilità

•  Poniamo –  numero di dati da processare = dimensione del problema

•  Raddoppiare la dimensione del problema non necessariamente implica il raddoppio del numero di passi computazionali –  dipende dal problema –  è vero per la somma di 2 matrici bidimensionali di N elementi, e

di lato n (n = N1/2) •  N = n2 passi, uguali al numero di elementi di ogni matrice •  se raddoppio la dimensione: 2 N = (21/2 n)2 il numero di passi

diventa: (21/2 n)2 = 2 n2 –  non è vero per il prodotto di 2 matrici

•  N3/2 = n3 passi, dove N = n2 è il numero di elementi di ogni matrice •  se raddoppio la dimensione: 2 N = 2 n2 = (21/2 n)2 il numero di passi

diventa: (21/2 n)3 = 23/2 n3 •  La definizione di scalabilità algoritmica dipende anche da

–  come aumentiamo la dimensione del problema

Page 66: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

66 CALCOLO ALTE PRESTAZIONI- S. Orlando

Legge di Gustafson

•  Si assume che, all’aumentare del grado di parallelismo –  viene incrementato la dimensione del problema –  in modo da mantenere costante il lavoro eseguito da ogni processore

in parallelo (tempo Tp costante) •  Inoltre, all’aumentare della dimensione del problema la computazione

inerentemente sequenziale si suppone fissa, e prende sempre un tempo Ts –  il razionale della legge di Gustafson sta nell’uso attuale delle macchine

MPP, usate per eseguire problemi più grossi rispetto al caso seriale –  in questo caso la legge di Amdahl è pessimistica, perché non tiene

conto che, all’aumentare della dimensione del problema, la frazione f del tempo inerentemente seriale solitamente diminuisce

•  Lo Scaled Speedup Factor, ovvero lo speedup quando il problema è scalato con il numero di processori, è dato dalla seguente formula, dove

s = Ts/(Ts+Tp), p = Tp/(Ts+Tp), s+p = 1

Page 67: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

67 CALCOLO ALTE PRESTAZIONI- S. Orlando

Legge di Gustafson: scaled speedup

•  Lo scaled speedup della legge di Gustafson si riferisce a problemi dove, all’aumentare della dimensione, Ts rimane costante

•  Se su 20 processori abbiamo una parte seriale del 5% (Ts=0,05 T), allora s = (0,05 T) / (0,05 T + 0,95 T / 20) = 0,51 e p = 1-s = 0,49

•  Lo scaled speedup su 20 processori è quindi: –  Spscaled(20) = s+np=0.51 + 20 * 0,49 = 10.3

•  Lo scaled speedup su 40 processori è invece: –  Spscaled(40) = s+np=0.51 + 40 * 0,49 = 20,1

•  Se il problema non fosse stato “scalato in dimensioni” su 40 processori, lo speedup sarebbe stato: –  Sp(40) = T / (0.05 T + 0.95 T / 40) = 13,6

•  Nota che per applicare Gustafson, la dimensione del problema su 40 processori deve essere accresciuta (scalata), ovvero scelta in modo che il tempo totale T’ risulti uguale a T’ = Ts + 40 * Tp = 0,05 T + 40 * 0,95 T / 20 = 0,05 T + 2 * 0,95 T = 1,95 T dove T era il tempo totale del problema (più piccolo) eseguito su 20 processori

Page 68: “CALCOLO AD ALTE PRESTAZIONI” Introduzionecalpar/1_Intro.pdfCALCOLO ALTE PRESTAZIONI- S. Orlando 7 Trend nello sviluppo di hw/sw ad alte prestazione • Esistono quindi limiti

68 CALCOLO ALTE PRESTAZIONI- S. Orlando

Scaling del problema e Isoefficienza

•  Funzione di isoefficienza (Kumar) –  la funzione stabilisce come deve essere aumentata la dimensione del

problema per mantenere costante l’efficienza –  la funzione è descritta in termini di

•  W: tempo sequenziale rispetto ad un certo size del problema •  Tp: tempo in parallelo •  p: numero di processori •  To(W, p): overhead globale (comms+waiting+replica+sbilanciamento) in

funzione di W e del grado di parallelismo •  E: efficienza da mantenere costante

–  To(W,p) = p Tp - W –  E = S/p = W / (p Tp) = W / (W + To(W,p)) = 1 / ((W + To(W,p)) / W) –  Derivando W dall’equazione dell’efficienza, si ottiene la funzione di

isoefficienza, ovvero di quanto deve aumentare W (ovvero il size del problema) all’aumentare di p per mantenere costante E: