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

Størrelse: px
Begynne med side:

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

Transkript

1 INF2440 Uke 4, v2018 Om å samle parallelle svar, matrisemultiplikasjo og The Java Memory Model Eric Jul PSE, Ist. for iformatikk 1

2 Hva så vi på i uke 3 1. Presiserig av hva som er pesum 2. Samtidig skrivig av flere tråder i e array? 1. Går det lagsommere år aksesse er til aboelemeter? 3. Sylighetsproblemet (hvilke verdier ser ulike tråder) 4. Java har as-if sequetial sematikk for et sekvesielt program viktigste regler om lesig og skrivig på felles data. 6. To ekle regler for sykroiserig og felles variable 7. Jit-kompilerig ka gi meget store hastighetsforbedriger 8. Effekte på eksekverigstid av cache 1. Del 1 Radix-sorterig sekvesiell 9. Kommetarer til Oblig 1 2

3 Pla for uke 4 I. Om å avlutte k tråder med å samle svaree fra disse. 1 gal + 5 riktige måter. II. III. IV. Ukeoppgave om matrise-multiplikasjo Vi bruker ikke PRAM modelle for parallelle beregiger I. Hva er PRAM og hvorfor er de ubrukelig for oss Hva skjer egetlig i lageret (mai memory) år vi kjører parallelle tråder - the Java Memory Model V. Hvorfor sykroiserer vi, og hva skjer da? VI. Oblig 2: Parallell Matrice-multiplikasjo. 3

4 I) Hvorda samle data fra trådee til ett, felles svar Kursets mål: Riktig og Raskt - begge deler Skal se på ulike måter å løse flg. problem: Vi har delt opp problemet vår i k deler på k kjerer/tråder og parallellisert det. Hvorda kombierer vi disse delresultatee til ett, felles og riktig svar? Ser på problemet FiMax og 6 «løsiger» på dee avslutige: 1. GAL ige sykroiserig 2. Sychroized metode for hvert elemet i a[] 3. ReetratLock beskyttet metode for hvert elemet i a[] 4. Bare kall på samme ReetratLock beskyttet metode hvis y verdi > hittil største verdi. 5. Alle trådee kaller samme ReetratLock beskyttet metode med hver si lokalemaks år de er ferdige 6. Tråd 0 fier max de adre trådee veter 4

5 1) GAL ige sykroiserig, kode i trådee: // Riktig oppdelig at= a.legth/attråder; // atall elemeter per tråd start = at*id; um = at; if (id == attråder-1) um = at + (a.legth % attråder) ; // GAL IKKE sykroisert: for (it i = 0; i< um; i++) { if (a[start+i] > globalmax) globalmax = a[start+i]; } Mulig feilsituasjo, ata tråd 0 leser a[i] der GlobalMax ligger: Tråd 0 Les a[i] =10 og GM = 8 Skriv GM = 10 Tråd 1 Les a[j] =9 og GM = 8 Skriv GM = 9 mai Les GM = 9 Hvor sasylig er dette? Skal vi ta sjase?? 5

6 1) Nei det er like raske og ALLTID riktige løsiger, og slike feil er farlige! Det er vaskelig å få dee gale måte til å feile, me med mye prøvig og feilig (lure data) ka vi få de til å feile ca. ca. hver gag. I Nets (tidl. Bakees Betaligssetral) behadler de opp til 2 mill. trasaksjoer hver dag. Vil vi lage programmer som kaskje feiler 20 gager per dag? Hvor lette tror du slike programmer er å debugge (teste og rette)? 6

7 2) Bruk av sychroized metode for alle elemetee i a[] sychroized void updateglobalmax1 (it val){ if (val > globalmax ) globalmax=val; } // ed updateglobalmax1.. // i ru-metode i hver tråd: for (it i = 0; i< um; i++) { updateglobalmax1(a[start+i]); } 100 % riktig svar alltid Det gjøres kall på de sykroiserte metode (/k kall fra hver av de k trådee) sychroized tar mye tid! Eledig løsig: Regel 1: bruk ikke sychroized Regel 2: Hvis sychroized alikevel, så max 100 gage! 7

8 3) Bruk av ReetratLock metode for alle elemetee i a[] void updateglobalmax2 (it val){ lock.lock(); try{ if (val > globalmax ) globalmax=val; } fially { lock.ulock(); } } // ed updateglobalmax2. // i ru-metode i hver tråd for (it i = 0; i< um; i++) { updateglobalmax2(a[start+i]); } 100 % riktig svar alltid Det gjøres kall på lock metode (/k kall fra hver av de k trådee) Lock er raskere e sychroized, me tar fortsatt mye tid! Eledig løsig 8

9 4) Bruk av ReetratLock metode hver gag ytt elemet er større void updateglobalmax2 (it val){ lock.lock(); try{ if (val > globalmax ) globalmax=val; } fially { lock.ulock(); } } // ed updateglobalmax2. // i ru-metode i hver tråd for (it i = 0; i< um; i++) { if (a[start+i] > globalmax ){ updateglobalmax2(a[start+i]); }} 100 % riktig svar alltid Det gjøres log kall på lock metode (log/k kall fra hver av de k trådee) Lock er raskere e sychroized, og log kall er mye midre e (eks. = 1mill, log =20)! Ikke helt bra løsig 9

10 5) lokal max (threadmax) i hver tråd, så oppdaterig med lock - metode // i ru-metode i hver tråd for (it i = 0; i< um; i++) { if (a[start+i] > threadmax ) threadmax = a[start+i]; } updateglobalmax2(threadmax); } 100 % riktig svar alltid Det gjøres k kall på lock-metode (ett kall fra hver av de k trådee) Utmerket løsig 10

11 6) lokal max (threadmax) i hver tråd, så vetig i y CyclicBarrier (vetm5), og tråd 0 order opp // i hver tråd i ru-metode for (it i = 0; i < um; i++) { if (a[start+i] > threadmax ) threadmax = a[start+i]; } lokalmax[id] = threadmax; try { // wait o all other threads vetm5.await(); } catch (Exceptio e) {retur;} 100 % riktig svar alltid Det gjøres k kall på lock metode (ett kall fra hver av de k trådee) for (it j = 0; j < attråder; j++){ if (id == 0) { } } if (lokalmax[j] > globalmax) globalmax = lokalmax[j]; Utmerket løsig Riktig og det gjøres k kall på e CylicBarrier(ett kall fra hver av de k trådee) Utmerket løsig 11

12 Speedup for =100,1000,,1 mrd med 8 tråder/kjerer 12

13 Hva lærer vi av dette? E gal, to eledige, e dårlig og to gode løsiger Aldri bruk e gal metode (går alltid galt med i++ - programmet, sjelde galt her, me..) Det er alltid e eller flere like raske og riktige løsiger Atall sykroiseriger er helt avgjørede, log eller k (k er et fast, lite tall) Geerelt: Det er lagt flere alterativer i det parallelle programmet e i det sekvesielle. Her har vi e løsig hvor vi bare lager trådee bare é gag. Vi kue (lagsommere) ha laget ye tråder hver gag og at mai sa joi() på dem 5 ye alterativer. 13

14 Tillegg, hva om sekvesiell max lages som metode? it RegutMaxSeq(it [] a) { it seq =0; for (it i=0;i < a.legth;i++){ if (a[i] > seq) seq = a[i]; } retur seq; }//ed RegutMaxSeq.. globalmaxseq = RegutMaxSeq(a); // for (it i=0;i < a.legth;i++){ // if(a[i] > globalmaxseq) globalmaxseq = a[i]; // } Hvorfor skulle det gå fortere?? JIT-kompilerig?? 14

15 Mye bedre JIT-kompilerig av sekvesiell beregig (= raskere sekvesiell bergig); samme parallelle og samme form på kurvee, me da lavere speedup. Her ca. 3x raskere - bedre JIT kompilerig av små metoder e kode ilie i e større metode. 15

16 Ny I DAG: Hvis vi ser på kjøretidee, så burde de kue gjøres oe bedre! // i ru-metode i hver tråd oe lagsom for (it i = 0; i< um; i++) { if (a[start+i] > threadmax ) threadmax = a[start+i]; } updateglobalmax2(threadmax); } // bedre: i ru-metode i hver tråd - raskere for (it i = fra; i< til; i++) { if (a[i] > threadmax ) threadmax = a[i]; } updateglobalmax2(threadmax); } 16

17 Ny I DAG: Hvis vi ser på kjøretidee, så burde de kue gjøres oe bedre med y for-løkke + små metoder Speedup går opp fra 1.6 til7,6 Kjøretider for N= 100 mil - y forløkke og lite metode for hver løkke: Met:0, Para: ms; Sekv: ms., SUp: Met:1, Para: ms; Sekv: ms., SUp: Met:2, Para: ms; Sekv: ms., SUp: Met:3, Para: ms; Sekv: ms., SUp: Met:4, Para: ms; Sekv: ms., SUp: Met:5, Para: ms; Sekv: ms., SUp: Speedup går opp fra 1.6 til7,6 Kjøretider for N= 100 mil - gammel forløkke og lite metode for hver løkke : Met:0, Para: ms; Sekv: ms., SUp: Met:1, Para: ms; Sekv: ms., SUp: Met:2, Para: ms; Sekv: ms., SUp: Met:3, Para: ms; Sekv: ms., SUp: Met:4, Para: ms; Sekv: ms., SUp: Met:5, Para: ms; Sekv: ms., SUp:

18 II) Ukeoppgave forrige og dee uka, matrisemultipliserig Matriser er todimesjoale arrayer Skal berege C=AxB (A,B,C er matriser) +,- c i [j] = ' a i k b k [j] ()* C i,j = A i cc X B cc j

19 Idé traspoer B (=bytte om rader og koloer) Bytt om elemetee i B (B i,j byttes om med B j,i ) Da blir koloee lagret radvis. B cc j B T cc j -1-1 Begruelse: Det blir for mage cache-lijer (hver 64 byte) fra B i cachee 19

20 Vi har da at litt y formel for C +,- c i [j] = ' a i k b T j [k] ()* C i,j = A i cc X B T c c j -1-1 Vi får multiplisert to rader med hveradre går det fortere? 20

21 Kjøretider i millisek. (y-akse logaritmisk) 21

22 Kjøretidsresultater Speedup, y-akse logaritmisk 22

23 Speedup med lieær y-akse 23

24 Koklusjo Matrisemultiplikasjo E rett frem implemetasjo gikk ikke særlig fort (år = 1000 ), tok det : 11,24 sek med valig sekvesiell løsig 3,24 sek. med rett fram parallelliserig 0,91 sek med sekvesiell + traspoerig av B 0,26 sek med først traspoerig av B, så parallellisert Det viktigste år vi skal parallelliser er: Ha de beste sekvesielle algoritme Så ka du parallellisere de Hvis du er veer med cache, vil parallelliserig av e slik algoritme i tillegg este alltid løe seg Dette er ett eksempel på at det å aksessere data fortløpede, ikke på tvers av data, ka gi e speedup på gager. (bare multiplikasjoe ikke traspoerige, ble parallellisert) 24

25 Speedup Hvorda fremstille det? Disse to kurvee er like! Hvorda? 25

26 Hvorda framstille ytelse I Disse fire kurvee fremviser samme tall! Hvorda? 26

27 Både logaritmisk x- og y-akse Fordel med log-akse er at de viser fram øyaktigere små verdier, me vaskelig å lese øyaktig mellom to merker på aksee. 27

28 III) PRAM modelle for parallelle beregiger PRAM (Parallel Radom Access Memory) atar to tig: Du har uedelig mage kjerer til beregigee Ehver aksess i lageret tar like lag tid, - igorerer f.eks fordele med cache-hukommelse Da blir mage algoritmer lette å berege og programmere Problemet er at begge forutsetigee er helt gale. Det PRAM gjør er å telle atall istruksjoer utført Det har vi sett er helt feilaktig (Radix og Matrise-mult) Svært mage kurs og lærebøker er basert på PRAM PRAM vil si at de to sekvesielle algoritmee (med og ute traspoerig) gikk de utraspoerte fortest! Dette kurset bruker ikke PRAM-modelle! 28

29 Noe kommetarer til modell for parallelle programmer import java.util.cocurret.*; class Problem { it x,y,r1,r2,..; // felles data public static void mai(strig [] args) { Problem p = ew Problem(); p.utfoer(12); } void utfoer (it att) { Thread [] t = ew Thread [att]; } for (it i =0; i< att; i++) ( t[i] = ew Thread(ew Arbeider(i))).start(); for (it i =0; i< att; i++) t[i].joi(); :Problem it x,y,r1,r2,..; Thread t[] class Arbeider implemets Ruable { it id, lokaledata; // lokale data Arbeider (it i) {id = i;) public void ru() { // kalles år tråde er startet } // ed ru } // ed idre klasse Arbeider } // ed class Problem :Arbeider it id,lokaldata; :Arbeider it id,lokaldata; 29

30 Noe kommetarer til modell for parallelle programmer import java.util.cocurret.*; class Problem { it [] a; it attr=12;// felles data public static void mai(strig [] args) { Problem p = ew Problem(); p.utfoer(attr); } void utfoer (it att) { Thread [] t = ew Thread [att]; a = ew it [ ]; // + fyll a[] med tilfeldige tall } for (it i =0; i< att; i++) ( t[i] = ew Thread(ew Arbeider(i))).start(); for (it i =0; i< att; i++) t[i].joi(); class Arbeider implemets Ruable { it id, fra,til,um; // lokale data Arbeider (it i) {id = i; um= a.legth/attr; fra =id*um; til = (id+1)*um; if ( id == attr -1) til = a.legth; } public void ru() { // kalles år tråde er startet } // ed ru } // ed idre klasse Arbeider } // ed class Problem 30

31 IV) Utsatte operasjoer i JIT-kompilerig JIT-kompilatore ka godt teke seg å utsette å gjøre oe setiger eks: y = 17; x = 4; z = x + 6; Vi ser at x treges i este setig, så de blir utført, me ige treger y så de ka vete (til vi får tid, eller droppes hvis ige adre setiger bruker y) Vi ka ikke vite at y == 17 selv om x == 4; Vi treger da e måte å orde opp i bl.a: Utsatte operasjoer blir gjort Alle trådee ser de samme verdiee på felles data. 31

32 Repetisjo: 3 viktigste regler om lesig og skrivig på felles data. Før (og etter) sykroiserig på felles sykroiserigsvariabel gjelder : A. Hvis ige tråder skriver på e felles variabel, ka alle tråder lese dee. B. To tråder må aldri skrive samtidig på e felles variabel (eks. i++) C. Hvis derimot é tråd skriver på e variabel må bare de tråde lese dee variabele før sykroiserig ige adre tråder må lese de før sykroiserig. Muliges ikke helt tidsoptimalt, me ekel å følge gjør det mulig/mye eklere å skrive parallelle programmer. Regel C er i hovedsak problemet i Java Memory Model 32

33 IV) Hva er e memory-modell og hvorfor treger vi e! Vi har hittil sett at med flere tråder så: Istruksjoer ka bli utsatt og byttet om av CPU, kompilator, cache-systemet Ulike tråder ka samtidig se ulike verdier på felles variabel Programmet du skrev er optimalisert og har lite direkte likhet med det som eksekverer Vi må likevel ha e viss orde på (visse steder i eksekverige): På rekkefølge av istruksjoee Sylighet - år ser é tråd det e ae har skrevet? Maskivare og hukommelse hvor alle-ser-det samme-alltid tar for lag tid Atomære operasjoer Når e operasjo først utføres, skal hele utføres ute at adre operasjoer blader seg i og ødelegger (som i++) Ulike maskivare-fabrikater ka ulike memory-modeller, me Itel/AMD modelle er rask og uderstøttes av Java. 33

34 The Java memory model (JMM) hva skjer i lageret år vi utfører ulike setiger i et Java-program med tråder? JMM defierer hva som er lovlige tilstader på variable år vi har flere tråder, og særlig år flere tråder leser hva e tråd har skrevet; data-kappløp (data-race) om e variabel lest før eller etter de ble skrevet til gammel eller y verdi?. JMM prøver å tillate så mye som mulig av kompilatoroptimaliseriger (særlig ombyttig av setiger) ute at vi får ulogiske/gale resultater. Et setralt begrep er hedt før (happes before) som betyr at av og til må vi vite at oe setiger har blitt utført, før de setige vi å ser på ka utføres. Det gode budskapet er: Hvis alle trådee oppfyller regel c : Hvis bare é tråd skriver på e variabel må også bare dee tråde lese dee variabele før sykroiserig ige adre tråder må lese de før (este) sykroiserig. så sier JMM at programmet er fritt for data-kappløp og vi ka resoere om programmet vårt som om det utføres sekvesielt! 34

35 Et kort iblikk i JMM 1 tillatte og ikke tillatte effekter (ikke pesum) Iitially, x == y == 0 Thread 1 Thread 2 1: r2 = x; 3: r1 = y 2: y = 1; 4: x = 2 r2 == 2, r1 == 1 violates sequetial cosistecy. Kommetar : r2 ka lett bli 2, me da er T2 utført først og r1 blir da 0; alterativt T1 først og da er r1==1, me r2==0 Iitially, x == 0, ready == false. ready is a volatile variable. Thread 1 Thread 2 x = 1; if (ready) ready = true; r1 = x; If r1 = x; executes, it will read 1. Figure 3: Use of Happes-Before Memory Model with Volatiles 35

36 Et kort iblikk i JMM 2 tillatte og ikke tillatte effekter (ikke pesum) Iitially, x == y == 0 Thread 1 Thread 2 1: r1 = x 6: r3 = y 2: if (r1 == 0) 7: x = r3 3: x = 1 ; 4: r2 = x ; 5: y = r2 ; Compiler trasformatios ca result i r1 == r2 == r3 == 1 Figure 12: Behavior that must be allowed Det rare er her hvorda r1 ka bli 1; bare hvis 1: blir utført etter 2: og 3: Koklusjo: Å sette seg i i og programmere etter JMM er meget vaskelig (ær umulig å gjøre det riktig) hvis vi tillater data-kappløp om variable. Slik programmerig overlater vi til de som programmerer våre sykroiserigs-mekaismer (CyclickBarrier, Semaphore,..) og de som skriver JIT-kompilatore. 36

37 V) Effekte av sykroiserig på samme sykroiserigsvariabel og The Java memory model (JMM) - pesum fortsetter Hva gjør vi hvis vi vil (i e tråd) lese hva e ae tråd har skrevet? Har de adre skrevet eda og har det kommet ed i lageret? Svar: Vi lar begge (alle) trådee sykroisere på samme sykroiserigsvariabel (e CyclicBarrier eller e Semaphore, ): Da skjer følgede før oe fortsetter: 1. Alle felles variable blir skrevet ed fra cachee og ed i lageret. 2. Alle operasjoer som er utsatt, blir utført før oe av trådee slipper gjeom sykroiserige. 3. Følgelig ser alle trådee de samme verdiee på alle felles variable år de fortsetter etter sykroiseriga! 37

38 JMM og volatile variable del 1 Ehver variabel i Java ka deklareres som volatile eks: volatile it i =0; volatile boolea stop = false; E volatile variabel skal ikke caches, me skrives så fort som mulig ed i lageret. Er tekt å dekke behovet for delte felles variable som ka oppdateres og straks leses av adre tråder. Å oppdatere (skrive til) e volatile garaterer også at alle utsatte operasjoer i kode utføres før dee skrivige. Imidlertid er det lett å gjøre feil med volatile variable: Hvis vi deklarerer volatile it i; i vårt program som testet i++, vil det likevel gå galt ved at vi mister oppdateriger. Grue til det er at i++ fortsatt er tre operasjoer (les i, i = i+1; skriv i), og de samme problemer ved at to tråder gjør dette samtidig. 38

39 JMM og volatile variable del 2 volatile variable har likevel e yttig fuksjo, ved at de ka yttes til at e tråd (også mai) ka sigalisere til de adre trådee at å er oppgave løst ferdig. Atar da at alle trådee har e evig løkke i si ru-metode: public void ru() {{ while do (!{ stop); try try {{ // // waito oall all other threads + mai vet.await(); }} catch (Exceptioe) e) {retur;} if if (moresort) (! stop) { { sort (a,threadidex ); sort (a,threadidex); // parallell-algoritme try { // wait o all other threads + mai } else ferdig.await(); { } try catch { //(Exceptio wait all e) other {retur;} threads + mai ferdig.await(); } //} ed catch if (Exceptio e) {retur;} } while (moresort); } // ed ru} // ed else } // ed while } // ed ru I ytre felles klasse: CyclicBarrier vet, ferdig; volatile boolea stop = false;. /** Termiate ifiite loop */ sychroized void exit(){ stop= true; try{ // start all treads to // termiate themselves vet.await(); } catch (Exceptio e) {retur ;} } // ed exit 39

40 V) Sykroiserig på samme sykroiserigsobjekt løser alle problemer - løser sylighet og utsatte operasjoer. Hvis alle arbeider-trådee gjør e sykroiserig på samme sykroiserigsvariabel (e Semaphore, e CyclicBarrier,..) Før de slipper løs, er : Alle felles variable som er skrevet på, skrevet med i hoved-lageret Alle utsatte operasjoer er utført Alle trådee ka da etter å ha gjeomgått de samme sykroiseriga lese samme verdier på alle felles variable! Ige problemer med e vaskelig JMM hvis vi følger regel C om lesig/skrivig på felles variable: «år é tråd skriver på e variabel, må ige adre tråder lese eller skrive på de» Vi må altså først sykroisere på e felles sykroiserigsvariabel for at e tråds skriviger skal bli foruftig lesbart for alle adre trådee og evt. kue skrives på av e ae tråd. 40

41 Oblig 2: Parallell Matrise-multiplikasjo 53

42 Hva her vi sett på i Uke4 I. Om å avlutte k tråder med å samle svaree fra disse. 1 gal + 5 riktige måter + bedre for-løkke betyr mye! II. III. IV. Kommetarer på ukeoppgave om matrise-multiplikasjo Vi bruker ikke PRAM modelle for parallelle beregiger I. Hva er PRAM og hvorfor er de ubrukelig for oss Å lage små metoder gir bedre, raskere JIT kompilerig V. Hva skjer egetlig i lageret (mai memory) år vi kjører parallelle tråder - the Java Memory Model VI. Hvorfor sykroiserer vi, og hva skjer da? VII. Oblig 2: Parallell Matrise-multiplikasjo 54

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

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

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

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

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

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

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

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

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

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

INF2440 Effektiv parallellprogrammering Uke 1, våren Eric Jul Professor PSE Institutt for Informatikk INF2440 Effektiv parallellprogrammerig Uke 1, våre 2018 Eric Jul Professor PSE Istitutt for Iformatikk 1 Litt om Eric Ph.D. Uiversity of Washigto, 1989 Dask-amerikaer Bor i Damark pedler til Oslo ca 3-4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Prøveeksamen INF2440 v Arne Maus PSE, Inst. for informatikk

Prøveeksamen INF2440 v Arne Maus PSE, Inst. for informatikk Prøveeksamen INF2440 v 2016 Arne Maus PSE, Inst. for informatikk 1 Oppgave 1 (10 poeng) Forklar hva som skjer ved en synkronisering: a) Når to tråder synkroniserer på samme synkroniseringsobjekt (f.eks

Detaljer

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

INF2440 Uke 7, våren2015. Arne Maus PSE, Inst. for informatikk INF2440 Uke 7, våren2015 Arne Maus PSE, Inst. for informatikk 1 Hva så vi på i Uke (4,5 og) 6 1. Kommentarer til svar på ukeoppgaven om matrisemultiplikasjon 1. Hvorfor disse gode resultatene (speedup

Detaljer

Tallsystemer. Læringsmål. Posisjonstallsystemer. Potensregning en kort repetisjon 123 = = 7B 16. Forstå posisjonstallsystemer

Tallsystemer. Læringsmål. Posisjonstallsystemer. Potensregning en kort repetisjon 123 = = 7B 16. Forstå posisjonstallsystemer Forstå posisjostallsystemer Lærigsmål Tallsystemer Kue biærtall og heksadesimale tall Kue kovertere mellom ulike tallsystemer: Ti 3 = = 7B 6 (Kapittel 6 + 7.-7.3) Kue ekel regig med biærtall addisjo multiplikasjo

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

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

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

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

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

7) Radix-sortering sekvensielt kode og effekten av cache

7) Radix-sortering sekvensielt kode og effekten av cache ) Radix-sortering sekvensielt kode og effekten av cache Dels er denne gjennomgangen av vanlig Radix-sortering viktig for å forstå en senere parallell versjon. Dels viser den effekten vi akkurat så tilfeldig

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

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Eme: Diskret matematikk Gruppe(r): Eksamesoppgave består av: Atall sider (ikl forside): 5 Emekode: FO 9A Dato: 57 Atall oppgaver: Fagasvarlig: Ulf Uttersrud

Detaljer

INF2440 Uke 5, våren2016. Arne Maus PSE, Inst. for informatikk

INF2440 Uke 5, våren2016. Arne Maus PSE, Inst. for informatikk INF2440 Uke 5, våren2016 Arne Maus PSE, Inst. for informatikk 1 Hva så vi på i Uke4 1. Kommentarer til svar på ukeoppgaven om matrisemultiplikasjon 1. Hvorfor disse gode resultatene (speedup > 40) 2. Hvordan

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

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

Ulike typer utvalg. MAT0100V Sannsynlighetsregning og kombinatorikk. Ordnet utvalg uten tilbakelegging. Ordnet utvalg med tilbakelegging.

Ulike typer utvalg. MAT0100V Sannsynlighetsregning og kombinatorikk. Ordnet utvalg uten tilbakelegging. Ordnet utvalg med tilbakelegging. MAT0100V Sasylighetsregig og kombiatorikk Ordet utvalg med og ute tilbakeleggig (repetisjo) Uordet utvalg ute tilbakeleggig (repetisjo) Tilfeldige variabler og sasylighetsfordeliger Hypergeometrisk fordelig

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO FASIT UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen :

Detaljer

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Eme: Diskret matematikk Gruppe(r): Emekode: FO 019A Dato: 12.12.200 Faglig veileder: Ulf Uttersrud Eksamestid: 9-14 Eksamesoppgave består av: Atall sider

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

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

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

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

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

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

Oppgave 1 - Linux kommandolinje (%)

Oppgave 1 - Linux kommandolinje (%) Løsningsforslag Eksamen høst 2017 Operativsystemer Oppgave 1 - Linux kommandolinje (%) a) pwd b) ps Oppgave 2 - Bash-scripting (%) a) ping -i 5 www.hin.no b) ping -c 1 www.hin.no ping -c 1 -t 1 www.hin.no

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler

Detaljer

Econ 2130 Forelesning uke 11 (HG)

Econ 2130 Forelesning uke 11 (HG) Eco 130 Forelesig uke 11 (HG) Mer om ormalfordelige og setralgreseteoremet Uke 1 1 Fra forrige gag ~ betyr er fordelt som. ~ N( µσ, ) E( ) = µ, og var( ) = σ Normalfordelige er symmetrisk om μ og kotiuerlig

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

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

STK1100: Kombinatorikk

STK1100: Kombinatorikk 1100: ombiatorikk auar 2009 Ørulf orga Matematisk istitutt Uiversitetet i Oslo 1 Uiform sasylighetsmodell: t stokastisk forsøk har N utfall Det er de mulige utfallee for forsøket i atar at de N utfallee

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

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

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

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER .9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,

Detaljer

Obligatorisk oppgave nr. 3 i Diskret matematikk

Obligatorisk oppgave nr. 3 i Diskret matematikk 3. obligatoriske oppgave i Diskret matematikk høste 08. Obligatorisk oppgave r. 3 i Diskret matematikk Ileverigsfrist. ovember 08 Oppgave er frivillig og tregs ikke leveres, me hvis dere leverer de ie

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

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

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

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

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

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen : 09.00

Detaljer

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

INF2440 Uke 5, våren2017. Arne Maus PSE, Inst. for informatikk INF2440 Uke 5, våren2017 Arne Maus PSE, Inst. for informatikk 1 Hva så vi på i Uke4 1. Kommentarer til svar på ukeoppgaven om matrisemultiplikasjon 1. Hvorfor disse gode resultatene (speedup > 40) 2. Hvordan

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

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

Ma Analyse II Øving 5

Ma Analyse II Øving 5 Ma0 - Aalyse II Øvig 5 Øistei Søvik.0.0 Oppgaver 9. Determie whether the give sequece is (a) bouded (above or below), (b) positive or egative (ultimately), (c) icreasig, decreasig, or alteratig, ad (d)

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

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012 INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver

Detaljer

ÅMA110 Sannsynlighetsregning med statistikk, våren 2010 Kp. 6, del 5

ÅMA110 Sannsynlighetsregning med statistikk, våren 2010 Kp. 6, del 5 ÅMA110 Sasylighetsregig med statistikk, våre 2010 Kp. 6, del 5 Bjør H. Auestad Istitutt for matematikk og aturviteskap Uiversitetet i Stavager 12. april Bjør H. Auestad Kp. 6: Hypotesetestig del 4 1/ 59

Detaljer

ÅMA110 Sannsynlighetsregning med statistikk, våren 2010. Noen viktige sannsynlighetsmodeller. Binomisk modell. Kp. 3 Diskrete tilfeldige variable

ÅMA110 Sannsynlighetsregning med statistikk, våren 2010. Noen viktige sannsynlighetsmodeller. Binomisk modell. Kp. 3 Diskrete tilfeldige variable ÅMA Saslighetsregig med statistikk, våre K. 3 Diskrete tilfeldige variable Noe viktige saslighetsmodeller Noe viktige saslighetsmodeller ( Sas.modell : å betr det klasse/te sas.fordelig.) Biomisk modell

Detaljer

INF1010 Sortering. Marit Nybakken 1. mars 2004

INF1010 Sortering. Marit Nybakken 1. mars 2004 INF1010 Sortering Marit Nybakken marnybak@ifi.uio.no 1. mars 2004 Dette dokumentet skal tas med en klype salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet

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

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

Rekursjon. Binærsøk. Hanois tårn. Rekursjon Binærsøk. Hanois tårn. Hvorfor sortering (og søking) er viktig i programmering «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til

Detaljer

INF1000: noen avsluttende ord

INF1000: noen avsluttende ord Pensum Det som er gjennomgått på forelesningene INF1000: noen avsluttende ord Arne og Fredrik Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige virkninger

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen? OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.

Detaljer

Econ 2130 uke 15 (HG) Poissonfordelingen og innføring i estimering

Econ 2130 uke 15 (HG) Poissonfordelingen og innføring i estimering Eco 130 uke 15 (HG) Poissofordelige og iførig i estimerig 1 Poissofordelige (i) Tilærmig til biomialfordelige. Regel. ( Poissotilærmelse ) Ata Y ~ bi(, p) E( Y ) = p og var( Y ) = p(1 p). Hvis er stor

Detaljer

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI Oppgave 1 INF1000 Uke 13 Gjennomgang av prøveeksamen fra høsten 2004 Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI int i; int k = i; int i, j = 4; int k = j; double[] x = new double[1];

Detaljer

Signifikante sifre = alle sikre pluss ett siffer til

Signifikante sifre = alle sikre pluss ett siffer til Sigifikate siffer og stadardavvik behadles i kap. Disse to emee skal vi ta for oss i dag. Kofidesgreser behadles i kap 4. Dette skal vi ta for oss i osdag. Presetasjo av aalysedata ka gjøres på følgede

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

Høgskolen i Telemark Avdeling for estetiske fag, folkekultur og lærerutdanning BOKMÅL 12. desember 2008

Høgskolen i Telemark Avdeling for estetiske fag, folkekultur og lærerutdanning BOKMÅL 12. desember 2008 Høgskole i Telemark Avdelig for estetiske fag, folkekultur og lærerutdaig BOKMÅL. desember 8 EKSAMEN I MATEMATIKK, Utsatt røve Modul 5 studieoeg Tid: 5 timer Ogavesettet er å sider (ikludert formelsamlig).

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

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

STK1100: Kombinatorikk og sannsynlighet

STK1100: Kombinatorikk og sannsynlighet ST1100: ombiatorikk og sasylighet Jauar 201 Ørulf Borga/Geir Storvik Matematisk istitutt Uiversitetet i Oslo 1 Uiform sasylighetsmodell: Et stokastisk forsøk har N utfall Det er de mulige utfallee for

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

2.1 Polynomdivisjon. Oppgave 2.10

2.1 Polynomdivisjon. Oppgave 2.10 . Polyomdivisjo Oppgave. ( 5 + ) : = + + ( + ):( ) 6 + 6 8 8 = + + c) ( + 5 ) : = + 6 6 d) + + + = + + = + + + 8+ ( ):( ) + + + Oppgave. ( + 5+ ):( ) 5 + + = + ( 5 ): 9 + + + = + + + 5 + 6 9 c) ( 8 66

Detaljer

INF2440 Uke 10, v2017 : Arne Maus PSE, Inst. for informatikk

INF2440 Uke 10, v2017 : Arne Maus PSE, Inst. for informatikk INF2440 Uke 10, v2017 : Arne Maus PSE, Inst. for informatikk 1 Hva skal vi se på i uke 9: 1. Om oblig3 generell Radix-sortering (MultiRadix) Dette er en variant av Radix-sortering som automatisk prøver

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Eme: Diskret matematikk Gruppe(r): Eksamesoppgave består av: Atall sider (ikl forside): 5 Emekode: FO 9A Dato: 69 Atall oppgaver: Fagasvarlig: Ulf Uttersrud

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