Side om side. Trettende forelesning

Like dokumenter
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.

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

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

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

Algdat - øvingsforelesning

Forelesning 19 torsdag den 23. oktober

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å.

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

INF Algoritmer og datastrukturer

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 )

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

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

INF2220: Forelesning 2

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

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

MAT1030 Diskret matematikk

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

Forelesning nr.7 INF Kondensatorer og spoler

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

Kompleksitet og Beregnbarhet

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

ALGORITMER OG DATASTRUKTURER

Grunnleggende Grafteori

MA3301 Beregnbarhets- og kompleksitetsteori Høsten

Algdat - Øvingsforelesning. Maks flyt

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

LO118D Forelesning 9 (DM)

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