Problema Calcolo Parallelo Valutare l efficienza di un algoritmo in ambiente di calcolo arallelo Efficienza e Scalabilità di algoritmi e software in ambienti di Calcolo Parallelo Laura Antonelli Cosa si intende er EFFICIENZA? Efficienza Efficienza Efficienza di un algoritmo sequenziale Esemio: calcolo della somma di n=6 numeri COMPLESSIA di EMPO (n) Numero di oerazioni eseguite dall algoritmo COMPLESSIA di SPAZIO S(n) Numero di variabili utilizzate dall algoritmo Passi temorali 34 5 6 7 8 9 0 3 4 5 ALGORIMO SEQUENZIALE studente numero di addizioni = 5 assi temorali = 5 =5 t calc t calc = temo di esecuzione di addizione Efficienza 3 comlessità di temo (n)=n- addizioni Efficienza 4
In un algoritmo sequenziale In un algoritmo arallelo Il numero comlessivo di oerazioni determina anche il numero dei assi temorali (temo di esecuzione dell algoritmo) Si uò ancora legare il temo di esecuzione al numero delle oerazioni che costituiscono l algoritmo? Efficienza 5 Efficienza 6 Esemio: calcolo della somma di n=6 numeri Esemio: calcolo della somma di n=6 numeri Passi temorali 3 4 5 6 7 8 ALGORIMO PARALLELO studenti numero di addizioni = 5 MA assi temorali = 8 =8 t calc Passi temorali -7: 4 addizioni (7 er ciascuno studente) Passi temorali 3 4 5 ALGORIMO PARALLELO 4 studenti numero di addizioni = 5 MA assi temorali = 5 4 =5 t calc Passi temorali -3: addizioni Passo temorale 4: addizioni Passo temorale 8: addizione Efficienza 7 Passo temorale 5: addizione Efficienza 8
Esemio: calcolo della somma di n=6 numeri Nell algoritmo arallelo della somma assi Passi temorali 3 4 ALGORIMO PARALLELO 8 studenti numero di addizioni = 5 MA assi temorali = 4 8 =4 t calc Passo temorale : 8 addizioni Passo temorale : 4 addizioni Passo temorale 3: addizioni Passo temorale 4: addizione Il numero delle oerazioni dell algoritmo Parallelo NON è legato al numero dei assi temorali Efficienza 9 Efficienza 0 Infatti Un calcolatore arallelo è in grado di eseguire iù oerazioni allo stesso asso temorale (esecuzione arallela di iù oerazioni) Il temo di esecuzione non è roorzionale al numero di oerazioni fl.. effettuate e allora Come misurare l efficienza di un algoritmo arallelo? La sola comlessità di temo non è adatta a misurare l efficienza di un algoritmo arallelo Efficienza Efficienza 3
OSSERVAZIONE Se è il temo di esecuzione su (=,, 3, ) utilizzando = il temo di esecuzione dovrebbe essere il doio di utilizzando = 4 il temo di esecuzione dovrebbe essere il quadrulo di 4 4 4 3 In generale Utilizzando rocessori il temo di esecuzione dovrebbe essere volte, cioè il loro raorto vale: Utilizzando rocessori il temo di esecuzione arallelo si dovrebbe ridurre di circa volte risetto al temo di esecuzione sequenziale Efficienza 4 Seedu Si definisce Seedu il raorto S Lo seedu misura la riduzione del temo di esecuzione dell algoritmo eseguito su rocessori risetto all esecuzione su rocessore, in generale: Efficienza 5 S SPEEDUP IDEALE S ideale Esemio: calcolo della somma di n=6 numeri Analizziamo lo seedu al variare di 4 8 5t calc 8t calc 5t calc 4t calc S.00.88 3.00 3.75 Maggiore riduzione del temo ovvero maggiore aumento della velocità di esecuzione L algoritmo su 8 rocessori è il iù veloce. E iù veloce di 3.75 volte di quello su rocessore (ma non di 8 volte come ci asettavamo ) Efficienza 6 4
Domanda Quanto vale? contiamo i assi temorali Perché non si riduce roorzionalmente a? 5t calc 8t calc 4 5t calc 8 4t calc Esemio: =8, n=6 t calc 3 P 0 P P P 3 P 4 P 5 P 6 P 7 n/ oerazioni er ottenere la somma dei dati locali k? t calc 4 In generale quanto vale? Efficienza 7 Log = max rofondità dell albero Efficienza 8 In generale: calcolo di ALGORIMO PARALLELO della somma di n numeri su = k rocessori = =5 t calc = =8 t calc = (7+) t calc =4 4 =5 t calc = (3+) t calc =8 8 =4 t calc = (+3) t calc = k n = ( - +log ) t calc t calc = temo di esecuzione di addizione n = 6 Efficienza 9 Perché S non è roorzionale a? S ideale O h = OVERHEAD totale = (O h + ) / S (n) (O )/ O O h h h L OVERHEAD totale misura quanto lo seedu differisce da quello ideale Lo seedu effettivo diende dal raorto tra lo seedu ideale e l overhead totale In generale l overhead in informatica misura lo sreco di risorse er raggiungere 0 un determinato obiettivo 5
Calcolo dell overhead ALGORIMO PARALLELO della somma di n numeri su = k rocessori = n- = n/ - + log O h = - = (n/ - + log ) (n-) = n - + log n + =O( log ) O h 4 8 8 4 k log All aumentare di anche l overhead aumenta! Efficienza Riassumendo: calcolo della somma con n=6 numeri e =8 Lo seedu misura la maggiore riduzione di temo, (ovvero il minor temo di esecuzione ossibile) MA. L overhead misura il maggior scarto dallo seedu ideale (ovvero il maggior sreco di risorse!!) Come caire se la riduzione ottenuta dallo seedu roduce un effettivo guadagno in efficienza? (ovvero se il arallelismo è vantaggioso risetto all inevitabile overhead introdotto?) Efficienza OSSERVAZIONE: calcolo della somma di n=6 numeri Seed-u ottenuto Seed-u ideale.88 4 3.00 4 8 3.75 8 Lo seedu su rocessori è il iù vicino allo seed-u ideale.. L algoritmo arallelo su due rocessori è quello iù veloce in raorto alle risorse utilizzate (il guadagno ottenuto è commisurato alle risorse in uso) Efficienza 3 IDEA! calcolo della somma di n=6 numeri se si raorta lo seedu al numero di rocessori S S.88 0.94 4 3.00 0.75 8 3.75 0.47 Raorto iù grande Si ottiene una misura dello sfruttamento delle risorse di calcolo (il massimo er =) L utilizzo di un maggior numero di rocessori NON è semre garanzia di algoritmi aralleli efficienti Efficienza 4 6
Efficienza Si definisce efficienza E il raorto S su E S L efficienza misura se e quanto l algoritmo arallelo sfrutta il arallelismo del calcolatore Domanda E ossibile ottenere seedu rossimi allo seedu ideale? EFFICIENZA IDEALE E ideale S ideale Efficienza 5 Efficienza 7 OSSERVAZIONE: Il temo di esecuzione sequenziale si uò decomorre in arti: una arte relativa alle oerazioni che sono eseguite (necessariamente) in sequenziale una arte relativa alle oerazioni che POSSONO essere eseguite in arallelo OSSERVAZIONE: Il temo di esecuzione sequenziale si uò decomorre in arti: una arte relativa alle oerazioni che sono eseguite (necessariamente) in sequenziale una arte relativa alle oerazioni che POSSONO essere eseguite in arallelo seq = ar =(-) seq = ar =(-) = seq + ar Efficienza 8 = + (-) Efficienza 9 7
Osservazione: Se = + (-) allora il temo imiegato dall algoritmo arallelo con rocessori si uò scrivere come: Calcoliamo lo seedu: Lo seedu si uò riscrivere come: S ( -) ( ) = + (-) ovvero a artire da ossiamo ricavare dividendo le oerazioni relative alla arte arallela er il numero di rocessori Contributo relativo all esecuzione delle oerazioni sequenziali Contributo relativo all esecuzione delle oerazioni in arallelo Efficienza 30 Efficienza 3 Legge di Ware (Amdahl) Esemio: Somma di n =4 su =, = (n -)t calc =3t calc S ( -) ( ) t calc P 0 P addizioni eseguite concorrentemente da rocessori al asso addizione eseguita in sequenziale da rocessore al asso ale legge esrime lo seedu in funzione delle frazioni sequenziali e arallelizzabili del temo ed il numero di rocessori = seq + ar seq = = /3 = tcalc ar = (-) = /3 = tcalc Efficienza 3 = /3 arte (di ) sequenziale (-) = /3 arte (di ) arallela Efficienza 33 8
Esemio: Somma di n =4 su =, Esemio: Somma di n =4 su =, = (n -)t calc =3t calc t calc P 0 P = (n -)t calc =3t calc t calc P 0 P addizioni eseguite arallelamente da rocessori al asso addizioni eseguite concorrentemente da rocessori al asso addizione eseguita in sequenziale da rocessore al asso addizione eseguita in sequenziale da rocessore al asso = seq + ar seq = = /3 = tcalc ar = (-) = /3 = tcalc = seq + ar seq = = /3 = tcalc ar = (-) = /3 = tcalc = /3 + /3 = t calc Efficienza 34 S 3 3 Efficienza 35 3 Conseguenze della legge di Amdahl Al crescere del numero di rocessori S ( ) Il valore asintotico di S diventa costante!! Efficienza 36 Esemio (n fissato e variabile) Alichiamo la legge di Amdahl con n =3 e =, 4, 8, 6 Fissiamo la dimensione n e aumentiamo il numero di rocessori α α S E 0,03 0,968,9 0,95 4 0,03 0,903 3,4 0,85 8 0,03 0,775 5, 0,6 6 0,03 0,56 6, 0,3 Seed u ed efficienza degradano erché la arte arallela diminuisce! Efficienza 37 9
Prima conseguenza della legge di Amdahl Se la dimensione n del roblema è fissata, al crescere del numero di rocessori, non solo non si riescono ad ottenere seed u vicini a quello ideale MA Le restazioni eggiorano! (non conviene utilizzare un maggior numero di rocessori!!) Esemio (al contrario: n aumenta e è fissato) Alichiamo la legge di Amdahl con = e n = 8, 6, 3, 64 Fissiamo il numero di rocessori aumentiamo la dimensione n n α -α S (n) E (n) 8 0,4 0,86,75 0,875 6 0,06 0,93,8 0,9 3 0,03 0,96,9 0,96 64 0,0 0,98,96 0,99 La arte sequenziale tende a zero! Efficienza 38 Efficienza 39 Esemio (al contrario: n aumenta e è fissato) Alichiamo la legge di Amdahl con = e n = 8, 6, 3, 64 Esemio (al contrario: n aumenta e è fissato) Alichiamo la legge di Amdahl con = e n = 8, 6, 3, 64 Fissiamo il numero di rocessori aumentiamo la dimensione n Fissiamo il numero di rocessori aumentiamo la dimensione n n α -α S (n) E (n) 8 0,4 0,86,75 0,875 6 0,06 0,93,8 0,9 3 0,03 0,96,9 0,96 La arte arallela è costante n α -α S (n) E (n) 8 0,4 0,86,75 0,875 6 0,06 0,93,8 0,9 3 0,03 0,96,9 0,96 Seed u ed efficienza sono costanti! 64 0,0 0,98,96 0,99 64 0,0 0,98,96 0,99 Efficienza 40 Efficienza 4 0
Seconda conseguenza della legge di Amdahl Al crescere del numero n della dimensione del roblema S ( ) 0 0 n Il valore asintotico di S è lo Seedu ideale!! Seconda conseguenza della legge di Amdahl Fissando il numero di rocessori e aumentando la dimensione del roblema si ossono ottenere seedu rossimi a quello ideale MA Non è ossibile aumentare in maniera indefinita la dimensione n del roblema: le risorse (hardware) sono limitate! Efficienza 4 Efficienza 43 Sintesi Domanda Secondo la legge di Amdahl-Ware Aumentando il numero di rocessori e fissando la dimensione n del roblema si riesce ad utilizzare in maniera efficiente l ambiente di calcolo arallelo, se 0 Aumentando la dimensione n del roblema e fissando il numero di rocessori le restazioni dell algoritmo arallelo non degradano se n n 0 Efficienza 44 Cosa succede se aumentiamo roorzionalmente sia il numero di rocessori sia la dimensione n del roblema? Efficienza 45
Esemio: somma di n numeri in arallelo Alichiamo la legge di Amdahl con =, 4, 8, 6 Consideriamo quindi n= 8, 6, 3, 64 Esemio: somma di n numeri in arallelo Alichiamo la legge di Amdhal con =, 4, 8, 6 Consideriamo quindi n= 8, 6, 3, 64 n 4 è costante n 4 è costante n α α S (n) E (n) 8 0,4 0,86,75 0,875 6 4 0,06 0,8 3 0,75 3 8 0,03 0,77 5, 0,64 La frazione di oerazioni eseguite in sequenziale tende a zero! n α α S (n) E (n) 8 0,4 0,86,75 0,875 6 4 0,06 0,8 3 0,75 3 8 0,03 0,77 5, 0,64 La frazione di oerazioni eseguite in arallelo è quasi costante! 64 6 0,0 0,76 9 0,56 64 6 0,0 0,76 9 0,56 Efficienza 46 Efficienza 47 Esemio: somma di n numeri in arallelo Alichiamo la legge di Amdhal con =, 4, 8, 6 Consideriamo quindi n= 8, 6, 3, 64 Esemio: somma di n numeri in arallelo Alichiamo la legge di Amdhal con =, 4, 8, 6 Consideriamo quindi n= 8, 6, 3, 64 n n 4 è costante α α S (n) E (n) 8 0,4 0,86,75 0,875 Lo seed u aumenta! n n 4 è costante α α S (n) E (n) 8 0,4 0,86,75 0,875 L efficienza è quasi costante! 6 4 0,06 0,8 3 0,75 6 4 0,06 0,8 3 0,75 3 8 0,03 0,77 5, 0,64 3 8 0,03 0,77 5, 0,64 64 6 0,0 0,76 9 0,56 64 6 0,0 0,76 9 0,56 Efficienza 48 Efficienza 49
Scalabilità dell algoritmo Aumentando sia n che, le restazioni dell algoritmo arallelo non degradano: l efficienza rimane costante Ma come misurare le restazioni? Efficienza 50 Esemio: somma di n numeri in arallelo Sia (n) il temo di esecuzione su un rocessore er la somma di n numeri Raddoiamo ed n: con = osso calcolare la somma di n numeri nel temo (n) Quadrulichiamo ed n : (n) (n) con =4 osso calcolare la somma di 4n numeri nel temo (n) (n) 4(4n) Efficienza 5 Esemio: somma di n numeri in arallelo Sia (n) il temo di esecuzione su un rocessore er la somma di n numeri, in generale vale Pertanto... (n) (n) (n) (n) ( 4n)... (n) 4 (n) (n)..se si assume (n) = (n) (n) (n) Si raggiunge lo seedu ideale!! ideale S Efficienza 5 Seedu Scalato Un algoritmo si dice scalabile se aumentando il numero di rocessori riusciamo ad aumentare roorzionalmente(*) la dimensione del roblema mantenendo il temo arallelo costante, cioè vale: (n) (n) SS(n) (n) (n) SPEEDUP SCALAO (*) la legge di roorzionalità diende dal roblema nel caso della somma essa è lineare, cioè Efficienza (n) = (n) 53 3
Efficienza Scalata Un algoritmo si dice scalabile se aumentando il numero di rocessori riusciamo ad aumentare roorzionalmente(*) la dimensione del roblema mantenendo l efficienza scalata costante, cioè vale: SS (n) (n) ES (n) (n) EFFICIENZA SCALAA Osservazione Lo seedu scalato misura la scalabilità di un algoritmo arallelo ovvero di quanto aumenterebbe il temo sequenziale (n) dato il temo arallelo (n), Cioè (*) la legge di roorzionalità diende dal roblema nel caso della somma essa è lineare, cioè Efficienza (n) = (n) 54 Efficienza 55 Osservazione Il temo di esecuzione si uò decomorre in arti:.. Misuriamo quanto imiegherebbe un solo rocessore ad effettuare in sequenziale le oerazioni eseguite concorrentemente da rocessori: cioè quanto imiegherebbe un solo rocessore a risolvere un roblema volte iù grande (fixed-time model) Efficienza 56 una arte di oerazioni che sono eseguite in sequenziale e una arte di oerazioni che sono eseguite arallelamente - seq = = seq + ar =(- ) ar Efficienza 57 4
Il temo di esecuzione si uò decomorre in arti: da = + (- ) una arte di oerazioni che sono eseguite in sequenziale e una arte di oerazioni che sono eseguite arallelamente - calcoliamo = il temo di esecuzione dell algoritmo sequenziale su rocessore tenendo resente che le oerazioni relative alla arte arallela sono ora eseguite sequenzialmente seq = ar =(- ) = + (- ) = + (- ) Efficienza 58 Efficienza 59 Esemio: somma di n =4 su =, =t calc Esemio: somma di n =4 su =, =t calc Al I asso P 0 P Al I asso P 0 P add ( er =) è eseguita concorrentemente ' Parte di arallela Al II asso add ( er =) è eseguita concorrentemente ' Parte di arallela Al II asso add è eseguita in sequenziale ' ( ) Parte di sequenziale add è eseguita in sequenziale ' ( ) Parte di sequenziale = + ( - ) = + ( - ) = 3 t calc Efficienza 60 Efficienza 6 5
In generale ) ' ( ' ' ( ') SS ' ( ') ( ) ' Modello di SPEED UP SCALAO LEGGE DI GUSAFSON (Reinterretazione della legge di Ware-Amdahl) Efficienza 6 Problema Nel assare da 0 a rocessori con > 0,, come deve aumentare (scalare) la dimensione del roblema n 0 affinché l efficienza resti costante? Cioè quanto deve valere n? Efficienza 63 Come calcolare n? S (n ) S 0 (n ) E 0 (n0) = E (n ) O h(n0,0 ) O (n, ) 0 h (n ) (n ) 0 Calcoliamo l isoefficienza nella somma O h () = log (n) = n log n0 log n 0 0 0 0 0 n I(n,, ) (n ) O (n, ) O (n, ) h 0 0 h (n ) (n ) O (n, ) h (n0 ) O (n, ) h 0 0 0 Efficienza 64 ISOEFFICIENZA Nel assare da 0 a con > 0, la dimensione del roblema deve aumentare, risetto alla dimensione iniziale n 0, del fattore k = ( log )/ 0 log 0 Efficienza 65 6
Seed u ed efficienza scalata Osservazione ES I(n0,0,n ) (n0 ) SS (n ) Seed u scalato SS Se si esegue l algoritmo arallelo su un calcolatore MIMD a memoria distribuita, il temo di esecuzione diende solo dal numero di oerazioni eseguite in differenti assi temorali? Efficienza scalata Efficienza 66 Efficienza 67 Esemio: calcolo della somma di n=6 numeri Esemio: calcolo della somma di n=6 numeri tt com ALGORIMO PARALLELO = P 0 P comunicazione t com = temo er comunicare un dato tra due rocessori L algoritmo richiede la comunicazione di dato tra rocessori =8 t calc +t com t com ALGORIMO PARALLELO =4 P 0 P P P 3 4 =5 t calc +t com Efficienza 68 Efficienza 69 7
Esemio: calcolo della somma di n=6 numeri In sintesi ALGORIMO PARALLELO =8 t calc P 0 P P P 3 P 4 P 5 P 6 P 7 5t calc 3 8 =4 t calc +3t com 8t calc + t com 4 5t calc + t com 8 4t calc + 3 t com k? t calc +? t com? Efficienza 70 In generale quanto vale considerando le comunicazioni? Efficienza 7 In generale: calcolo di considerando le comunicazioni ALGORIMO PARALLELO della somma di n numeri su = k rocessori Overhead di comunicazione unitario t com = temo di comunicazione t calc = temo di esecuzione di oerazione fl.. = =5 t calc = =8 t calc = (7+) t calc + t com =4 4 =5 t calc = (3+) t calc + t com n = 6 =8 8 =4 t calc = (+3) t calc + 3 t com = k n = ( - +log ) t calc + (log ) t com definiamo overhead di comunicazione unitario, il raorto: t oc t com calc t calc = temo di esecuzione di addizione t com = temo di comunicazione Efficienza 7 Efficienza 73 8
Esemio: calcolo della somma di n=6 numeri tcom =5t calc suoniamo oc tcalc rascurando la comunicazione Considerando la comunicazione S P E 8t calc.88 0.94 4 5t calc 3.00 0.75 8 4t calc 3.75 0.47 comunicazioni S P E (8+ )t calc.50 0.75 4 (5+ )t calc.67 0.4 8 (4+ 3)t calc.88 0.4 = k n = ( - +log ) t calc = k n = ( - +log ) t calc + (log ) t com Considerando o meno il temo di comunicazione le restazioni Efficienza dell algoritmo ossono cambiare notevolmente! 74 Overhead di comunicazione com = temo di comunicazione dell algoritmo eseguito su rocessori calc = temo di calcolo dell algoritmo eseguito su rocessori definiamo Overhead di Comunicazione totale, il raorto: OC com calc Fornisce una misura del eso della comunicazione sul temo di esecuzione dell algoritmo Efficienza 75 Riferimenti Bibliografici A. Murli, Lezioni di Calcolo Parallelo, ca 3 A.Y. Grama, A. Guta, V. Kumar Isoefficiency: Measuring the Scalability of Parallel Algorithms and Architectures IEEE Parallel & Distributed echnology, 993 Fine Lezione A.Y. Grama, A. Guta, G.Karyis, V. Kumar Introduction to Parallel Comuting Second edition htt://www-users.cs.umn.edu/~karyis/arbook/ J. L. Gustafson. Reevaluating Amdahl s Law. Communications of the ACM, May 988. 76 Efficienza 77 9