Valutazione delle prestazioni di programmi paralleli

Slides:



Advertisements
Presentazioni simili
Metodologia Sperimentale Agronomica / Metodi Statistici per la Ricerca Ambientale Marco Acutis a.a CdS.
Advertisements

I circuiti elettrici.
IL GOLD STANDARD: INTRODUZIONE
XXXII CONVEGNO NAZIONALE Società Italiana di Chimica Agraria
Il problema dello zaino
Campi di gravità e topografia: analisi con QGIS
Regole associative Gianluca Amato
Ciclo di Seminari e Corso
Valutazione dei risultati della classificazione
Generalità Laboratorio Arduino.
Natura e origini della attuale crisi europea
ECONOMIA DELLE ISTITUZIONI FINANZIARIE
Stato di COMPASS Franco Bradamante CSN1 Roma, 16 luglio 2012.
La struttura dei materiali
ESSERE HOMELESS: PERCORSI DI VITA E FATTORI DETERMINANTI
Introduzione a VPN Ing. Gianpiero Ciacci.
Le verifiche empiriche del teorema di Heckscher-Ohlin: il paradosso di Leontief Wassily Leontief realizzò la prima verifica empirica del teorema di HO.
…. modello di Solow?.
Politica economica: che cosa è?
 π BUZZO GIACOMO D’AGOSTINO ALBERTO DE ANGELIS FEDERICA
“BLAISE PASCAL”- Voghera-
La vitamina C è una molecola contenente C,H e O
REDDITO DI CITTADINANZA E OPPORTUNITA’ ECONOMICA: UN CONFRONTO TRA ITALIA E RESTO D’EUROPA Pasquale Tridico Dipartimento di Economia, Università Roma Tre.
Classificazione e Predizione
L’economia monetaria Corso di Economia delle Istituzioni Finanziarie
L’infiltrazione LM-75: 2016/2017
UN NUOVO MODO DI GUARDARE IL MONDO
LA PREVENZIONE INCENDI NELLE STRUTTURE RELIGIOSE APERTE AL PUBBLICO
LE NOVITÀ DEL BILANCIO 2016 …………………………………………………………………………………………………………..
Le unità territoriali per le analisi socio-economiche
Pompe di calore a integrazione geotermica
ISTITUZIONI (regole scritte e nn scritte che governano l’interazione tra individui) → d.p. e contratti → norme sociali con appropriati Δ delle regole.
Università di Roma Tor Vergata
Convegno europeo sui minori
ATIPICITA’ DEL FATTORE UMANO NEL PILOTAGGIO DEI DRONI
CALENDARIO LEZIONI AGGIORNATO
RAEE è l’acronimo di Rifiuti da Apparecchiature Elettriche ed Elettroniche; ogni elettrodomestico ha un ciclo di vita terminato il quale, sia per malfunzionamento.
Appunti per ostetriche e non solo
Ricerca e innovazione:
Pubblica Amministrazione: semplificazione e costi della politica
Il processo di analisi dei fabbisogni
Comunicazioni Assemblea nazionale TTA 1-2 dicembre 2016
Proactive Care e Proactive Care Advanced
Maria Antonietta Volonté Dipartimento di Neurologia
IL CONFLITTO NELLA CHIESA PRIMITIVA
Piano di formazione Docenti neoassunti a.s. 2016/2017
È possibile rendere comprensibile oggi questo termine filosofico, al di fuori della esigua cerchia degli specialisti? Io una volta ci ho provato in una.
ACCORDO AGROAMBIENTALE D’AREA OPPORTUNITA’ PER LA VALDASO
Il secondo principio.
PROGETTO RELAZIONI PREPOTENTI
Vitamine Sono sostanze organiche a basso peso molecolare strutturalmente assai varie indispensabili per lo svolgimento delle funzioni vitali, di origine.
La misurazione e la valutazione della performance
1.2 Nuovi prodotti alimentari
ASSOCIAZIONE ITALIANA GIURISTI DI IMPRESA
L’evoluzione del Diritto delle Assicurazioni Continuità o rottura con il passato? Avv. Giuseppe Ranieri Studio Legale Tributario Ranieri Comitato Esecutivo.
ADOZIONE INTERNAZIONALE
Esame delle modifiche apportate al precedente ordinamento
e l’associazione in partecipazione
Profilo biografico e opere
IL TOTALITARISMO.
L’Imposta sul reddito delle società (IRES)
Asl Vco – Direzione Generale
Assunzioni, Attività, Investimenti
UROLOGIA - RIMINI VISITE UROLOGICHE AMBULATORIALI REGIME RICOVERO
Endometriosi profonda: quando la chirurgia
Nota AIFA 75 Determinazione 18 novembre 2010 (GU 29 novembre 2010, n. 279): modifiche, con riferimento alla nota AIFA 75,  alla determinazione del 4 gennaio.
PIANO DI RIORDINO PRESIDI DI FOLIGNO E SPOLETO
SINTOMI DEL BASSO APPARATO URINARIO 4 MARZO 2017
Con gli occhi di Maxwell
Transcript della presentazione:

Valutazione delle prestazioni di programmi paralleli Moreno Marzolla Dip. di Informatica—Scienza e Ingegneria (DISI) Università di Bologna moreno.marzolla@unibo.it

Valutazione delle prestazioni Copyright © 2013, 2014, 2017 Moreno Marzolla, Università di Bologna, Italy (http://www.moreno.marzolla.name/teaching/HPC/) This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License (CC-BY-SA 4.0). To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. Valutazione delle prestazioni

Valutazione delle prestazioni Credits prof. David Padua https://courses.engr.illinois.edu/cs420/fa2012/lectures.ht ml Valutazione delle prestazioni

Valutazione delle prestazioni How fast can we run? 12 tasks, each one requiring 1s Total serial time: 12s 1 2 3 4 5 6 7 8 9 10 11 12 time Valutazione delle prestazioni Slide credit: Daivd Padua

Valutazione delle prestazioni How fast can we run? What if we have 3 processors and all tasks are independent? Execution time becomes 4s 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 P1 5 6 7 8 P2 9 10 11 12 P3 time Valutazione delle prestazioni Slide credit: Daivd Padua

Valutazione delle prestazioni How fast can we run? What if the processors can not execute the tasks with the same speed? Load imbalance (ending part of P2 and P3) 1 2 3 4 P1 5 6 7 8 P2 9 10 11 12 P3 time Valutazione delle prestazioni Slide credit: Daivd Padua

Valutazione delle prestazioni How fast can we run? What if tasks are dependent? Execution time grows from 4s to 6s 1 2 3 4 Dependency graph with highlighted critical path 5 6 7 8 9 10 11 12 1 2 3 4 P1 5 6 7 8 P2 9 10 11 12 P3 time Valutazione delle prestazioni Slide credit: Daivd Padua

Valutazione delle prestazioni Scalability How much faster can a given problem be solved with p workers instead of one? How much more work can be done with p workers instead of one? What impact for the communication requirements of the parallel application have on performance? What fraction of the resources is actually used productively for solving the problem? Valutazione delle prestazioni Slide credit: Daivd Padua

Valutazione delle prestazioni Speedup Definiamo p = Numero di processori / core Tserial = Tempo di esecuzione del programma sequenziale Tparallel (p) = Tempo di esecuzione del programma parallelo su p processori / core Valutazione delle prestazioni

Speedup Di solito si definisce Tserial = Tparallel(1) Speedup S(p) Nel caso ideale, il programma parallelo impiega 1/p del tempo del programma sequenziale Solitamente S(p) ≤ p S(p) = p è il caso ottimo di speedup lineare Quando può verificarsi S(p) > p ? 𝑆 𝑝 = 𝑇 serial 𝑇 parallel 𝑝 S(p) > p nel caso di 1) multicore eterogenei (e.g., processore Cell), oppure 2) effetti dovuti alle cache: aumentando p la dimensione dei sottoproblemi diminuisce, e potrebbe essere che si sfruttano meglio le cache di primo livello dei core Valutazione delle prestazioni

Porzioni non parallelizzabili Supponiamo che una frazione α del tempo di esecuzione sia dovuto ad una componente intrinsecamente seriale del programma Limitazioni algoritmiche (dipendenze tra codice) Colli di bottiglia (risorse condivise) Startup overhead Comunicazione Supponiamo che la rimanente frazione (1 - α) sia perfettamente parallelizzabile Avremo 𝑇 parallel 𝑝 = α 𝑇 serial + 1−α 𝑇 serial 𝑝 𝑇 parallel 𝑝 = α 𝑇 serial + 1−α 𝑇 serial 𝑝 𝑇 parallel 𝑝 = α 𝑇 serial + 1−α 𝑇 serial 𝑝 Valutazione delle prestazioni

Valutazione delle prestazioni Esempio p = 1 p = 2 p = 4 Porzione non parallelizzabile  Tserial Tparallel(4) Tparallel(2) Tserial Porzione parallelizzabile 𝑇 parallel 𝑝 =α 𝑇 serial + 1−α 𝑇 serial 𝑝 (1 - ) Tserial Valutazione delle prestazioni

Valutazione delle prestazioni Esempio Un programma ha Tserial = 20s Il 90% del tempo di esecuzione è speso in una parte che può essere perfettamente parallelizzata Quindi il tempo di esecuzione della versione parallela con p processori si può esprimere come 𝑇 parallel 𝑝 = 0.1 𝑇 serial + 0.9 𝑇 serial 𝑝 = 2+ 18 𝑝 Valutazione delle prestazioni

Valutazione delle prestazioni Esempio (cont.) Lo speedup è Quale è lo speedup massimo ottenibile quando p → +∞ ? 𝑆 𝑝 = 𝑇 serial 0.1× 𝑇 serial + 0.9× 𝑇 serial 𝑝 = 20 2+ 18 𝑝 Valutazione delle prestazioni

Valutazione delle prestazioni Legge di Amdahl Quale è lo speedup massimo ottenibile? 𝑆 𝑝 = 𝑇 serial 𝑇 parallel 𝑝 = 𝑇 serial α 𝑇 serial + 1−α 𝑇 serial 𝑝 = 1 α+ 1−α 𝑝 Legge di Amdahl Gene Myron Amdahl (1922—) Valutazione delle prestazioni

Valutazione delle prestazioni Legge di Amdahl 𝑆 𝑝 = 1 α+ 1−α 𝑝 Da otteniamo che, per p tendente a +∞, lo speedup asintotico è 1 / α Se una frazione α di un programma seriale non è parallelizzabile, allora lo speedup è limitato superiormente da 1/α, indipendentemente dal numero di processori disposizione Valutazione delle prestazioni

Valutazione delle prestazioni Speedup Note: scala log-log Frazione non parallelizzabile 0.1% 1% 10% 20% Valutazione delle prestazioni

Valutazione delle prestazioni Esempio M. Marzolla, Fast Training of Support Vector Machines on the Cell Processor, Neurocomputing, Volume 74, Issue 17, October 2011, pp. 3700–3707, ISSN 0925-2312; disponibile all'indirizzo http://www.moreno.marzolla.name/publications/ Valutazione delle prestazioni

Valutazione delle prestazioni Esempio RS(n) = TSPE,n / TSPE,1 Valutazione delle prestazioni

Valutazione delle prestazioni Esempio Valutazione delle prestazioni

Valutazione delle prestazioni Scaling Efficiency Strong Scaling: Fissata la dimensione del problema, si incrementa il numero di processori p La quantità complessiva di lavoro svolto da tutti processori rimane costante La quantità di lavoro svolto da ciascun processore diminuisce all'aumentare di p L'obbiettivo è ridurre il tempo di esecuzione Weak Scaling: Fissata la quantità di lavoro svolto da ciascun processore, si aumenta il numero p di processori Quindi aumenta la quantità totale di lavoro svolto complessivamente dai p processori L'obbiettivo è di risolvere problemi “più grandi” Valutazione delle prestazioni

Strong Scaling Efficiency E(p) = Strong Scaling Efficiency dove Tserial = Tempo di esecuzione del programma sequenziale Tparallel (p) = Tempo di esecuzione del programma parallelo su p processori / core 𝐸 𝑝 = 𝑆 𝑝 𝑝 = 𝑇 serial 𝑝× 𝑇 parallel 𝑝 Valutazione delle prestazioni

Strong scaling efficiency e legge di Amdahl 0.1% 1% 10% 20% Frazione non parallelizzabile Valutazione delle prestazioni Nota: scala x logaritmica

Weak Scaling Efficiency W(p) = Weak Scaling Efficiency dove T1 = tempo necessario a completare 1 “unità di lavoro” con 1 processore Tp = tempo necessario a completare p “unità di lavoro” con p processori 𝑊 𝑝 = 𝑇 1 𝑇 𝑝 Valutazione delle prestazioni

Valutazione delle prestazioni Esempio Vedi omp-matmul.c demo-strong-scaling.sh calcola i tempi da usare per strong scaling (demo-strong-scaling.ods) demo-weak-scaling.sh calcola i tempi da usare per weak scaling (demo-weak-scaling.ods) Osservazione importante: Fissato n, la quantità di "lavoro" necessario per calcolare il prodotto tra due matrici n ´ n è Θ(n3) Per raddoppiare il lavoro, non dobbiamo raddoppiare n! La quantità di lavoro necessario per calcolare il prodotto di due matrici (2n ´ 2n) è Θ(8n3), cioè otto volte il caso n ´ n Per raddoppiare il lavoro, occorre usare una matrice di dimensione 3 2 𝑛 × 3 2 𝑛 Valutazione delle prestazioni

Misurazione dei tempi Per valutare sperimentalmente speedup ed efficienza, il tempo di esecuzione che viene misurato è il wall clock time del programma, ESCLUDENDO il tempo necessario a leggere l'input e a scrivere l'output. Parte in cui sono svolte le computazioni #include "hpc.h" ... double start, finish; /* eventuale lettura input da file; questo NON va considerato */ start = hpc_gettime(); /* parte di codice di cui vogliamo misurare il wall clock time */ finish = hpc_gettime(); printf(“The elapsed time = %e seconds\n”, finish – start); /* eventuale scrittura output su file; questo NON va considerato */ Valutazione delle prestazioni

Misurazione del wall-clock time Per i programmi OpenMP: omp_get_wtime() Per i programmi MPI: MPI_Wtime() Soluzione “generica”: clock_gettime() Soluzione SBAGLIATA: clock() NAME clock - Determine processor time SYNOPSIS #include <time.h> clock_t clock(void); DESCRIPTION The clock() function returns an approximation of processor time used by the program. Il problema del “processor time” è che viene sommato per tutti i core: questo significa ad esempio che un programma che impiega meta' del tempo se eseguito su due core ritornerà lo stesso processor time! Valutazione delle prestazioni

Postilla: Come presentare i risultati Valutazione delle prestazioni

Valutazione delle prestazioni Regole di base Presentare i risultati in modo da richiedere il minor sforzo possibile da parte del lettore Usare nomi piuttosto che simboli nella legenda Fornire abbastanza informazione da rendere il grafico autocontenuto, limitando i rimandi al testo Utilizzare pratiche comunemente accettate Mostrare ciò che la gente si aspetta: ci si aspetta che l'origine dei grafici sia (0,0); che la causa sia mostrata sull'asse x e l'effetto sull'asse y; ecc... Valutazione delle prestazioni

Utilizzare le scale degli assi in maniera adeguata Giocando con la scala dei grafici, è possibile enfatizzare oppure minimizzare le differenze Valutazione delle prestazioni

Valutazione delle prestazioni Mostrare tutti i dati Valutazione delle prestazioni

Attenzione a combinare i grafici Per rendere più “drammatico” l'effetto, si tende spesso a presentare due misure correlate tra loro sullo stesso grafico Speedup Wall clock time Num. of processors Valutazione delle prestazioni

Usare nomi piuttosto che simboli 1 job/sec m=2 2 job/sec m=3 3 job/sec Valutazione delle prestazioni

Non collegare punti se i valori intermedi non esistono MIPS 68000 68010 68020 68030 CPU Type Valutazione delle prestazioni

Valutazione delle prestazioni Grafico inutile 123.54 Valutazione delle prestazioni

Valutazione delle prestazioni Consigli vari Tutte le immagini (inclusi i grafici) devono includere una didascalia con la numerazione e la descrizione Idealmente la descrizione dovrebbe essere sufficientemente completa da consentire al lettore di interpretare il grafico anche senza leggere la spiegazione presente nel testo Tutte le immagini devono essere richiamate e descritte nel corpo del documento Valutazione delle prestazioni

Valutazione delle prestazioni Esempio Valutazione delle prestazioni

Example of very good graphic Modern redrawing of Charles Minard's map of Napoleon's disastrous Russian campaign of 1812. The graphic is notable for its representation in two dimensions of six types of data: the number of Napoleon's troops; distance; temperature; the latitude and longitude; direction of travel; and location relative to specific dates (Image and description from Wikipedia) Valutazione delle prestazioni

Valutazione delle prestazioni Per approfondire Edward R. Tufte, The Visual Display of Quantitative Information, 2nd ed., Graphics Press, 2011, ISBN 978-0961392147 Valutazione delle prestazioni