INF2440 Effektiv parallellprogrammering Uke 1, våren Eric Jul Professor PSE Institutt for Informatikk

Størrelse: px
Begynne med side:

Download "INF2440 Effektiv parallellprogrammering Uke 1, våren Eric Jul Professor PSE Institutt for Informatikk"

Transkript

1 INF2440 Effektiv parallellprogrammerig Uke 1, våre 2018 Eric Jul Professor PSE Istitutt for Iformatikk 1

2 Litt om Eric Ph.D. Uiversity of Washigto, 1989 Dask-amerikaer Bor i Damark pedler til Oslo ca 3-4 gage/måed : Førsteamauesis/professor Købehavs Uiversitet : Bell Labs, Dubli Professor IFI 2

3 E beslutig: hvilket språk? Skal jeg forelese på dask? Or Eglish? 3

4 Motivatio for Parallelle Programmer Maskier ka bestå av flere CPU-er Hver CPU ka utføre programmer uavhegig av de adre CPUer Hver CPU ka have flere kjerer Hver kjere ka utføre programmer Vi vil gjere utytte disse muligheter for parallellisme 4

5 Hva vi skal lære om i dette kurset: Lage parallelle programmer (algoritmer) som er: Riktige Parallelle programmer er klart vaskeligere å lage e sekvesielle løsiger på et problem. Effektive dvs. raskere e e sekvesiell løsig på samme problem Lære hvorda ma parallelliserer et riktig, sekvesielt program + lage ege parallelle algoritmer som ikke bare er e slik parallelliserig; Lære de mage problemee vi støter på og hvorda disse ka takles. Kurset er empirisk (med tidsmåliger), ikke basert på e teoretisk modell av parallelle beregiger, Vi oppfatter programmet som e god ok modell av det problemet vi skal løse. Vi treger ige modell av modelle. Preseterer e klassifikasjo av parallelle algoritmer (ytt). 5

6 Tre gruer til å lage parallelle programmer 1) Skille ut aktiviteter som går lagsommere i e ege tråd. Eks: Tege grafikk på skjerme, lese i database, sede meldig på ettet. Asykro kommuikasjo. 2) Av og til er det lettere å programmere løsige som flere parallelle tråder. Naturlig oppdelig. Eks: Kudesystem over ettet hvor hver bruker får e tråd. Hele operativsystemet har mye parallellitet 1572 aktive tråder i Widows 7 akkurat da dee foile blev skrevet i 2017 og 1921 aktive tråder i Mac OS X Sierra. 3) Vi øsker raskere programmer, raskere algoritmer. Eks: Tekiske beregiger, søkig og sorterig. Dette kurset legger este all vekt på raskere algoritmer 6

7 INF et este ytt kurs Ikke alt er helt ferdig oe vil også bli edret fra våre 2018 spesielt da Are Maus, som har utviklet kurs u er emeritus og Eric overtager. Plalagt fire obliger - de første legges ut 19. ja og vil få ileverigsfrist 9. feb. Så ca. 3-4 uker per oblig. De idividuelle ileveriger : Ma ka samarbeide om algoritmer, me ikke ha helt lik eller delvis felles kode med adre. E oblig er ikke bare ileverig av ett eller flere parallelle programmer, me også e lite rapport om de testee ma har gjort: hastighetsmåliger på disse for ulike størrelse av data med koklusjoer f.eks speedup + O( ) og e forklarig på resultatee. Gruppetimer: Jobbig med ukeoppgaver og obligee Neste ytt kurs betyr at også dere selv vil være med på forme kurset, og at ikke alt vil være perfeekt. 7

8 Pesum Ige dekkede lærebok er fuet, me: Det som foreleses + oppgavee (obliger + ukeoppgaver) er pesum. Bra bok: Bria Goetz, T.Perlis, J. Bloch, J. Bobeer, D. Holms og Doug Lea::"Java Cocurrecy i practice", Addiso Wesley 2006 Kap. 18 og 19 i A. Brulad, K. Hega, O.C. Ligjærde, A. Maus:"Rett på Java" 3.utg. Uiversitetsforlaget, I tillegg leses fra e maski på Ifi kap 1 til 1.4, hele 2 og 3.1 til 3.7 (hopp over programeksemplee) i : (Hvis leses utefor Ifi, så koster det $!) 8

9 I dag teori og praksis programmer som har S < 1 og forklare hvorfor. 9

10 Lieær speedup? Selvsagt øsker vi lieær speedup dvs. bruker vi k kjerer skulle det helst gå k gager fortere e med 1 kjere. Meget sjelde at det ka oppås (mer om det side) Ka superlieær speedup oppås? 10

11 Lieær speedup aalogier Selvsagt øsker vi lieær speedup, MEN: Nogle problemer er emme at parallellisere: Eksempel: 10 persoer ka plate 10 treer ca. 10 gage fortere ed 1 perso ka plate 10 treer. Adre problemer er vaskeligere at parallellisere: Eksempel: hvis 1 perso ka samle et Lego-set på 10 timer, så vil det være vaskelig for 10 persoer at samle det på 1 time der er avhegigheter mellom delee. Adre problemer er ærmest umulige at parallellisere: Eksempel: hvis 1 kvie ka lage et bar på 9 måeder, ka 9 kvier så lage et bar på 1 måed? 11

12 Flys klassifikasjo av datamaskier: Sigle Istructio Multiple Istructio Sigle Data SISD : Ekeltkjere CPU MISD : Pipelie utførelse av istruksjoer i e CPU. Flere maskier som av sikkerhetsgruer utfører samme istruksjoer. Multiple Data SIMD : GPU samme operasjo på mage elemeter (e vektor) Det fies også slike SSE istruksjoer på Itel og AMDs CPU-er MIMD : klyge av datamaskier, og Multikjere CPU 12

13 Eksempel på e SSSE 3-istruksjo (Itel i7) PHADDW, PHADDD Packed Horizotal Add (Words or Doublewords) takes registers A = [a0 a1 a2 ] ad B = [b0 b1 b2 ] ad outputs [a0+a1 a2+a3 b0+b1 b2+b3 ] Det er mage registre (opp til 32) på e kjere for bl.a. slike istruksjoer Et register ka sees på som e cache 0 det tar bare é istruksjos-sykel å aksessere et register mot 3 sykler i cache1 (i e 3 GHz CPU er e sykel 1/3 s = 1/3 milliard dels sekud) 13

14 Dette kurset hadler om tråder og effektivitet Hva er tråder Se litt på maskie Se på operativsystemet Hvorda skal vi oppfatte e tråd i et Java-program Seere se på kompilerige og kjørig av Java-kode Hvorda måle effektivitet Hvorda ta tide på ulike deler av et program; både: De sekvesielle algoritme E eller flere parallelle løsiger I dag: Ekel tidtakig Neste gag: Bedre tidtakig Praktisk i dag Stadard måte å starte programmet med tråder 14

15 Flere mulige sysvikler Mage ivåer i parallellprogrammerig: 1. Maskivare 2. Programmerigsspråk 3. Programmerigsabstraksjo. 4. Hvilke typer problem eger seg for parallelle løsiger? 5. Empiriske eller formelle metoder for parallelle beregiger INF2440: Parallellprogrammerig av ulike algoritmer med tråder på multikjere CPU i Java empirisk vurdert ved tidsmåliger. 15

16 Learig-by-doig Dette kurs er et Learig-by-doig kurs! Utbyttet ditt er avhegig av DIN isats! 16

17 Maskivare og språk for parallelle beregiger og Ifi-kurs 1. Klyger av datamaskier - INF3380 jfr. Abelklyge på USIT med ca kjerer. 640 maskier (oder), hver med 16 kjerer C, C++, Fortra, MPI de ulike programbitee i kjeree seder meldiger til hveradre 2. Grafikkkort GPU med små-kjerer, INF5063 Eks Nvidia med flere tuse småkjerer (SIMD maski) 3. Multikjere CPU (2-100 kjerer per CPU) INF2440 AMD, Itel, ARM, Mobiltelefoer,.. De fleste programmerigsspråk: Java, C, C++,.. 4. Mage maskier løst koblet over iterett. INF5510 Plaetlab world-wide testbed Emerald språk til distribuert programmerig 5. Teoretiske modeller for beregigee INF4140 PRAM modelle og formelle modeller (f.eks FSM) 17

18 Multikjere - Itel Multicore Nehalam CPU Mage ulike deler i e Multicore CPU bla. e pipelie av maskiistruksjoer; kjeree holder på med 10 til 20 istruksjoer samtidig dvs. istruksjosparallellitet 18

19 Hvorfor får vi multikjere CPUer? Hver måed dobler atall trasistorer vi ka få på e brikke: Moores lov Vi ka ikke lage raskere kretser fordi da vil vi ikke greie å luftkjøle dem (ca. 120 Watt på ca. 2x2 cm varmere e e rødglødede kokeplate). Og der er kvatemekaiske begresiger også. Med f.eks dobbelt så mage trasistorer øsker vi oss egetlig e dobbelt så rask maski, me det vi får er dessverre bare dobbelt så mage CPU-kjerer. Med flere regekverer (kjerer) må vi få opp hastighete ved å lage parallelle programmer! 19

20 20

21 21

22 Helt avgjørede for oss cache-hukommelse Hva er cache Raskere (me også dyrere) hukommelse mellom hovedlageret og kjeree. Vi må ha cache fordi det er så store hastighetsforskjeller mellom e CPU-kjere og hovedlageret ( mai memory ) Ofte å 3-4 lag med cache hukommelser + et atall registere i kjere (eda raskere e cache-hukommelsee) som holder data eller itruksjoer Når e kjere treger data eller e y istruksjo (og de ikke har det i et register) leter de edover i cache-hukommelsee. Først cache level 1 (L1), så L2 cache,.., før de går til hovedhukommelse for data eller istruksjoer. Det fis flere tekikker for å gjøre dette raskt (som pre-fetch, dvs at systemet heter este data/istruksjo ute at kjere eksplisitt har bedt om det) 22

23 Hvorda tar vi hesy til cache-systemet for å få raskere programmer? Vi ser bare på data-cachee (lite å hete på istruksjoee) Viktig å vite er at hver gag vi skal hete data i hovedlageret, får vi e cach-lije = 64 byte = f.eks 8 heltall (it) Det er svært begreset plass i cachee, og e cach-lije som ikke har vært brukt på lege vil bli kastet ut (overskrevet av e ae, yere) cache-lije Slik er raskest: Jobber på få data (korte deler av e array) lege av gage ikke hoppe rudt. Helst gå forlegs eller baklegs gjeom data (arrayee) (i, i+1,.. eller: i, i- 1,..) Vi må lage slike cache-velige programmer! 23

24 Maski 1980 (ute cache) Figur 19.1 Skisse av e datamaski i ca hvor det bare var é beregigsehet, e CPU, som leste sie istruksjoer og både skrev og leste data (variable) direkte i hovedhukommelse. Itel 8080: 1 MHz CPU 24

25 Maski ca med to dobbeltkjere CPU-er 25

26 Hukommelses-systemet i e 4 kjere CPU mage lag og flere ulike beregigsmoduler i hver kjere.: 26

27 Istruksjosparallellitet i e CPU-kjere. Pipelie flere istruksjoer (her 4) utføres samtidig i raskest mulig rekkefølge. 27

28 Test av forsikelse i data-cachee og hovedhukommelse - latecy.exe (fra CPUZ) 28

29 Oppsummerig idee om at vi har uiform aksesstid i hukommelse er helt galt Hukommelses-systemet i e multicore CPU,Itel Core i GHz, mage lag (typisk aksesstid i istruksjossykler): 1. Registre i kjere (1) 8/32 registre 2. L1 cache (3-4) 32 Kb 3. L2 cache (13) 256 kb 4. L3 cache (32) 8Mb 5. Hovedhukommelse (virtuell hukommelse) (ca. 200) 8-64 GB 6. Diske ( roterede) = 5 ms 1000 GB 1-5 TB FlashDisk (ca les, ca skriv) = ca. 1 ms 29

30 Vi ka ikke hete mer fra automatisk forbedrig av hastighete på våre programmer: Ikke raskere maskier luftkjøligsproblemet Hovedhukommelse - både mye lagsommere e CPU-ee (derfor cache), og det å sette stadig flere kjerer oppå e lagsom hukommelse gir køer. Istruksjos-parallellitete i hver kjere (pipelie) er fult utyttet ikke mer å hete Kompilatore Java (etter ver 1.3) kompilerer videre til maskikode og (etter ver 1.6) optimaliserer mye. JIT-kompilerig. Ikke mulig å gjøre særlig mer effektiv Þ Koklusjo Skal vi ha raskere programmer, må vi som programmerere selv skrive parallelle løsiger på våre problemer. 30

31 Operativsystemet og tråder De ulike operativsystemee (Liux, Widows) har ulike begreper for det som kjøres; mage ivåer (egetlig flere e det som vises her) Liux Task 1 1..* Process 1 1..* Tråd 1..* 1 Widows Applicatio 1 1..* Process 1 1..* Tråd 1 1..* fiber Heldigvis forekler Java dette 31

32 Java forekler dette ved å velge to ivåer Widows Liux Java program ( kjører på e Java VM ) 1 1..* Tråd 1..* 1 starter Alle trådee i et Java-program deler samme adresserom (= samme plasser i hovedhukommelse). Alle trådee ka lese og skrive i de variable (objektee) programmet har og ha adgag til samme kode (metodee i klassee). 32

33 Hva er tråder i Java? I alle programmer kjører mist e tråd mai tråde (starter og kjører i public static void mai). Mai-tråde ka starte e eller flere adre, ye tråder. Ehver tråd som er startet, ka stoppes midlertidig eller permaet av: Av seg selv ved kall på sykroiserigsobjekter hvor de må vete De er ferdig med si kode (i metode ru), termierer da Mai-tråde og de ye trådee går i parallell ved at: De kjører ete på hver si kjere Hvis vi har flere tråder e kjerer, vil klokka i maskie sørge for at trådee av og til avbrytes og e ae tråd får kjøretid på kjere. Vi bruker tråder til å parallellisere programmee våre 33

34 >java (også kalt JVM) starter mai-tråde som igje starter ye tråder 1) JVM starter Mai-tråde JVM 2) Mai-tråde starter k ye tråder 3) Mai-tråde veter mes de adre trådee løser problemet Tråder i Java er objekter av klasse Thread. 34

35 Kostruktør til Thread-klasse Ruable target er : E klasse som implemeterer gresesittet Ruable Det er e ae måte å starte er tråd hvor vi lager e subklasse av Thread (ikke fullt så fleksibel). 35

36 Tråder i Java Er é programflyt, dvs. e serie med istruksjoer som oppfører seg som ett valig, sekvesielt program og kjører på é kjere Det ka godt være (lagt) flere tråder e det er kjerer. E tråd er ofte implemetert i form av e idre klasse i de klasse som løser problemet vårt (da får trådee greit aksess til felles data): import java.util.cocurret.*; class Problem { it [] fellesdata ; // dette er felles, delte data for alle trådee public static void mai(strig [] args) { Problem p = ew Problem(); p.utfoer(); } void utfoer () { Thread t = ew Thread(ew Arbeider()); t.start(); } class Arbeider implemets Ruable { it i,lokaldata; // dette er lokale data for hver tråd public void ru() { // dee kalles år tråde er startet } } // ed idre klasse Arbeider } // ed class Problem 36

37 Tråder i Java E tråd er ete subklasse av Thread eller får til si kostruktør et objekt av e klasse som implemeterer Ruable. Poeget er at begge måtee ieholder e metode: public void ru() Vi kaller metode start() i klasse Thread. Det sørger for at JVM starter tråde og at ru() i vår klasse deretter kalles. JVM som ieholder si del av start() som gjør mye og til slutt kaller ru() Vårt program kaller start i vårt objekt av e subklasse av Thread (eller Ruable). Etter start av tråde kalles vår ru() 37

38 Flere problemer med parallellitet og tråder i Java 1. Operasjoer blades (oppdateriger går tapt). 2. Oppdaterte verdier til felles data er ikke alltid sylig fra alle tråder (oppdateriger er ikke sylige år du treger dem). 3. Sylighet har ofte med cache å gjøre. 4. The Java memory model (= hva skjer egetlig år du kjører et Java-program). Vi må fie på skuddsikre måter å programmere parallelle programmer De er kaskje ikke helt tidsoptimale Me de er lettere å bruke!! Det er vaskelig ok likevel. Bare oversiktelige, ekle måter å programmere parallelt er mulig i praksis

39 1) Ett problem i dag: operasjoer blades ved samtidige oppdateriger Samtidig oppdaterig - flere tråder sier gjetatte gager: i++ ; der i er e felles it. i++ er 3 operasjoer: a) les i, b) legg til 1, c) skriv i tilbake Ata i =2, og to tråder gjør i++ Vi ka få svaret 3 eller 4 (skulle fått 4!) Dette skjer i praksis! Les i Legg til 1 Skriv i tilbake tråd Les i Legg til 1 Skriv i tilbake tråd tide

40 Test på i++; parallell Setter i gag tråder (på e 2-kjerer CPU) som alle prøver å øke med 1 e felles variabel it i; gager ute sykroiserig; for (it j =0; j< ; j++) { i++; } Vi fikk følgede feil - atall og %, (maglede verdier). Merk: Resultatee varierer også mye mellom hver kjørig : Atall tråder Svar 1.gag 2.gag Tap 1.gag 2. gag 0 % 0% 0% 20,4% 35,5% 14,6% 15,3% 17,7% 14,9% 17,5%

41 Kommede program bruker CyclicBarrier. Hva gjør de? Ma lager først ett, felles objekt b av klasse CyclicBarrier med et tall: at til kostruktøre = det atall tråder de skal køe opp før alle trådee slippes fri samtidig. Tråder (også mai-tråde) som vil køe opp på e CyclicBarrier sier await() på de. De at-1 første trådee som sier await(), blir lagt i e kø. Når tråd ummer at sier await() på b, blir alle trådee sluppet ut av køe samtidig og fortsetter i si kode. Det sykliske barriere objektet b er da med e gag klar til å være kø for ye, at stk. tråder. 41

42 Praktisk: skal å se på programmet som laget tabelle import java.util.*; import easyio.*; import java.util.cocurret.*; /** Viser at maglede sykroiserig på ett felles objekt gir feil bare loesig 1) er riktig'*/ public class Parallell { it tall; // Sum av at 'attraader' traader teller opp dee CyclicBarrier b ; // sikrer at alle er ferdige aar vi tar tid og sum it attraader, atgager,svar; // Etter summerig: riktig svar er:attraader*atgager // det kommer ialt 4 forsøk på å øke i, bare e av dem er riktig //sychroized void ikrtall(){ tall++;} // 1) OK fordi sykroiserer på ett objekt (p) void ikrtall() { tall++;} // 2) - feil public static void mai (Strig [] args) { if (args.legth < 2) { System.out.pritl("bruk >java Parallell <attraader> <= atgager>"); }else{ it atkjerer = Rutime.getRutime().availableProcessors(); System.out.pritl("Maskie har "+ atkjerer + " prosessorkjerer."); Parallell p = ew Parallell(); p.attraader = Iteger.parseIt(args[0]); p.atgager = Iteger.parseIt(args[1]); p.utfor(); } } // ed mai 42

43 void utskrift (double tid) { svar = atgager*attraader; System.out.pritl("Tid "+atgager+" kall * "+ attraader+" Traader ="+ Format.alig(tid,9,1)+ " millisek,"); System.out.pritl(" sum:"+ tall +", tap:"+ (svar -tall)+" = "+ Format.alig( ((svar - tall)*100.0 /svar),12,6)+"%"); } // ed utskrift void utfor () { b = ew CyclicBarrier(atTraader+1); log t = System.aoTime(); //+1, også mai // start klokke } // utfor for (it j = 0; j< attraader; j++) { ew Thread(ew Para(j)).start(); } try{ // mai thread veter b.await(); } catch (Exceptio e) {retur;} double tid = (System.aoTime()-t)/ ; utskrift(tid); 43

44 class Para implemets Ruable{ it id; Para(it id) { this.id =id;} public void ru() { for (it j = 0; j< atgager; j++) { ikrtall(); } try { // wait o all other threads + mai b.await(); } catch (Exceptio e) {retur;} } // ed ru // void ikrtall() { tall++;} // 3) Feil - usykroisert // sychroized void ikrtall(){ tall++;} // 4) Feil kallee sykroiserer på // hvert sitt objekt } // ed class Para } // END class Parallell 44

45 Husk: Valigste oppsett av mai-tråde + k tråder mai, lager k ye tråder Data mai veter k tråder, leser og skriver i ege og i felles data og løser problemet Hver av trådee (mai + k ye) er sekvesielle programmer. Problemet er at de samtidig ikke ka skrive på felles data 45

46 Oppsummerig Uke1 Vi har gjeomgått hvorfor vi får flere-kjere CPUer Tråder er måte som et Javaprogram bruker for å skape flere uavhegige parallelle programflyter i tillegg til mai-tråde Tråder deler felles adresserom (data og kode) me har også ege lokale data og metoder Stygg feil vi ka gjøre: Samtidig oppdaterig (=skrivig) på delte data (eks: i++) Dette løses ved sykroiserig. Alle tråder som vil skrive må køes opp på samme sykroiserigsvariabel (som er et objekt) slik at bare é tråd slipper til av gage. Alle objekter ka yttes som e sykroiserigsvariabel, og da ka vi bruke ete e sychroized metode, eller objekter av spesielle klasser som: CyclicBarrier Semaphore (udervises seere) De ieholder metoder som await(), som gjør at tråder veter. Seere vil vi lære å dele opp et problem i midre biter til hver tråd og ikke sykroisere for mye (tar for mye tid) 46

47 47

INF2440 Effektiv parallellprogrammering Uke 1, våren Arne Maus PSE, Inst. for informatikk

INF2440 Effektiv parallellprogrammering Uke 1, våren Arne Maus PSE, Inst. for informatikk INF2440 Effektiv parallellprogrammering Uke 1, våren 2017 Arne Maus PSE, Inst. for informatikk 1 Hva vi skal lære om i dette kurset: Lage parallelle programmer (algoritmer) som er: Riktige Parallelle programmer

Detaljer

INF2440 Effektiv Parallellprogrammering Uke 2 våren tidtaking. Eric Jul PSE Inst. for informatikk

INF2440 Effektiv Parallellprogrammering Uke 2 våren tidtaking. Eric Jul PSE Inst. for informatikk INF2440 Effektiv Parallellprogrammerig Uke 2 våre 2018 - tidtakig Eric Jul PSE Ist. for iformatikk 1 Oppsummerig Uke1 Vi har gjeomgått hvorfor vi får flere-kjere CPUer Tråder er måte som et Javaprogram

Detaljer

INF2440 Effektiv parallellprogrammering Uke 1, våren Arne Maus PSE, Inst. for informatikk

INF2440 Effektiv parallellprogrammering Uke 1, våren Arne Maus PSE, Inst. for informatikk INF2440 Effektiv parallellprogrammering Uke 1, våren 2016 Arne Maus PSE, Inst. for informatikk 1 Hva vi skal lære om i dette kurset: Lage parallelle programmer (algoritmer) som er: Riktige Parallelle programmer

Detaljer

INF2440, Uke 3, våren 2018 Regler for parallelle programmer, mer om cache og Radix-algoritmen. Eric Jul PSE, Inst. for informatikk

INF2440, Uke 3, våren 2018 Regler for parallelle programmer, mer om cache og Radix-algoritmen. Eric Jul PSE, Inst. for informatikk INF2440, Uke 3, våre 2018 Regler for parallelle programmer, mer om cache og Radix-algoritme Eric Jul PSE, Ist. for iformatikk 1 Hva har vi sett på i Uke2 I) Tre måter å avslutte tråder vi har startet.

Detaljer

INF2440 Uke 5, våren2018. Eric Jul PSE Inst. for informatikk

INF2440 Uke 5, våren2018. Eric Jul PSE Inst. for informatikk INF2440 Uke 5, våre2018 Eric Jul PSE Ist. for iformatikk 1 Hva så vi på i Uke4 1. Kommetarer om matrise-multiplikasjo 2. Hvorfor vi ikke bruker PRAM modelle for parallelle beregiger som skal gå fort. 3.

Detaljer

INF2440 Uke 4, v2018 Om å samle parallelle svar, matrisemultiplikasjon og The Java Memory Model. Eric Jul PSE, Inst.

INF2440 Uke 4, v2018 Om å samle parallelle svar, matrisemultiplikasjon og The Java Memory Model. Eric Jul PSE, Inst. INF2440 Uke 4, v2018 Om å samle parallelle svar, matrisemultiplikasjo og The Java Memory Model Eric Jul PSE, Ist. for iformatikk 1 Hva så vi på i uke 3 1. Presiserig av hva som er pesum 2. Samtidig skrivig

Detaljer

IN3030 Uke 12, v2019. Eric Jul PSE, Inst. for informatikk

IN3030 Uke 12, v2019. Eric Jul PSE, Inst. for informatikk IN3030 Uke 12, v2019 Eric Jul PSE, Ist. for iformatikk 1 Hva skal vi se på i Uke 12 Review Radix sort Oblig 4 Text Program Parallellizig 2 Oblig 4 Radix sort Parallelliser Radix-sorterig med fra 1 5 sifre

Detaljer

INF3030 Uke 7, våren Eric Jul PSE Inst. for informatikk

INF3030 Uke 7, våren Eric Jul PSE Inst. for informatikk INF3030 Uke 7, våre 2019 Eric Jul PSE Ist. for iformatikk 1 Hva så vi på i uke 6 1. Eratosthees sil 2. Kokker og Kelere 3. Cocurrecy: De første to av tre måter å programmere moitorer i Java eksemplifisert

Detaljer

IN3030 Uke 5, våren Eric Jul PSE Inst. for informatikk

IN3030 Uke 5, våren Eric Jul PSE Inst. for informatikk IN3030 Uke 5, våre 2019 Eric Jul PSE Ist. for iformatikk 1 Hva så vi på i Uke4 1. Kommetarer om matrise-multiplikasjo 2. Hvorfor vi ikke bruker PRAM modelle for parallelle beregiger som skal gå fort. 3.

Detaljer

INF3030 Uke 6, våren Eric Jul PSE Inst. for informatikk

INF3030 Uke 6, våren Eric Jul PSE Inst. for informatikk INF3030 Uke 6, våre 2019 Eric Jul PSE Ist. for iformatikk 1 Å dele opp algoritme Kode består e eller flere steg; som oftest i form av e eller flere samliger av løkker (som er ekle, doble, triple..) Vi

Detaljer

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det, to typer av vinduer? GUI (Graphical User Interface)-programmering

Om Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det, to typer av vinduer? GUI (Graphical User Interface)-programmering Uke9. mars 2005 rafisk brukergresesitt med Swig og awt Litt Modell Utsy - Kotroll Del I Stei jessig Ist for Iformatikk Uiv. i Oslo UI (raphical User Iterface)-programmerig I dag Hvorda få laget et vidu

Detaljer

INF2440 Uke 6, våren Eric Jul PSE Inst. for informatikk

INF2440 Uke 6, våren Eric Jul PSE Inst. for informatikk INF2440 Uke 6, våre 2018 Eric Jul PSE Ist. for iformatikk 1 Hva så vi på i uke 5 (ku første forelesigstime) 1. Eda bedre Matrise-multipliserig 2. Modell2-kode for sammeligig av kjøretider på (ekle) parallelle

Detaljer

Tråder i Java Parallelle programmmer og programbiter

Tråder i Java Parallelle programmmer og programbiter Oversikt Tråder i Java Parallelle programmmer og programbiter Stei Gjessig, Ist. for iformatikk, Uiv. i Oslo Hva er parallelle programmer? Hvorfor parallelle programmer? Hvorda ka dette skje i e maski

Detaljer

INF1010 våren 2017 Torsdag 26. januar. Arv og subklasser del 1. Stein Gjessing Institutt for informatikk Universitetet i Oslo

INF1010 våren 2017 Torsdag 26. januar. Arv og subklasser del 1. Stein Gjessing Institutt for informatikk Universitetet i Oslo INF1010 våre 2017 Torsdag 26. jauar Arv og subklasser del 1 Stei Gjessig Istitutt for iformatikk Uiversitetet i Oslo 1 Når du har lært om subklasser ka du programmere med: Første uke: Spesialiserig (og

Detaljer

Vi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. Inf 1010-2007 GUI - del 2

Vi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. Inf 1010-2007 GUI - del 2 GUI (Graphical User Iterface)-programmerig If 1010-2007 GUI - del 2 Stei Gjessig Ist for Iformatikk Uiv. i Oslo Tidligere Hvorda få laget et vidu på skjerme Grafikk (tegig i viduet) Hvorda legge ulike

Detaljer

INF NOV PARALLELL SORTERING. Arne Maus, PSE, Ifi

INF NOV PARALLELL SORTERING. Arne Maus, PSE, Ifi INF2220-2. NOV. 2017 PARALLELL SORTERING Arne Maus, PSE, Ifi 2 Dagens forelesning Hva er et parallelt program med tråder (i Java) Typer av parallelle programmer her vil vi ha raskere programmer Hva er

Detaljer

Uke 12 IN3030 v2019. Eric Jul PSE-gruppa Ifi, UiO

Uke 12 IN3030 v2019. Eric Jul PSE-gruppa Ifi, UiO Uke 12 IN3030 v2019 Eric Jul PSE-gruppa Ifi, UiO Oblig 5 Kovekse Ihylliga Itroduksjo De kovekse ihylliga til pukter Oblig 5 Hva er det, defiisjo Hvorda ser de ut Hva brukes de til? Hvorda fier vi de? 24

Detaljer

INF3030 Uke 14, v2019. Eric Jul PSE, Inst. for informatikk

INF3030 Uke 14, v2019. Eric Jul PSE, Inst. for informatikk INF3030 Uke 14, v2019 Eric Jul PSE, Ist. for iformatikk 1 Reste av INF3030 v2019 (uke 13 ige forelesig) Dee forelesige (uke14) Mer om hvorda parallellisere ulike problemer 3. mai Ige forelesig jobbar med

Detaljer

INF1010 våren 2005 Uke 3, 25. januar Arv og subklasser del I

INF1010 våren 2005 Uke 3, 25. januar Arv og subklasser del I Emeoversikt subklasser INF1010 våre 2005 Uke 3, 25. jauar Arv og subklasser del I Stei Gjessig Istitutt for iformatikk 1 Geeraliserig - spesialiserig Gjebruk av klasser Ved sammesetig (komposisjo) Ved

Detaljer

INF2440, Uke 3, våren2014 Regler for parallelle programmer, mer om cache og Radix-algoritmen. Arne Maus OMS, Inst. for informatikk

INF2440, Uke 3, våren2014 Regler for parallelle programmer, mer om cache og Radix-algoritmen. Arne Maus OMS, Inst. for informatikk INF2440, Uke 3, våren2014 Regler for parallelle programmer, mer om cache og Radix-algoritmen Arne Maus OMS, Inst. for informatikk 1 Hva har vi sett på i Uke2 I) Tre måter å avslutte tråder vi har startet.

Detaljer

INF1010 - våren 2007 16. januar, uke 3 - Oversikt og forutsetninger Java datastruktur-tegninger

INF1010 - våren 2007 16. januar, uke 3 - Oversikt og forutsetninger Java datastruktur-tegninger INF1010 - våre 2007 16. jauar, uke 3 - Oversikt og forutsetiger Java datastruktur-tegiger Stei Gjessig Ist. for iformatikk Nye temaer i INF1010 Fra problem til program Software Egieerig light, fasee i

Detaljer

IN1010 våren 2019 Onsdag 15. mai. Rask repetisjon av subklasser og tråder (pluss µ nytt)

IN1010 våren 2019 Onsdag 15. mai. Rask repetisjon av subklasser og tråder (pluss µ nytt) IN1010 våre 2019 Osdag 15. mai Rask repetisjo av subklasser og tråder (pluss µ ytt) Stei Gjessig Istitutt for iformatikk Uiversitetet i Oslo 1 Iledig Dette er 41 lysark som det ikke er mulig å gå gjeom

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF2440 Praktisk parallell programmering Eksamensdag : 2. juni 2014 Tidspunkter: 14.30 Oppgavesettet er på : 4 sider Vedlegg

Detaljer

Hvordan gjør vi det, to typer av vinduer? Om Grafiske Bruker-Grensesnitt (GUI) GUI (Graphical User Interface)-programmering

Hvordan gjør vi det, to typer av vinduer? Om Grafiske Bruker-Grensesnitt (GUI) GUI (Graphical User Interface)-programmering GUI (Graphical User Iterface)-programmerig Uke 11 13. mars 2007 Grafisk brukergresesitt med Swig og awt Litt Modell Utsy - Kotroll Del I Stei Gjessig Ist for Iformatikk Uiv. i Oslo I dag (så lagt vi kommer)

Detaljer

INF våren 2005 Uke 1, 11 jan - Praktisk, oversikt og forutsetninger

INF våren 2005 Uke 1, 11 jan - Praktisk, oversikt og forutsetninger INF1010 - våre 2005 Uke 1, 11 ja - Praktisk, oversikt og forutsetiger Stei Gjessig og Stei Michael Storleer Ist. for iformatikk Om INF1010 Forutsetter INF1000 (eller tilsvarede som Humit1700?) Lærebok

Detaljer

INF3030, Uke 3, våren 2019 Regler for parallelle programmer, mer om cache og Matrise-multiplikasjon. Arne Maus / Eric Jul PSE, Inst.

INF3030, Uke 3, våren 2019 Regler for parallelle programmer, mer om cache og Matrise-multiplikasjon. Arne Maus / Eric Jul PSE, Inst. INF3030, Uke 3, våren 2019 Regler for parallelle programmer, mer om cache og Matrise-multiplikasjon Arne Maus / Eric Jul PSE, Inst. for informatikk 1 Hva har vi sett på i Uke2 Én stygg feil vi kan gjøre:

Detaljer

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

I et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ INF2440-V18 Information INF2440 Vår 2018 eksamen Dato og tid: 11. juni 2018 09:00. Varighet: 4 timer Hjelpemidler: Alt skriftlig materiale er tillatt. Ingen elektroniske hjelpemidler er tillatt. Powerpoint

Detaljer

n / ($$ n 0$$/ $ " 1! <! ')! $ : ; $.+ $.5.+ .!)/!/ ) $.) 6$ 7$, $.5.,.9+- 5.+ 8$ 7$, + - 5.

n / ($$ n 0$$/ $  1! <! ')! $ : ; $.+ $.5.+ .!)/!/ ) $.) 6$ 7$, $.5.,.9+- 5.+ 8$ 7$, + - 5. "# %% & ' ()*,"""). / " %% &%% / ( 0/ " 1 /(232.,..5. 6 7,.5.,. / : ; 5.. )// ).) 8 < ') < 6 6 8 < 8 8 7,.5.,.9 5. 5. 5. 5. 5.. 5..9 /.> DB(?/ ( / (.?/. /?(5@"""6(?( 5@""6 &. A8 6 (."B 3 8 6 ) ("?/& =

Detaljer

Faglærer går normalt én runde gjennom lokalet. Ha evt. spørsmål klare!

Faglærer går normalt én runde gjennom lokalet. Ha evt. spørsmål klare! Side 1 av 6 Noe viktige pukter: (i) (ii) (iii) (iv) Les hele eksamessettet øye før du begyer! Faglærer går ormalt é rude gjeom lokalet. Ha evt. spørsmål klare! Skriv svaree die i svarrutee og levér i oppgavearket.

Detaljer

OM TAYLOR POLYNOMER. f x K f a x K a. f ' a = lim x/ a. f ' a z

OM TAYLOR POLYNOMER. f x K f a x K a. f ' a = lim x/ a. f ' a z OM TAYLOR POLYNOMER I dette otatet, som utfyller avsitt 6. i Gullikses bok, skal vi se på Taylor polyomer og illustrere hvorfor disse er yttige. Det å berege Taylor polyomer for håd er i prisippet ikke

Detaljer

INF2440 Uke 4, våren2014 Avsluttende om matrisemultiplikasjon og The Java Memory Model + bedre forklaring Radix. Arne Maus OMS, Inst.

INF2440 Uke 4, våren2014 Avsluttende om matrisemultiplikasjon og The Java Memory Model + bedre forklaring Radix. Arne Maus OMS, Inst. INF Uke, våren Avsluttende om matrisemultiplikasjon og The Java Memory Model + bedre forklaring Radix Arne Maus OMS, Inst. for informatikk Hva så vi på i uke. Presisering av hva som er pensum. Samtidig

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-aturviteskapelige fakultet Eksame i: STK2100 Løsigsforslag Eksamesdag: Torsdag 14. jui 2018. Tid for eksame: 14.30 18.30. Oppgavesettet er på 6 sider. Vedlegg: Tillatte

Detaljer

INF1010 våren 2017 Torsdag 9. februar. Interface - Grensesnitt

INF1010 våren 2017 Torsdag 9. februar. Interface - Grensesnitt INF1010 våre 2017 Torsdag 9. februar Iterface - Gresesitt og litt om geeriske klasser og geeriske iterface hvis tid Stei Gjessig Dages hovedtema Egelsk: Iterface (også et Java-ord) Norsk: Gresesitt Les

Detaljer

INF2440 Eksamen 2016 løsningsforslag. Arne Maus, PSE ifi, UiO

INF2440 Eksamen 2016 løsningsforslag. Arne Maus, PSE ifi, UiO INF2440 Eksamen 2016 løsningsforslag Arne Maus, PSE ifi, UiO 1 Oppgave 1 (10 poeng) a) Beskriv meget kortfattet de to viktigste egenskapene ved tråder i et Java-program. 1. En tråd er sekvensielt programdel

Detaljer

INF2440, Uke 3, våren2015 Regler for parallelle programmer, mer om cache og Radix-algoritmen. Arne Maus OMS, Inst. for informatikk

INF2440, Uke 3, våren2015 Regler for parallelle programmer, mer om cache og Radix-algoritmen. Arne Maus OMS, Inst. for informatikk INF2440, Uke 3, våren2015 Regler for parallelle programmer, mer om cache og Radix-algoritmen Arne Maus OMS, Inst. for informatikk 1 Hva har vi sett på i Uke2 I) Tre måter å avslutte tråder vi har startet.

Detaljer

Kapittel 10 fra læreboka Grafer

Kapittel 10 fra læreboka Grafer Forelesigsotat i Diskret matematikk torsdag 6. oktober 017 Kapittel 10 fra læreboka Grafer (utdrag) E graf er e samlig pukter (oder) og kater mellom puktee (eg. odes, vertex, edge). E graf kalles rettet

Detaljer

EKSAMEN Løsningsforslag

EKSAMEN Løsningsforslag ..4 EKSAMEN Løsigsforslag Emekode: ITF75 Dato: 6. desember Eme: Matematikk for IT Eksamestid: kl 9. til kl. Hjelpemidler: To A4-ark med valgfritt ihold på begge sider. Kalkulator er ikke tillatt. Faglærer:

Detaljer

IN1010 våren 2018 Tirsdag 13. februar. Interface - Grensesnitt

IN1010 våren 2018 Tirsdag 13. februar. Interface - Grensesnitt IN1010 våre 2018 Tirsdag 13. februar Iterface - Gresesitt Stei Gjessig Dages hovedtema Egelsk: Iterface (også et Java-ord) Norsk: Gresesitt Les otatet Gresesitt i Java av Stei Gjessig To motivasjoer for

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2440 Effektiv parallellprogrammering Eksamensdag: 2. juni 2015 Tidspunkter: 09.00 13.00 Oppgavesettet er på: 3 sider + 2 sider

Detaljer

Konfidensintervall. Notat til STK1110. Ørnulf Borgan, Ingrid K. Glad og Anders Rygh Swensen Matematisk institutt, Universitetet i Oslo.

Konfidensintervall. Notat til STK1110. Ørnulf Borgan, Ingrid K. Glad og Anders Rygh Swensen Matematisk institutt, Universitetet i Oslo. Kofidesitervall Notat til STK1110 Ørulf Borga, Igrid K. Glad og Aders Rygh Swese Matematisk istitutt, Uiversitetet i Oslo August 2007 Formål E valig metode for å agi usikkerhete til et estimat er å berege

Detaljer

Litt om Javas class-filer og byte-kode

Litt om Javas class-filer og byte-kode Litt om Javas class-filer og byte-kode INF 5110, 11/5-2010, Stein Krogdahl (Dessverre litt få figurer) Disse formatene ble planlagt fra start som en del av hele Java-ideen Bt Byte-koden gir portabilitet

Detaljer

INF2440 Uke 6, våren2014 Mer om oppdeling av et problem for parallellisering, mye om primtall + thread-safe. Arne Maus OMS, Inst.

INF2440 Uke 6, våren2014 Mer om oppdeling av et problem for parallellisering, mye om primtall + thread-safe. Arne Maus OMS, Inst. INF2440 Uke 6, våren2014 Mer om oppdeling av et problem for parallellisering, mye om primtall + thread-safe Arne Maus OMS, Inst. for informatikk 1 Oppsummering Uke1 Vi har gjennomgått hvorfor vi får flere-kjerne

Detaljer

Kap 19. Mer om parallelle programmer i Java og Kvikksort

Kap 19. Mer om parallelle programmer i Java og Kvikksort Arne Maus, 5.april 2011: Kap 19. Mer om parallelle programmer i Java og Kvikksort Parallell programmering er vanskelig, og det er derfor utviklet flere synkroniseringsmåter og biblioteker for mer strukturert

Detaljer

INF2440 Effektiv parallellprogrammering Uke 2 -, våren2015 - tidtaking. Arne Maus PSE, Inst. for informatikk

INF2440 Effektiv parallellprogrammering Uke 2 -, våren2015 - tidtaking. Arne Maus PSE, Inst. for informatikk INF2440 Effektiv parallellprogrammering Uke 2 -, våren2015 - tidtaking Arne Maus PSE, Inst. for informatikk 1 Oppsummering Uke1 Vi har gjennomgått hvorfor vi får flere-kjerne CPUer Tråder er måten som

Detaljer

Introduksjon. Hypotesetesting / inferens (kap 3) Populasjon og utvalg. Populasjon og utvalg. Populasjonsvarians

Introduksjon. Hypotesetesting / inferens (kap 3) Populasjon og utvalg. Populasjon og utvalg. Populasjonsvarians Hypotesetestig / iferes (kap ) Itroduksjo Populasjo og utvalg Statistisk iferes Utvalgsfordelig (samplig distributio) Utvalgsfordelige til gjeomsittet Itroduksjo Vi øsker å få iformasjo om størrelsee i

Detaljer

INF2440 Prøveeksamen, løsningsforslag, 20 mai Arne Maus PSE, Inst. for informatikk

INF2440 Prøveeksamen, løsningsforslag, 20 mai Arne Maus PSE, Inst. for informatikk INF2440 Prøveeksamen, løsningsforslag, 20 mai 2015 Arne Maus PSE, Inst. for informatikk 1 Prøveeksamen Er en modell av hva du får til eksamen: - like mange (+-1) oppgaver som eksamen og nesten samme type

Detaljer

Totalt Antall kandidater oppmeldt 1513 Antall møtt til eksamen 1421 Antall bestått 1128 Antall stryk 247 Antall avbrutt 46 % stryk og avbrutt 21%

Totalt Antall kandidater oppmeldt 1513 Antall møtt til eksamen 1421 Antall bestått 1128 Antall stryk 247 Antall avbrutt 46 % stryk og avbrutt 21% TMA4100 Høste 2007 Norges tekisk aturviteskapelige uiversitet Istitutt for matematiske fag Kommetarer til eksame Dette dokumetet er e oppsummerig av erfarigee fra sesure av eksame i TMA4100 Matematikk

Detaljer

Duo HOME Duo OFFICE. Programmerings manual NO 65.044.30-1

Duo HOME Duo OFFICE. Programmerings manual NO 65.044.30-1 Duo HOME Duo OFFICE Programmerigs maual NO 65.044.30-1 INNHOLD Tekisk data Side 2 Systemiformasjo, brukere Side 3-4 Legge til og slette brukere Side 5-7 Edrig av sikkerhetsivå Side 8 Programmere: Nødkode

Detaljer

Statistikk og økonomi, våren 2017

Statistikk og økonomi, våren 2017 Statistikk og økoomi, våre 07 Obligatorisk oppgave 6 Løsigsforslag Oppgave E terig kastes 0 gager, og det registreres hvor mage 6-ere som oppås i løpet av disse 0 kastee. Vi ka kalle atall 6-ere i løpet

Detaljer

Forprosjektrapport. I denne rapporten er aktivitet og oppgave ensbetydende. Bruker referer til sluttbrukerne av applikasjonen og ikke administrator.

Forprosjektrapport. I denne rapporten er aktivitet og oppgave ensbetydende. Bruker referer til sluttbrukerne av applikasjonen og ikke administrator. Forprosjektrapport Presetasjo... Itroduksjo... Bakgru... Mål og rammebetigelser... Kravspesifikasjo... Mål... Rammebetigelser... 3 Tekologi... 3 Løsiger/alterativer... 3 Aalyse av virkiger... 7 Presetasjo

Detaljer

Ukeoppgaver i BtG207 Statistikk, uke 4 : Binomisk fordeling. 1

Ukeoppgaver i BtG207 Statistikk, uke 4 : Binomisk fordeling. 1 Ukeoppgaver i BtG20 Statistikk, uke 4 : Biomisk fordelig. 1 Høgskole i Gjøvik Avdelig for tekologi, økoomi og ledelse. Statistikk Ukeoppgaver uke 4 Biomisk fordelig. Oppgave 1 La de stokastiske variable

Detaljer

INF1010 Tråder II 6. april 2016

INF1010 Tråder II 6. april 2016 INF1010 Tråder II 6. april 2016 Stein Gjessing Universitetet i Oslo 1 Tråder i Java tråden minrunp class MinRun implements Runable { MinRun(... ) {... } public void run( ) {...... } } //end

Detaljer

Avsnitt 8.1 i læreboka Differensligninger

Avsnitt 8.1 i læreboka Differensligninger Diskret Matematikk Fredag 6. ovember 015 Avsitt 8.1 i læreboka Differesligiger I kapittel lærte vi om følger og rekker. Vi studerte både aritmetiske og geometriske følger og rekker. Noe følger og rekker

Detaljer

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

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum. Parallellitet når tema pensum 27/4 felles hukommelse 9.2 9.3 4/5 store parallelle maskiner 9.4 9.6 in 147, våren 1999 parallelle datamaskiner 1 Tema for denne forelesningen: kraftigere enn én prosessor

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i: INF2440 Effektiv parallellprogrammering Prøveeksamensdag: 1. juni 2016 Tidspunkter: 09.00 16.00 Oppgavesettet er på: 4 sider

Detaljer

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse Innhold Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer Prinsipper for synkronisering av felles hukommelse Multiprosessorer koblet sammen av én buss 02.05 2001 Parallelle

Detaljer

Mer om utvalgsundersøkelser

Mer om utvalgsundersøkelser Mer om utvalgsudersøkelser I uderkapittel 3.6 i læreboka gir vi e kort iførig i takegage ved utvalgsudersøkelser. Vi gir her e grudigere framstillig av temaet. Populasjo og utvalg Ved e utvalgsudersøkelse

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF2440 Praktisk parallell programmering Prøveeksamensdag : 26. mai 2014 Tidspunkter: 11.00 Utdeling av prøveeksamen 15:15

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2440 Effektiv parallellprogrammering Eksamensdag: 7. juni 2016 Tidspunkter: 09.00 13.00 Oppgavesettet er på: 3 sider + 1 side

Detaljer

Tråder Repetisjon. 9. og 13. mai Tråder

Tråder Repetisjon. 9. og 13. mai Tråder Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver

Detaljer

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2008 Gunnar Tufte 2 Auka yting 3 Auka yting CPU 4 Parallellitet Essensielt for å øke ytelse To typer: 1) Instruksjonsnivåparallellitet Fleire instruksjonar utføres samtidig

Detaljer

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 10/5-2011, Stein Krogdahl Oversikt over Javas class-filer og byte-kode Disse formatene ble planlagt fra start

Detaljer

MA1102 Grunnkurs i analyse II Vår 2019

MA1102 Grunnkurs i analyse II Vår 2019 Norges tekisk aturviteskapelige uiversitet Istitutt for matematiske fag MA0 Grukurs i aalyse II Vår 09 9 Vi har rekke Dette er e geometrisk rekke som beskrevet på side 50 i læreboka, med x (side ) Spesielt

Detaljer

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 8/5-2012, Stein Krogdahl Byte-koden for Java og.nett (C#) http://en.wikipedia.org/wiki/java_bytecode_instruction_listings

Detaljer

Komplett 250 fra Telenor

Komplett 250 fra Telenor Bredbåd og TVopplevelser fra Teleor Komplett 250 fra Teleor Risvolla borettslag har igått avtale med y TV- og bredbådsleveradør, Teleor. Det vil bygges ut ytt fiberett og istalleres fibersetral i alle

Detaljer

Differensligninger Forelesningsnotat i Diskret matematikk Differensligninger

Differensligninger Forelesningsnotat i Diskret matematikk Differensligninger Differesligiger Forelesigsotat i Diskret matematikk 017 Differesligiger I kapittel lærte vi om følger og rekker. Vi studerte både aritmetiske og geometriske følger og rekker. Noe følger og rekker er imidlertid

Detaljer

INF2440 Uke 4, v2017 Om å samle parallelle svar, matrisemultiplikasjon og The Java Memory Model + evt bedre forklaring Radix

INF2440 Uke 4, v2017 Om å samle parallelle svar, matrisemultiplikasjon og The Java Memory Model + evt bedre forklaring Radix INF Uke, v7 Om å samle parallelle svar, matrisemultiplikasjon og The Java Memory Model + evt bedre forklaring Radix Arne Maus PSE, Inst. for informatikk Hva så vi på i uke. Presisering av hva som er pensum.

Detaljer

Parallellprogrammering og Sortering INF nov. 2015

Parallellprogrammering og Sortering INF nov. 2015 Parallellprogrammering og Sortering INF2220-12.nov. 2015 Kode til H-radix (om igjen) Effekten av caching på kjøretider Problemer med parallellisering på Multicore CPU (MPU). Parallell sortering 2 algoritmer:

Detaljer

Plan for fagdag 3. Plan: Litt om differanse- og summefølger. Sammenhengen a n a 1 n 1 i 1

Plan for fagdag 3. Plan: Litt om differanse- og summefølger. Sammenhengen a n a 1 n 1 i 1 Pla for fagdag 3 R2-18.11.10 Pla: Litt om differase- og summefølger. Sammehege a a 1 1 i 1 d i. Geometriske resoemet. Arbeidsoppgaver. Differase- og summefølger Regresjo med lommereger Differaser er ofte

Detaljer

INF2440 Uke 7, våren2017. Arne Maus PSE, Inst. for informatikk

INF2440 Uke 7, våren2017. Arne Maus PSE, Inst. for informatikk INF2440 Uke 7, våren2017 Arne Maus PSE, Inst. for informatikk 1 Hva så vi på i uke 6 1. Hva er raskest: Modell2 eller Modell3 kode? 2. Avslutning om matrisemultiplikasjon 1. Radvis (ikke kolonnevis) beregning

Detaljer

Forkunnskaper i matematikk for fysikkstudenter. Derivasjon.

Forkunnskaper i matematikk for fysikkstudenter. Derivasjon. Defiisjo av derivert Vi har stor ytte av å vite hvor raskt e fuksjo vokser eller avtar Mer presist: Vi øsker å bestemme stigigstallet til tagete til fuksjosgrafe P Q Figure til vestre viser hvorda vi ka

Detaljer

Tråder Repetisjon. 9. og 13. mai Tråder

Tråder Repetisjon. 9. og 13. mai Tråder Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver

Detaljer

2T kapittel 3 Modellering og bevis Utvalgte løsninger oppgavesamlingen

2T kapittel 3 Modellering og bevis Utvalgte løsninger oppgavesamlingen T kapittel 3 Modellerig og bevis Utvalgte løsiger oppgavesamlige 301 a Sitthøyde i 1910 blir 170,0 171, 4 170,7. I 1970 blir de 177,1 179, 4 178,3. b Med som atall år etter 1900 og y som sitthøyde i cetimeter

Detaljer

Arne Maus OMS, Inst. for informatikk

Arne Maus OMS, Inst. for informatikk INF2440 Uke 5, våren2014 Sluttkommentarer om Matrisemultiplikasjon, Modellkode for parallelle systemer, Vranglås + evt. Oppdeling av et problem for parallellisering Arne Maus OMS, Inst. for informatikk

Detaljer

INF2440 Uke 4, v2015 Om å samle parallelle svar, matrisemultiplikasjon og The Java Memory Model + evt bedre forklaring Radix

INF2440 Uke 4, v2015 Om å samle parallelle svar, matrisemultiplikasjon og The Java Memory Model + evt bedre forklaring Radix INF Uke, v Om å samle parallelle svar, matrisemultiplikasjon og The Java Memory Model + evt bedre forklaring Radix Arne Maus PSE, Inst. for informatikk Hva så vi på i uke. Presisering av hva som er pensum.

Detaljer

IN1010 våren 2019 Onsdag 6. februar. Arv og subklasser - del 2

IN1010 våren 2019 Onsdag 6. februar. Arv og subklasser - del 2 IN1010 våre 2019 Osdag 6. februar Arv og subklasser - del 2 Stei Gjessig Dages tema Virtuelle metoder som er det samme som Polymorfi Når bruker vi arv / år bruker vi komposisjo Kostruktører i subklasser

Detaljer

INF våren 2004 Uke2, 18 jan - Fra problem til program. Utvikling av store datasystemer. 13 UML-diagrammer. Oversikt:

INF våren 2004 Uke2, 18 jan - Fra problem til program. Utvikling av store datasystemer. 13 UML-diagrammer. Oversikt: 13 UML-diagrammer INF1010 - våre 2004 Uke2, 18 ja - Fra problem til program Objektdiagram: Vi kommer til å tege Java datastrukturer istede. Stei Gjessig Ist. for iformatikk Klassediagram: Oversikt: Utviklig

Detaljer

INF2440 Uke 5, våren2015 Om oppdeling av et problem for parallellisering, mye om primtall + thread-safe. Arne Maus PSE, Inst.

INF2440 Uke 5, våren2015 Om oppdeling av et problem for parallellisering, mye om primtall + thread-safe. Arne Maus PSE, Inst. INF2440 Uke 5, våren2015 Om oppdeling av et problem for parallellisering, mye om primtall + thread-safe Arne Maus PSE, Inst. for informatikk 1 Oppsummering Uke1 Vi har gjennomgått hvorfor vi får flere-kjerne

Detaljer

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

Fig1. Den konvekse innhyllinga av 100 tilfeldige punkter i planet (de samme som nyttes i oppgaven.) Oblig3 i INF2440 våren 2015-ver3. Den konvekse innhyllinga til en punktmengde - et rekursivt geometrisk problem. Innleveringsfrist fredag 27. mars kl. 23.59 En punktmengde P i planet består av n forskjellige

Detaljer

TMA4240 Statistikk Høst 2009

TMA4240 Statistikk Høst 2009 TMA440 Statistikk Høst 009 Norges tekisk-aturviteskapelige uiversitet Istitutt for matematiske fag Øvig ummer b4 Løsigsskisse Oppgave Øsker å fie 99% kofidesitervall for µ µ år vi atar ormalfordeliger

Detaljer

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd J INF1010 Tråder J Marit Nybakken marnybak@ifi.uio.no Motivasjon Til nå har vi kun skrevet programmer der programmet bare var på ett sted i koden til enhver tid (bortsett fra når vi har drevet med GUI,

Detaljer

Jentetreff INF1000 Debugging i Java

Jentetreff INF1000 Debugging i Java Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren ingridgg@student.matnat.uio.no 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver

Detaljer

MA1101 Grunnkurs Analyse I Høst 2017

MA1101 Grunnkurs Analyse I Høst 2017 Norges tekisk aturviteskapelige uiversitet Istitutt for matematiske fag MA0 Grukurs Aalyse I Høst 07 Løsigsforslag Øvig..b) Vi skriver om 7 = 4 4 7 Korollar.. gir at 7 4 er irrasjoal (side vi vet 7 4 er

Detaljer

Arkitektur mm. Forelesning

Arkitektur mm. Forelesning Istitutt for iformatikk Pesum litteratur : Arkitektur mm Forelesig 18.03.2003 - Mathiasse et al OOA&D, kap. 8-11 - Skagestei : Are use cases ecessarily the best start of a OO system developmet process

Detaljer

Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007. Stein Krogdahl, Ifi UiO

Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007. Stein Krogdahl, Ifi UiO Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007 Stein Krogdahl, Ifi UiO ASU, kap 9.5: Vi generer kode for én og én basal blokk Da er det lett å holde orden

Detaljer

S2 kapittel 1 Rekker Løsninger til innlæringsoppgavene

S2 kapittel 1 Rekker Løsninger til innlæringsoppgavene Løsiger til ilærigsoppgavee kapittel Rekker Løsiger til ilærigsoppgavee a Vi ser at differase mellom hvert ledd er 4, så vi får det este leddet ved å legge til 4 Det este leddet blir altså 6 + 4 = 0 b

Detaljer

Forelesning inf Java 1

Forelesning inf Java 1 Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 Litt Java-historikk The Green Team I 1991 opprettet Sun Microsystems

Detaljer

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design.

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design. Dagens temaer Dagens emner er hentet fra Englander kapittel 11 (side 327-344 ) Repetisjon av viktige emner i CPU-design. Flere teknikker for å øke hastigheten Cache 03.10.03 INF 103 1 Hvordan øke hastigheten

Detaljer

TMA4245 Statistikk Eksamen mai 2017

TMA4245 Statistikk Eksamen mai 2017 TMA445 Statistikk Eksame mai 07 Norges tekisk-aturviteskapelige uiversitet Istitutt for matematiske fag Løsigsskisse Oppgave a Når vi reger ut disse tre sasylighetee må ma huske på at de mulige verdiee

Detaljer

TALLSVAR. Det anbefales at de 9 deloppgavene merket med A, B, teller likt uansett variasjon i vanskelighetsgrad. Svarene er gitt i << >>.

TALLSVAR. Det anbefales at de 9 deloppgavene merket med A, B, teller likt uansett variasjon i vanskelighetsgrad. Svarene er gitt i << >>. 1 ECON130: EKSAMEN 013 VÅR - UTSATT PRØVE TALLSVAR. Det abefales at de 9 deloppgavee merket med A, B, teller likt uasett variasjo i vaskelighetsgrad. Svaree er gitt i

Detaljer

LØSNINGSFORSLAG TIL EKSAMEN I FAG TMA4245 STATISTIKK 6.august 2004

LØSNINGSFORSLAG TIL EKSAMEN I FAG TMA4245 STATISTIKK 6.august 2004 Norges tekisk aturviteskapelige uiversitet Istitutt for matematiske fag Side av 0 LØSNINGSFORSLAG TIL EKSAMEN I FAG TMA4245 STATISTIKK 6.august 2004 Oppgave Midtveiseksame a) X er e stokastisk variabel

Detaljer

ARBEIDSHEFTE I MATEMATIKK

ARBEIDSHEFTE I MATEMATIKK ARBEIDSHEFTE I MATEMATIKK Temahefte r Hvorda du reger med poteser Detaljerte forklariger Av Matthias Loretze mattegriseforlag.com Opplsig: E potes er e forkortet skrivemåte for like faktorer. E potes består

Detaljer

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse

Detaljer

Gir vi de resterende 2 oppgavene til én prosess vil alle sitte å vente på de to potensielt tidskrevende prosessene.

Gir vi de resterende 2 oppgavene til én prosess vil alle sitte å vente på de to potensielt tidskrevende prosessene. Figure over viser 5 arbeidsoppgaver som hver tar 0 miutter å utføre av e arbeider. (E oppgave ka ku utføres av é arbeider.) Hver pil i figure betyr at oppgave som blir pekt på ikke ka starte før oppgave

Detaljer

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode)

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode) Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode) Disse foilene er pensum INF 5110, 30/4-2013, Stein Krogdahl Byte-koden for Java og.nett (C#) kan leses her: http://en.wikipedia.org/wiki/java_bytecode_instruction_listings

Detaljer

Løsningsforslag til eksamen i STK desember 2010

Løsningsforslag til eksamen i STK desember 2010 Løsigsforslag til eksame i STK0 0. desember 200 Løsigsforslaget har med flere detaljer e det vil bli krevd til eksame. Oppgave a Det er tilpasset e multippel lieær regresjosmodell av forme β 0 + β x i

Detaljer

MER OM PARALLELLE PROGRAMMER I JAVA OG KVIKKSORT

MER OM PARALLELLE PROGRAMMER I JAVA OG KVIKKSORT {Arne Maus, 23. mai 2011 Kapittel 19 MER OM PARALLELLE PROGRAMMER I JAVA OG KVIKKSORT Parallell programmering er vanskelig, og det er derfor utviklet flere synkroniseringsmåter og biblioteker for mer strukturert

Detaljer

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO Pensumoversikt - kodegenerering Kap. 8 del 1 kodegenerering INF5110 v2006 Arne Maus, Ifi UiO 8.1 Bruk av mellomkode 8.2 Basale teknikker for kodegenerering 8.3 Kode for referanser til datastrukturer (ikke

Detaljer