Side om side. Trettende forelesning

Like dokumenter
Rundt og rundt og. Trettende forelesning

Avanserte flytalgoritmer

Algdat - øvingsforelesning

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Øvingsforelesning 12 Maks flyt

Øvingsforelesning Korteste vei: Alle til alle

LO118D Forelesning 2 (DM)

Alle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder.

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Go with the. Niende forelesning. Mye matematikk i boka her ikke så komplisert, men mye å holde styr på.

Introduksjon til Algoritmeanalyse

INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon.

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Fra A til B. Syvende forelesning

INF 3/ oktober : Avslutte Branch and Bound 23.6: Trær og strategier for spill med to spillere

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11

MAT1030 Diskret matematikk

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon

I et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ

Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.

Fig1. Den konvekse innhyllinga av 100 tilfeldige punkter i planet (de samme som nyttes i oppgaven.)

Algdat - øvingsforelesning

Forelesning 19 torsdag den 23. oktober

LO118D Forelesning 12 (DM)

Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl

Øvingsforelesning 4. Topologisk sortering, Strongly Connected Components og Minimale spenntrær. Magnus Botnan

Divide-and-Conquer II

MAT1030 Forelesning 24

INF oktober Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet

Forelesning 29: Kompleksitetsteori

MAT1030 Diskret Matematikk

Longest increasing. subsequence Betingelser. Longest. common subsequence. Knapsack Grådig vs. DP Moro: 2D-Nim Spørsmål. Forside. Repetisjon.

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

Avsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs (LF)

Rekursiv programmering

Go with the. Niende forelesning. Mye matematikk i boka her ikke så komplisert, men mye å holde styr på.

INF2810: Funksjonell Programmering. Strømmer

Algdat Eksamensforelesning. Nils Barlaug

INF2810: Funksjonell Programmering. Strømmer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs (løsningsforslag)

INF 4130 Oppgavesett 3, 20/ m/løsningsforslag

Løsningsforslag - Parallellitet og repetisjon

Løsnings forslag i java In115, Våren 1996

Dagens plan: INF Algoritmer og datastrukturer. Grafer vi har sett allerede. Det første grafteoretiske problem: Broene i Königsberg

Forelesning 11 mandag den 22. september

KONTINUASJONSEKSAMEN I FAG ALGORITMER OG DATASTRUKTURER

INF Algoritmer og datastrukturer

Eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

Kompleksitetsanalyse Helge Hafting Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

UNIVERSITETET I OSLO

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

UNIVERSITETET I OSLO

Rekursjon. Binærsøk. Hanois tårn.

G høgskolen i oslo. Dato: . Tillatte. .3aa, 3ab, 3ac, 3ia, 3ib, 3ic. Kandidaten må selv kontrollere at oppgavesettet er fullstendig.

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

INF5110 V2012 Kapittel 4: Parsering ovenfra-ned

INF2220: Forelesning 2

Forelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet

Heapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer

Computational Geometry

MAT1030 Diskret matematikk

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori

Forelesning nr.7 INF Kondensatorer og spoler

INF oktober Stein Krogdahl. Kap 23.5: Trær og strategier for spill med to spillere

Ikke lineære likninger

Øvingsforelesning 7. Dijkstras algoritme. Foiler: Fredrik Ludvigsen Foreleser: Jon Marius Venstad 10/4/09 1

Variable Man kan bruke variable i ML. ML (kap 5 og 6) Nye datatyper INF3110/4110 INF3110/4110 INF3110/4110 INF3110/4110. Variable i ML.

Løsnings forslag i java In115, Våren 1999

Live life and be merry

Spenntrær, oppsummert: Kruskal: Traverserer ikke. Plukker kanter i hytt og vær Prim: Legger alltid til den noden som er nærmest treet

Kompleksitet og Beregnbarhet

INF3/4130 PRØVE-EKSAMEN MED SVARFORSLAG Gjennomgås 1/ , (lille aud.)

ALGORITMER OG DATASTRUKTURER

Grunnleggende Grafalgoritmer III

Grunnleggende Grafteori

MA3301 Beregnbarhets- og kompleksitetsteori Høsten

Algdat - Øvingsforelesning. Maks flyt

To geometriske algoritmer, kap. 8.6

Analyse av Algoritmer

Studentnummer: Side 1 av 1. Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005

Avsluttende eksamen i IT1105/TDT4120 Algoritmer og datastrukturer

Obligatorisk oppgave 1: Regneklynge

Forelesning 30. Kompleksitetsteori. Dag Normann mai Informasjon. Oppsummering

MAT1030 Diskret matematikk

MAT Oblig 1. Halvard Sutterud. 22. september 2016

INF Algoritmer og datastrukturer

KORTESTE STI. Vektede Grafer. Korteste Sti. Dijkstra s Algoritme. Vektet Urettet Graf

Fibonaccitallene og det Gylne Snitt

Choices, choices. Tiende forelesning. Dynamisk programmering: En serie med valg der valgmulighetene er avhengige av hva vi har valgt før.

LO118D Forelesning 9 (DM)

UNIVERSITETET I OSLO

Eksamenshefte TDT4120 Algoritmer og datastrukturer

Rekurrens. MAT1030 Diskret matematikk. Rekurrens. Rekurrens. Eksempel. Forelesning 16: Rekurrenslikninger. Dag Normann

Lars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28

Transkript:

Side om side Trettende forelesning 1

Det finnes mange modeller for parallellitet. Her får dere en liten smak av én av dem som er ment å modellere trådbasert parallellitet/ multicoreprogrammering. Parallellitet 2

Fib(n) 1 if n 1 2 return n 3 else x = Fib(n 1) 4 y = Fib(n 2) 5 return x + y 3

Dokumentasjonen på nett spawner begge kallene; i det nye kapitlet i Cormen et al. spawnes bare ett av dem. P-Fib(n) 1 if n 1 2 return n 3 else x = spawn Fib(n 1) 4 y = Fib(n 2) 5 sync 6 return x + y 4 Dette er logisk parallellitet ikke faktisk. Hvor ting faktisk kjøres i parallell kommer an på scheduler og antall prosessorer. (Tilsvarende fork/join i UNIX, men med tråder.)

Hver runding kalles en strand (i originaldokumentasjonen, thread, men det kan kanskje være litt forvirrende). De lyse boksene er spawnede, mens de mørke er kalt på vanlig vis. P-Fib(4) P-Fib(3) P-Fib(2) P-Fib(2) P-Fib(1) P-Fib(1) P-Fib(0) P-Fib(1) P-Fib(0) 5 Avhengighetsgrafen er (naturlig nok) en DAG. En viktig del av den er spawntreet. Her er også den kritiske stien uthevet.

Når man analyserer algoritmer er det gjerne denne man vil beskrive: Kjøretiden, som funksjon av problemstørrelsen. T (n) 6

Den eneste endringen her er egentlig at vi legger til antall prosessorer, P, som parameter. T P (n) 7

For enkelhets skyld dropper jeg n som eksplisitt parameter i T P 8

Work T 1 Den tiden det tar på én prosessor; evt., antall noder i DAG-en. 9

Span T Tiden det tar med uendelig mange prosessorer. Evt., den lengste stien fra start til slutt (critical path). 10

A B T 1 (A B) =T 1 (A)+T 1 (B) T (A B) =T (A)+T (B) 11

A B T 1 (A B) =T 1 (A)+T 1 (B) T (A B) = max(t (A),T (B)) 12

Fibonacci T 1 (n) = T (n) =T (n 1) + T (n 2) + (1) = ( n ) T (n) = max(t (n 1),T (n 2)) + (1) = T (n 1) + (1) = (n) For P-Fib har vi altså eksponentielt arbeid med lineært spenn. 13

Det er ikke så enkelt å finne eksakte formler for Tp derfor er det nyttig å kunne bruke noen nedre beskrankninger, og kunne holde oss til T1, Tinf og P, som er lettere å finne. Ulikheter 14

The Work Law T T 1 P P 15 Tiden det tar kan ikke være lavere enn gjennomsnittsarbeidet per prosessor. (Går du under snittet hos én må du gå over hos en annen )

The Span Law T P T 16

Speedup T 1 T P Hvis vi går fra 1 til P prosessorer, hvor mye fortere går det? 17

The Work Law gir oss T 1 P T P Hvis vi går fra 1 til P prosessorer kan det maksimalt gå P ganger så fort. 18

Lineær speedup T 1 T P (P ) 19

Perfekt speedup P ganger så fort med P prosessorer. Så: I tillegg til at vi vil at kjøretiden skal vokse langsomt som funksjon av n så vil vi at speedup-en skal vokse fort (helst lineært) som funksjon av P. Dvs., vi vil at algoritmen skal utnytte ekstra prosessorer så bra som mulig (i hvert fall opp til et visst antall). T 1 = P T P Men siden vi har problemer med å finne Tp så må vi gå noen omveier 20

Parallellitetsgrad (parallelism) T 1 T Kan sees på (i hvert fall) tre måter: (1) Gjennomsnittlig arbeid per trinn i kritisk sti (2) maksimal speedup 21 (3) grense for mulig perfekt speedup (Mer om det om en liten stund.)

Fibonacci T 1 (n) n T (n) = n Vokser dramatisk som funksjon av n. Med andre ord, selv med enormt mange prosessorer skal det ikke noen stor n til før man har nærmest perfekt speedup. M.a.o.: Algoritmen kan nyttiggjøre seg alle kjernene du kan kaste etter den. 22

Flere pros. enn parallellitetsgrad T 1 T 1 T P T <P Perfekt speedup er da ikke lenger mulig. 23

Mange pros. ifht. parallellitetsgrad P T 1 T T 1 T P P 24 Så parallellitetsgraden er bra eller dårlig i forhold til antall prosessor. Forholdet mellom parallellitetsgraden og antall prosessorer er altså viktig.

Scheduling Scheduleren fordeler strands mellom prosessorer mens programmet kjører uten forhåndskunnskap (dvs. on-line ). For å gjøre analysen enkel, brukes her en sentralisert, grådig scheduler. Ikke optimal, men ikke så veldig langt ifra Grådig scheduling: Utfør så mange strands som mulig i hvert trinn. 25

Grådig sched. på ideell par. maskin: T T 1 P P + T 26

Korollar T P T 1 P + T T P 2T P En tidsdobling er en del men for asymptotisk analyse spiller det jo ingen rolle. (Grunnen til at vi bruker grådig scheduling her er først og fremst at det er greit å analysere.) 27

Enda et korollar T P T 1 P + T P T 1 T T P T 1 P 28

Ekvivalent konklusjon T 1 P T P Altså: Ved høy parallellitet ifht. antall prosessorer gir grådig scheduling nesten perfekt speedup. 29