Prestanda och skalbarhet

Relevanta dokument
Översikt. Parallella sökalgoritmer för diskreta optimeringsproblem. 8-pusslet. Problemdefinitioner

TDDI16 Datastrukturer och algoritmer. Algoritmanalys

Sortering. Intern/ extern? Antaganden. Vad kan vi kräva? Rank sort. Rank sort. På en nod/ distribuerad? Jämförelsebaserad/ icke jämförelsebaserad?

von Neumann's bottleneck

Algoritmanalys. Inledning. Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016

Installation Site Country/Year Earth Simulator Center Japan/2002 Los Alamos National Laboratory USA/2002. Los Alamos National Laboratory USA/2002

Programkonstruktion och Datastrukturer

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Föreläsning 5 Innehåll

Algoritmer, datastrukturer och komplexitet

Ekvivalensrelationer

Föreläsning 5 Innehåll. Val av algoritm och datastruktur. Analys av algoritmer. Tidsåtgång och problemets storlek

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

1 Duala problem vid linjär optimering

Algoritmer och effektivitet. Föreläsning 5 Innehåll. Analys av algoritmer. Analys av algoritmer Tidskomplexitet. Algoritmer och effektivitet

Lösningsförslag till övningsuppgifter, del V

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Tentamen : Lösningar. 1. (a) Antingen har täljare och nämnare samma tecken, eller så är täljaren lika med noll. Detta ger två fall:

Strategier för att utnytja parallella system. Peter Kjellström NSC Upplysning

TAMS79: Föreläsning 10 Markovkedjor

Föreläsning 1. Introduktion och sökning i graf. Vad är en algoritm?

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

PROJECT REPORT. Parallelberakning genom androidtelefoner. Jonas Westman and Anders Hommerberg Project in Computational Science: Report December 2011

Föreläsning 1 Datastrukturer (DAT037)

Regression med Genetiska Algoritmer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 5 Jonas Lindgren, Institutionen för Datavetenskap, LiU

= = i K = 0, K =

Datastrukturer och algoritmer

Föreläsning 13 Innehåll

Diskreta Linjära System och Skiftregister

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.

TMV225 Kapitel 3. Övning 3.1

Övningsuppgifter för sf1627, matematik för ekonomer. 1. Förenkla följande uttryck så långt det går: Derivator

Föreläsning 2 Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT036)

där x < ξ < 0. Eftersom ξ < 0 är högerledet alltid mindre än Lektion 4, Envariabelanalys den 30 september 1999 r(1 + 0) r 1 = r.

Neurokognitiv arkitektur

ÖVN 2 - DIFFERENTIALEKVATIONER OCH TRANSFORMMETODER - SF1683. Inofficiella mål

Föreläsning 5: Kardinalitet. Funktioners tillväxt

Andragradskurvor. ax 2 + 2bxy + cy 2 + dx + ey + f = 0. Trots att ekvationen nu är betydligt mer komplicerad

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Sökning och sortering

v0.2, Högskolan i Skövde Tentamen i matematik

Härledning av Black-Littermans formel mha allmänna linjära modellen

Föreläsning 3: Dekomposition. Dekomposition

1 LP-problem på standardform och Simplexmetoden

Grundläggande logik och modellteori

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Sammanfattning av föreläsning 11. Modellbygge & Simulering, TSRT62. Föreläsning 12. Simulering. Föreläsning 12. Numeriska metoder och Simulering

Fördelning. Fördelningsprinciper. Lastbalansering

Konvergens för iterativa metoder

Algoritmer, datastrukturer och komplexitet

Programmeringsmetodik DV1 Programkonstruktion 1. Moment 4 Om rekursion. PK1&PM1 HT-06 moment 4 Sida 1 Uppdaterad

y y 1 = k(x x 1 ) f(x) = 3 x

Numerisk Analys, MMG410. Lecture 13. 1/58

International Olympiad in Informatics July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen den 18 mars svar Datorteknik, EIT070

Numerisk Analys, MMG410. Lecture 12. 1/24

Summera godtyckligt antal tal. Programkonstruktion. Moment 4 Om rekursion. Fullständigt resonemang för summeringen. Analys av summeringsproblemet

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning

Parallellprogrammering i C++ 17 EDT621 Datorarkitekturer med Operativsystem Viktor Lindgren

Tommy Färnqvist, IDA, Linköpings universitet

Föreläsning 9 Datastrukturer (DAT037)

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet

Föreläsning 6: Nätverksoptimering

Jonas Gustavsson. Leverans av 10PB Isilon

1 Minkostnadsflödesproblem i nätverk

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

1 Positivt definita och positivt semidefinita matriser

Föreläsning 1. Introduktion. Vad är en algoritm?

Vektorgeometri för gymnasister

Optimeringslära Kaj Holmberg

Föreläsning 5: Grafer Del 1

Föreläsning 12+13: Approximationsalgoritmer

Algoritmer, datastrukturer och komplexitet

Föreläsning 13: Multipel Regression

Linjära ekvationssystem

Lösningar till 5B1762 Optimeringslära för T, 24/5-07

Tommy Färnqvist, IDA, Linköpings universitet

Asymptotisk komplexitetsanalys

Markovkedjor. Patrik Zetterberg. 8 januari 2013

Öka prestanda i Shared-Cache multi-core processorer

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

Föreläsning 13 Innehåll

Föreläsning 10. Grafer, Dijkstra och Prim

Tentamen i Beräkningsvetenskap I och KF, 5.0 hp,

Lösningsförslag till tentamen i SF1861 Optimeringslära för T. Torsdag 28 maj 2010 kl

PCP-satsen på kombinatoriskt manér

Föreläsning Datastrukturer (DAT037)

R AKNE OVNING VECKA 1 David Heintz, 31 oktober 2002

DERIVATA. = lim. x n 2 h h n. 2

Kunna dra slutsatser om ett systems betjäningstider och antalet köplatser genom att tolka diagram.

Tommy Färnqvist, IDA, Linköpings universitet

Tentamen MVE301 Sannolikhet, statistik och risk

F13: Regulatorstrukturer och implementering

MATEMATIK GU. LLMA60 MATEMATIK FÖR LÄRARE, GYMNASIET Analys, ht Block 5, översikt

Lastbalansering. Fördelningsprinciper. Fördelning. balans. MIMD-parallellt program Ett antal tasks som exekverar seriellt eller parallellt

Transkript:

Prestanda och skalbarhet Grama et al. Introduction to Parallel Computing Kapitel 5 Erik Elmroth Översikt 2 Exekveringstid Uppsnabbning Effektivitet Kostnad Kostnadsoptimal algoritm Ahmdals lag Gustafson-Barsis lag Uppskalning av problemstorlek Kornighet Overhead Isoeffektivitetsfunktionen Grad av parallellitet Minimal exekveringstid Scaled speedup Generalized scaled speedup Size up Processor efficiency function sida 1

Prestanda och skalbarhet hos parallella system 3 T s : seriell exekveringstid T p : parallell exekveringstid S: uppsnabbning = T s (bästa sekventiella algoritm)/t p E: effektivitet = S/p absolut Kostnad: summan av alla processorers tid = T p *p Skalbarhet: förmåga att uppnå prestanda proportionell mot antalet processorer p Kostnadsoptimalt system: kostnaden T p *p är proportionell mot T s E = Θ(1) (sekv tid/parallell kostnad) Amdahls lag 4 Låt β vara den seriella andelen av en parallell algoritm T p = T s * β + (T s *(1 - β)) / p S = p/(β *p + (1 - β)) Exempel: β = 0.10, p = 10 ==> S = 5.26 β = 0.10, p = 64 ==> S = 8.77 β = 0.10, p = inf ==> S = 10.00 Ahmdahls lag indikerar att även en mycket liten seriell andel omöjliggör effektiv användning av många processorer! sida 2

Gustafson-Barsis lag 5 Öka (skala upp) parallella delen av ett program Antag att den parallella andelen av ett program är p*(1 - β): T p = β + (1 - β) På 1 processor exekveras både den seriella och den parallella delen seriellt: T s = β + (1 - β)*p S = p - (p - 1)* β Exempel: β = 0.10, p = 10 ==> S = 9.10 β = 0.10, p = 64 ==> S = 57.60 β = 0.10, p = inf ==> S = inf Gustafson-Barsis lag: slutsatser 6 Gustafson-Barsis lag visar att om problemstorleken skalas då p ökar kan mycket hög speedup uppnås även för mycket stora p Inte alltid möjligt att skala upp enbart den parallella delen (utan att samtidigt skala upp den seriella delen) Inte självklart hur prestanda ska mätas för skalade problem! sida 3

Summera 16 tal på 16-noders hyperkub 7 Analys för summering av 16 8 Den parallella algoritmen utför 4 steg, vardera med 1 addition och 1 granne-granne kommunikation T p = log n *(t a + t s + t w ) = Θ (log n) T s = n t a = Θ (n) S = T s / T p = Θ(n / log n) E = S / n = Θ(1 / log n) kostnad = n * T p = Θ (n log n) > Θ(n), dvs, algoritmen är ej kostnadsoptimal sida 4

Kornighet och mappning av data 9 Nerskalning av antal processorer kan förbättra kostnadseffektiviteten Nerskalning ger grövre kornighet Naiv metod (om p < n): skapa n virtuella processorer som fördelas på p verkliga processorer Nackdel: Ej kostnadsoptimal om den ej är det i fallet p = n Effektivare: Ge initialt varje processor större del av arbetet 4 processorer simulerar 16 10 T p = Θ(n/p + (n/p) log p) = Θ((n/p) log p) ==> p* T p = Θ(n log p) > Θ(n) sida 5

Kostnadsoptimalt alternativ 11 12 Analys för den kostnadsoptimala algoritmen Varje processor adderar n/p tal lokalt på Θ(n / p) tid p delresultat summeras på Θ(log p) tid T p = Θ(n / p + log p) kostnad = p * T p = Θ (n + p log p), dvs, algoritmen är kostnadsoptimal om n = Ω(p log p) sida 6

Speedup & effektivitet: beror av n och p 13 Speedup och effektivitet för den kostnadsoptimala algoritmen (antag att en tidsenhet = t a = t s + t w ) Observation av konstant effektivitet 14 E = 0.80 erhålls för p = 4 och n = 64 p = 8 och n = 192 p = 16 och n = 512 För samtliga tre fall gäller att n = 8 p log p Vi har tidigare sett att algoritmen är kostnadsoptimal för n = Ω(p log p) Vi fortsätter nu att analysera algorimens prestanda sida 7

Skalbarhet 15 Förmåga att bibehålla konstant effektivitet då både problemstorlek och antal processorer ökas Ett rimligt ytterliggare krav är att mängden nyttjat minne per nod ej ska öka Ett skalbart system kan alltid göras kostnadsoptimalt för rätt val av problemstorlek och antal processorer Vi önskar ett mått på hur mycket problemstorleken måste ökas för att bibehålla effektiviteten då antal processorer ökas Problemstorlek och overhead 16 W: Problemstorlek = antalet beräkningssteg då problemet löses på 1 processor Vi kommer inledningsvis att anta att ett beräkningssteg tar 1 tidsenhet W = T S T O : Overhead kan beskrivas som en funktion av W och p T O (W,p) = p T P -W sida 8

Overhead i den kostnadsoptimala algoritmen 17 Antag att en tidsenhet = t a = t s + t w n/p tal adderas lokalt på n/p tid p delresultat adderas globalt på 2 log p tid T p = n / p + 2*log p T s = n T o = p* T p -T s = p(n / p + 2*log p) - n = 2 p log p Isoeffektivitet 18 T O = p T P - W T P = (W+T O )/p Detta ger för speedup: S = W T P = pw W + T O Vi får alltså effektiviteten: E = S = W 1 = p W+T O 1+T O /W Om W hålls konstant och p ökas så minskar E, ty overhead ökar med p Om systemet är skalbart och W ökas men p hålls konstant så ökar E sida 9

Isoeffektivitetsfunktionen 19 För ett skalbart system kan effektiviteten hållas konstant genom att förhållandet T O /W hålls konstant För önskat värde E gäller: 1 E = 1 + T O / W T O W = 1 E E För en konstant K = E/(1-E) får vi W = K T O (W,p) W = E 1 E T O Detta W kan ofta erhållas som en funktion av p. Denna funktion kallar vi isoeffektivitetsfunktionen Isoeffektivitetsfunktionen för den kostnadsoptimala algoritmen 20 T o = 2 p log p W = K * T o = 2 K p log p, dvs den asymptotiska isoeffektivitetsfunktionen är Θ(p log p ) För att hålla effektiviteten konstant då #proc ökas från p 1 till p 2, måste problemstorleken ökas från W 1 till W 2 så att W 2 /W 1 = (p 2 log p 2 ) / (p 1 log p 1 ) Noterbart: Vi såg tidigare att E var konstant = 0.8 för W = 8 p log p. Nu inses sambandet 2 K = 2 E/(1-E) = 2*0.8/0.2 = 8 sida 10

Overhead beror av fler variabler (än bara p) 21 Ofta beror overhead även av W. Då kan det ibland vara omöjligt att bryta ut p ur uttrycket. Lösning: Konstant effektivitet erhålls då T o /W är konstant Om T o består av flera termer balanserar vi var och en av dem mot W och beräknar isoeffektiviteten med avseende på respektive term Den term som kräver störst ökning av W ger den asymptotiska isoeffektiviteten Kostnadsoptimalt och isoeffektivitet 22 Finns något samband? Att ett system är kostnadsoptimalt är ekvivalent med att pt p = Θ(W) Eftersom T p = (W + T o (W,p))/p så är detta W + T o (W,p) = Θ(W) T o (W,p) = Ο(W) W = Ω(T o (W,p)) Dvs, ett system är kostnadsoptimalt om och endast om dess overhead-funktion inte asymptotiskt överskrider dess problemstorlek sida 11

Grad av parallellitet och isoeffektivitet 23 Grad av parallellitet, C(W) = maximalt antalet operationer som kan utföras parallellt för problemstorlek W Isoeffektiviteten m a p parallellitet är optimal (= Θ(p)) endast om graden av parallellitet är Θ(W) Om graden av parallellitet är mindre än Θ(W) så är isoeffektiviteten m a p parallellitet större än Θ(p) Den totala isoeffektiviteten är maximum av isoeffektiviteten m a p grad av parallellitet, kommunikation och annan OH Givet isoeffektiviteten och tester på ett fåtal processorer kan vi förutsäga systemets uppförande på fler processorer Mer om overhead 24 Givet en overhead-funktion kan vi uttrycka exekveringstid, speedup, effektivitet och kostnad i termer av p och W Kommunikation Om p processorer vardera kommunicerar t comm tidsenheter, ger detta ett bidrag på p t comm till OH-funktionen Dålig lastbalans Att någon processor ibland är utan arbete Specialfall: Sekventiell delw s bidrar med pw s till OH-funkt. Extra beräkningar Om den bästa sekventiella algoritmen kräver W tidsenheter men en bättre parallelliserbar algoritm kräver W, så bör W -W räknas in i OH-funktionen sida 12

Att bestämma minimal exekveringstid 25 Givet en funktion T p (W,p) kan vi finna minimal exekveringstid genom att derivera T p med avseende på p och sätta derivatan till 0 antal processorer p 0 som ger minimal exekveringstid Genom att sätta p = p 0 i T p (W,p) erhålls den minimala exekveringstiden Scaled Speedup 26 [Gustafson, Montry, Benner] Speedup som erhålls då problemstorleken W ökas linjärt med antal processorer Dvs, jämför prestanda för att lösa problem av storlek W på 1 proc med prestanda för att lösa problem av storlek W*p på p processorer Relation till iso-effektivitet: om iso-eff är nära linjär så ger scaled speedup relativt lika resultat (också nära linjär) om iso-eff är betydligt sämre så ger scaled speedup och iso-eff mycket olika resultat (de mäter alltså inte samma saker) sida 13

Scaled speedup: exempel 27 T 1 : tid för att lösa problem av storlek W på 1 processor T p : tid för att lösa problem av storlek p*w på p processorer p* W / T Scaled speedup = p = W / T 1 p* T 1 T p Om det är möjligt att ta fram ett uttryck för Mflops(.) har vi: Scaled speedup = Mflops ( p) Mflops (1) där Mflops(.) är prestanda för respektive problemstorlek Generaliseringar av scaled speedup 28 [Gustafson et al.], [Worley], [Sun, Ni] Istället för att skala problemstorleken med en faktor p: Problemet skalas så att det precis ryms i minnet på p processorer Problem skalas så att exekveringstiden håller sig under ett givet maximum. Ger i huvudsak två problemklasser: För vissa problem kan endast ett visst antal processorer nyttjas effektivt För andra problem kan i stort sett godtyckligt stora problem lösas på fixed tid med tillräckligt många processorer sida 14

Sizeup 29 [Sun, Gustafson] Vanlig speedup favoriserar långsamma processorer och dåligt kodade program Sizeup mäter kvoten mellan den problemstorlek som löses på p processorer och den som löses på en processor på en given tid Processor efficiency function 30 [Chandran, Davis] den övre gräns av antal processorer som löser ett problem av storlek W så att exekveringstiden är Θ(W/p) Data efficiency function en typ av invers av processor efficiency function minsta problemstorlek som på ett givet antal processorer ger att exekveringstiden är Θ(W/p) sida 15