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

Størrelse: px
Begynne med side:

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

Transkript

1 IN3030 Uke 5, våre 2019 Eric Jul PSE Ist. for iformatikk 1

2 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. Hva skjer egetlig i lageret (mai memory) år vi kjører parallelle tråder - the Java Memory Model 4. Hvorfor sykroiserer vi, og hva skjer da, 1. Hvilke problemer blir løst? 2

3 Pla for uke 5 Første time: 1. Oblig 1: commets 2. Oblig 2: Matrix multiplicatio 3. Modellkode2 -forslag for testig av parallell kode 4. Ulike løsiger på i++ 5. Vraglås - et problem vi lett ka få (og ugå) Ae time: 1. Ulike strategier for å dele opp et problem for parallelliserig: 2. Om primtall Eratosthees Sil (ES) 3. Hvorda represetere (ES) effektivt i maskie 3

4 Reasos to fail oblig 1 Reasos to fail oblig 1: - Lackig tables i the report - Lackig explaatio i the report - Lackig diagrams i the report - Not thread safe code - Too much sychroizatio 4

5 2) Modell-kode for tidssammeligig av (ekle) parallelle og sekvesiell algoritmer E god del av dere har laget programmer som virker for: Kjøre både de sekvesielle og parallelle algoritme Greier å kjøre begge algoritmee mage gager for å ta mediatide for sekvesiell og parallell versjo Helst skriver resultatee ut på e fil for seere rapportskrivig Dere ka slappe av å, og se på mi løsig For dere adre skal jeg gjeomgå mi kode slik at dere har et skjelett å skrive kode iefor Det mest iteressate i dette kurset er tross alt hvorda vi: Deler opp problemet for parallelliserig Hvorda vi sykroiserer i e korrekt parallell løsig. 5

6 import java.util.*; import java.util.cocurret.*; import java.util.cocurret.locks.*; import easyio.*; // file: Modell2.java // Lagt ut feb Are Maus, Ifi, UiO // Som BARE et eksempel, er problemet med å øke fellesvariabele i *atkjerer gager løst class Modell2{// ****** Problemets FELLES DATA HER it i; fial Strig av = "TEST AV i++ med sychroized oppdaterig"; // Felles system-variable - samme for 'alle' programmer CyclicBarrier vet,ferdig, heltferdig ; // for at trådee og mai veter på hveradre it attraader; it atkjerer; it umiter ; // atall gager for å lage media (1,3,5,,) it Low,Step,High; // laveste, multiplikator, hoyeste -verdi it ; // problemets størrelse Strig filav; volatile boolea stop = false; it med; Out ut; it [] alli; double [] seqtime ; double [] partime ; 6

7 /** for også utskrift på fil */ sychroized void pritl(strig s) { ut.outl(s); System.out.pritl(s); } /** for også utskrift på fil */ sychroized void prit(strig s) { ut.out(s); System.out.prit(s); } /** iitierige i mai-tråde */ void ititier(strig args) { Low = Iteger.parseIt(args[0]); Step = Iteger.parseIt(args[1]); High = Iteger.parseIt(args[2]); umiter = Iteger.parseIt(args[3]); seqtime = ew double [umiter]; partime = ew double [umiter]; ut = ew Out(args[4], true); atkjerer = Rutime.getRutime().availableProcessors(); attraader = atkjerer; vet = ew CyclicBarrier(atTraader+1); //+1, også mai ferdig = ew CyclicBarrier(atTraader+1); //+1, også mai heltferdig = ew CyclicBarrier (2); // mai veter på tråd 0 alli = ew it [attraader]; 7

8 } // ed iitier // start trådee for (it i = 0; i< attraader; i++) ew Thread(ew Para(i)).start(); public static void mai (Strig [] args) { if ( args.legth!= 5) { System.out.pritl("use: >java Modell2 <Low> <Step> <High> <um iter> <fil>"); } else { ew Modell2().utforTest(args); } } // ed mai 8

9 void utfortest () { ititier(); pritl("test av "+ av+ "\ med "+ atkjerer + " kjerer, og " + attraader+" traader, Media av:" + umiter+" iterasjo\"); pritl("\ sekv.tid(ms) para.tid(ms) Speedup "); for ( = High; >= Low; =/Step) { for (med = 0; med < umiter; med++) { log t = System.aoTime(); // start tidtagig parallell // Start alle trådee parallell beregig å try { vet.await(); // start e parallell beregig ferdig.await(); // vet på at trådee er ferdige } catch (Exceptio e) {retur;} try { heltferdig.await(); // vet på at tråd 0 har summert svaret } catch (Exceptio e) {retur;} // her ka vi lese svaret t = (System.aoTime()-t); partime[med] =t/ ; pritl(«svaret er:» + i + «for =» +); t = System.aoTime(); // start tidtagig sekvesiell //**** KALL PÅ DIN SEKVENSIELLE METODE H E R ******** sekvesiellmetode (,umiter); t = (System.aoTime()-t); seqtime[med] =t/ ; } // ed for med 9

10 pritl(format.alig(,10)+ Format.alig(media(seqTime,umIter),12,3)+ Format.alig(media(parTime,umIter),15,3)+ Format.alig(media(seqTime,umIter)/media(parTime,umIter),13,4)); } // ed -loop exit(); } // utfortest /** termiate parallel threads*/ void exit() { stop = true; try { // start the other threads ad they termiate vet.await(); } catch (Exceptio e) {retur;} ut.close(); } // ed exit /*** HER er di ege sekvesielle metode som selvsagt IKKE ER sychroized, */ void sekvesiellmetode (it,it umiter){ for (it j=0; j<; j++){ i++; } } // ed sekvesiellmetode /*** Her er evt. de parallelle metodee som ER sychroized - treig*/ sychroized void addi() { i++; } 10

11 class Para implemets Ruable{ it id, mii=0, fra,til,um; Para(it i) { id =i; } // kostruktor /*** HER er die ege parallelle metoder som IKKE er sychroized */ void parallellmetode(it id) { for (it j=0; j<; j++){ mii++; } alli [id] = mii; } void paraiitier(it ) { um = /attraader; fra = id*um; til = (id+1)*um; if (id == attraader-1) til =; mii =0; }// ed paraiitier 11

12 public void ru() { // Her er det som kjores i parallell: while (! stop) { try { // wait o all other threads + mai vet.await(); } catch (Exceptio e) {retur;} if (! stop) { paraiitier(); //**** KALL PÅ DINE PARALLELLE METODER H E R ******** parallellmetode(id); // parameter: traaummeret: id try{ // make all threads termiate ferdig.await(); } catch (Exceptio e) {} } // ed! stop thread // tråd r 0 adderer de 'umthreads' mii - variablee til e felles verdi if (id == 0) { i =0; for (it j = 0; j < attraader; j++) { i += alli[j]; } } // ed tråd 0 } // ed while!stop } // ed ru } // ed class Para try { heltferdig.await(); // si fra til mai at tråd 0 har summert svaret } catch (Exceptio e) {retur;} 12

13 Hvor lag tid tar et sychroized kall? Demoeks. hadde sychroiced metode for all skrivig til felles i. Kjørte modell-kode for = (3 gager) Svar: Et sychroized kall tar ca. 1000/(8* )ms = 0.15 µs = 150s. = ca. 500 istruksjoer. 13

14 3) Fies det alterativer & riktig kode? a) Bruk av ReetratLock (import java.util.cocurret.locks.*;) // i felledata-omraadet i omsluttede klasse ReetratLock laas = ew ReetratLock(); /*** HER skriver du evetuelle parallelle metoder som ER sychroized */ void addi() { laas.lock(); i++; try{ laas.ulock();} catch(exceptio e) {retur;} } // ed addi Kjørig: M:\INF2440Para\ModelKode>java ModellAlt test.txt Test av TEST AV i++ med ReetratLock oppdaterig med 8 kjerer, og 8 traader Media of 5: Sekv. tid: 0.70 ms, Para tid: ms, Speedup: 0.003, = x fortere e sychroized! 14

15 b) Alterativ b til sychroized: Bruk av AtomicIteger Bruk av AtomicIteger (import java.util.cocurret.atomic.*;) // i felledata-omraadet i omsluttede klasse AtomicIteger i = ew AtomicIteger(); /*** HER skriver du evetuelle parallelle metoder som ER sychroized */ void addi() { i.icremetadget(); } // ed addi Kjørig: M:\INF2440Para\ModelKode>java ModellAlt test.txt Test av TEST AV i++ med AtomicIteger oppdaterig med 8 kjerer, og 8 traader Media of 5: Sekv. tid: 0.66 ms, Para tid: ms, Speedup: 0.003, = Koklusjo: Både ReetratLock og AtomicIteger er 5x fortere e sychroized metoder + at all parallell kode ka da ligge i de parallelle klasse. 15

16 c) : Lokal kopi av i hver tråd og e sychroized oppdaterig fra hver tråd til sist. /*** HER skriver du evetuelle parallelle metoder som ER sychroized */ sychroized void addi(it tillegg) { i = i+ tillegg; } // ed addi. class Para implemets Ruable{ it id; it mii=0;.. /*** HER skriver du parallelle metode som IKKE er sychroized */ void parallellmetode(it id) { for (it j=0; j<; j++) mii++; } // ed parallellmeode public void ru() { if (! stop) { //**** KALL PÅ DIN PARALLELLE METODE H E R ******** parallellmetode(id); addi(mii); try{ 16

17 Kjørig av alterativ C (lokal kopi først): Kjørig: M:\INF2440Para\ModelKode>java ModellAlt test.txt Test av TEST AV i++ forst i lokal i i hver traad, saa sychroized oppdaterig av i, med 8 kjerer, og 8 traader Media of 5: Sekv. tid: 0.71 ms, Para tid: 0.47 ms, Speedup: 1.504, = Betydelig raskere, ca. 500x e alle de adre korrekte løsigee og oe raskere e de sekvesielle løsige Eeste riktige løsig som har speedup > 1. Husk: Ige vits å lage e parallell algoritme hvis de sekvesielle er raskere. 17

18 Oppsummerig Løsig kjøretid Speedup Sekvesiell 0,70 ms 1 Bare sychroized 1015,72 ms 0,001 ReetratLock ms 0,003 AtomicIteger 235,91 ms 0,003 Lokal kopi, så sychroized oppdaterig 1 gag per tråd 0,47 ms 1,504 Oppsummerig: Sykroiserig av skrivig på felles variable tar lag tid, og må miimeres (og sychroized er spesielt treg) Selv de raskeste er 500x lagsommere e å ha lokal kopi av fellesvariabel it i, og så addere svaree til sist. 18

19 4) Vraglås: Rekkefølge av flere sykroiseriger fra flere, ulike tråder går det alltid bra? Ata at du har to ulike parallelle klasser A og B og at som begge bruker to felles sykroiserigsvariable: Semphoree vet og ferdig (begge iitiert til 1). A og B sykroiserer seg ikke i samme rekkefølge: A sier: try{ vet. acquire(); ferdig. acquire(); } catch(exceptio e) {retur;} gjør oe. ferdig.release(); vet.release(); B sier: try{ ferdig. acquire(); vet. acquire(); } catch(exceptio e) {retur;} gjør oe. vet.release(); ferdig.release(); 19

20 Ytre klasse VragLaas med to idre klasser SkrivA og SkrivB public class VragLaas{ it a=0,b=0, atgager; Semaphore ferdig, vet ; SkrivA aobj; SkrivB bobj; // Felles variable a,b public static void mai (Strig [] args) { if (args.legth!= 1) { System.out.pritl(" bruk: java <at gager oeke> ); } else { it atkjerer = Rutime.getRutime(). availableprocessors(); System.out.pritl("Maskie har "+ atkjerer + " prosessorkjerer.\"); VragLaas p = ew VragLaas(); p.atgager = Iteger.parseIt(args[0]); p.utfor(); } } // ed mai void utfor () { vet = ew Semaphore(1); ferdig = ew Semaphore(1); (aobj = ew SkrivA()).start(); (bobj = ew SkrivB()).start(); } // utfor class SkrivA exteds Thread{ public void ru() { for (it j = 0; j<atgager; j++) { try { // wait vet.acquire(); ferdig.acquire(); } catch (Exceptio e) {retur;} a++; System.out.pritl(" a: " +a); vet.release(); ferdig.release(); } // ed j } // ed ru A } // ed class SkrivA class SkrivB exteds Thread{ public void ru() { for (it j = 0; j<atgager; j++) { try { // wait ferdig.acquire(); vet.acquire(); } catch (Exceptio e) {retur;} b++; System.out.pritl(" b: " +b); vet.release(); ferdig.release(); } // ed j } // ed ru B } // ed class SkrivB } // ed class VragLaas 20

21 Vraglås del 2 Dette ka gi såkalt vraglås (deadlock) ved at begge trådee veter på at de adre skal bli gå videre. Hvis operasjoee blades slik går det galt (og det skjer også i praksis!) A vet. acquire(); ferdig. acquire(); B ferdig. acquire(); vet. acquire(); tid Begge fortsetter A må vete på at B slipper ferdig B må vete på at A slipper vet 21

22 Vraglås - løsig A og B veter på hveradre til evig tid programmet ditt heger! Løsig: Følg disse ekle regler i hele systemet (fjerer all vraglås): 1. Hvis du skal ha flere sykroiserigs-objekter i programmet, så må de sorteres i e eller ae rekkefølge. 2. Alle tråder som bruker to eller flere av disse, må be om å få vete på dem (s.acquire(),..) i samme rekkefølge som de er sortert! 3. I hvilke rekkefølge disse sykroiserigs-objektee slippes opp (s. release(),..) har mer med hvem av de som veter ma vil slippe løs først, og er ikke så øye; gir ikke vraglås. 22

23 5) Om å parallelliser et problem Utgagspukt: Vi har e sekvesiell effektiv og riktig sekvesiell algoritme som løser problemet. Vi ka dele opp både kode og data (hver for seg?) Valigst å dele opp data Som oftest deler vi opp data, og lar hele kode virke på hver av disse data-delee (e del til hver tråd). Eks: Matriser radvis eller koloevis oppdelig av C til hver tråd Omforme data slik at de passer bedre i cachee (traspoere B) Rekursiv oppdelig av data ( lett ) Eks: Quicksort Også mulig å dele opp kode: Alterativ Oblig3 i INF1000: Beregig av Pi (3,1415..) med sifre med tre ArcTa-rekker Primtalls-faktoriserig av store tall N for kodebrekkig: N= p 1 * p 2 23

24 Ed of First Hour of Lecture 24

25 Å 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 vil parallellisere med k tråder, og hver slikt steg vil få hver si parallelliserig med e CyclickBarrier-sykroiserig mellom hver av disse delee + e sykroisert avslutig (joi(),..). Eks: fimax hadde ett slikt steg: for (it i = 0-1) -løkke MatriseMult hadde ett slikt steg med trippel-løkke Flere steg mulig: Eksempler seere i kurs (Radix) 25

26 Å dele opp data del 2 For å plalegge parallelliserig av ett slikt steg må vi fie: Hvilke data i problemet er lokale i hver tråd? Hvilke data i problemet er felles/delt mellom trådee? Viktig for effektiv parallell kode. Hvorda deler vi opp felles data (om mulig) Ka hver tråd berege hver si ege, disjukte del av data Færrest mulig sykroiseriger (de tar mye tid) 26

27 5 ) Om primtall og om Eratosthees sil (oblig 3) Et primtall er : Et heltall som bare lar seg dividere med 1 og seg selv. 1 er ikke et heltall (det mete mage på 1700-tallet, og oe meer det fortsatt) Ethvert tall N > 1 lar seg faktorisere som et produkt av primtall: N = p 1* p 2* p 3* * p k Dee faktorige er etydig (påær rækkefølge); dvs. de eeste faktoriserige av N gjøres etydig hvis tall i faktoriserige sorteres Hvis det bare er ett tall i dee faktoriserige, er N selv et primtall 27

28 Litt mer om Eratosthees Eratosthees, matematikker, laget også et estimat på jordas radius som var < 1,5% feil, grula geografi som fag, fat opp skuddårsdage + at ha var sjef for Biblioteket i Alexadria (de tids største forskigsistitusjo). 28

29 2 måter å lage primtall Øsker at fie alle primtal p i < N Lage e tabell over alle de primtallee vi treger Eratosthee sil Dividere alle tall < N med alle oddetall <!? Divisjosmetode 29

30 Hvorda lage og lagre primtall A) Med Eratosthees sil: Z:\INF2440Para\Primtall>java PrimtallESil max primtall m: Geererte alle primtall <= paa millisek med Eratosthees sil og det største primtallet er: Med gjetatte divisjoer Z:\INF2440Para\Primtall>java PrimtallDiv Geererte alle primtall <= paa millisek med divisjo, og det største primtallet er: Å lage primtallee p og fie dem ved divisjo (del på alle oddetall < SQRT(p) p = 2,3,4,..) er ca. 100 gager lagsommere e Eratosthees avkryssigs-tabell (kalt Eratosthees sil). 30

31 Fie primtall -- Eratosthees sil Hvorda? 31

32 Å lage og lagre primtall (Erotosthees sil) Som e bit-tabell (1- betyr primtall, 0-betyr ikke-primtall) Påfuet i jeraldere av Eratosthees (ca. 200 f.kr) Ma skal fie alle primtall < M Ma fier da de første primtallee og krysser av alle multipla av disse (N.B. dette forbedres/edres seere): Eks: 3 er et primtall, da krysses 6, 9,12,15,.. Av fordi de alle er ett-eller-aet-tall (1,2,3,4,5,..) gager 3 og følgelig selv ikke er et primtall. 6=2*3, 9 = 3*3, 12 =2*2*3, 15 = 5*3,..osv De tallee som ikke blir krysset av, år vi har krysset av for alle primtallee vi har, er primtallee Vi fier 5 som et primtall fordi, etter at vi har krysset av for 3, fier første ikke-avkryssete tall: 5, som da er et primtall (og som vi så krysser av for, fier så 7 osv) 32

33 Litt mer om Eratothees sil Vi represeterer ikke partallee på de tallija som det krysses av på fordi vi vet at 2 er et primtall (det første ) og at alle adre partall er ikke-primtall. Har vi fuet et ytt primtall p, for eksempel. 5, starter vi avkryssige for dette primtallet først for tallet p*p (i eksempelet: 25), me etter det krysses det av for p*p+2p, p*p+4p,.. (i eksempelet 35,45,55, osv.). Grue til at vi ka starte på p*p er at alle adre tall t < p*p slik det krysses av i for eksempel Wikipedia-artikkele har allerede blitt krysset av adre primtall < p. Det betyr at for å krysse av og fie alle primtall < N, behøver vi bare å krysse av på dee måte for alle primtall p sqrt(n). Dette sparer svært mye tid. 33

34 Vise at vi treger bare primtallee <10 for å fie alle primtall < 100, avkryssig for 3 (3*3, 9+2*3,9+4*3,.)

35 Avkryssig for 5 (starter med 25, så 25+2*5, 25+4,5,..):

36 Avkryssig for 7 (starter med 49, så 49+2*7,49+4*7,.): Er å ferdig fordi este primtall vi fier: 11, så er 11*11=121 utefor tabelle 36

37 1) Hvorda bruke 8 eller 7 bit i e byte-array for å represetere primtallee E byte = 8 bit heltall: Fortegs-bit (0 = positiv, 1=egativ) 7 bit data (0-127) Vi represeter alle oddetallee (1,3,5,,,) som ett bit (0= ikkeprimtall, 1 = primtall) Bruke alle 8 bit : Fordel: mer kompakt lagrig og litt raskere(?) adresserig Ulempe: Ka da ikke bruke verdie i byte direkte (f.eks som e ideks til e array), heller ikke +,-,* eller /-operasjoee på verdie Bruke 7 bit: Fordel: ige av ulempee med 8 bit Ulempe: Tar litt større plass og litt lagsommere(?) adresserig 37

38 1) Hvorda represetere 8 (eller 7) bit i e byte-array byte = et 8 bit heltall Fortegs-bit (0 = positiv, 1=egativ) 7 bit data (0-127) Bruker alle 8 bitee til oddetallee: Ata at vi vil sjekke om tallet k er et primtall, sjekk først om k er 2, da ja, hvis det er et partall (me ikke 2) da ei ellers sjekk så tallets bit i byte-arraye Byte ummeret til k i arraye er da: Ete: k /16, eller: k >>>4 (shift 4 høyreover ute kopi av fortegs-bitet er det samme som å dele med 16) Bit-ummeret er i dee byte er da ete (k %16)/2 eller (k &15)>>1 Hvorfor dele på 16 år det er 8 bit fordi vi fjeret alle partallee egetlig 16 tall represetert i første byte, for byte 0: tallee 0-15 Om så å fie bitverdie se este lysark. 38

39 Bruke 7 bit i hver byte i arraye Ata at vi vil sjekke om tallet k er et primtall sjekk først om k er 2, da ja, ellers hvis det er et partall (me ikke 2) da ei ellers: Sjekk da tallets bit i byte-arraye Byte ummeret til k i arraye er da: k /14 Bit-ummeret er i dee byte er da: (k %14)/2 Nå har vi byte ummeret og bit-ummeret i de byte. Vi ka da ta AND (&) med det riktige elemetet i e av de to arryee som er oppgitt i skjelett-kode og teste om svaret er 0 eller ikke. Hvorda sette alle 7 eller 8 bit == 1 i alle byter ) 7 bit: hver byte settes = 127 (me bitet for 1 settes =0) 8 bit: hver byte settes = -1 (me bit for 1 settes = 0) Koklusjo: bruk 8 eller 7 bit i hver byte (valgfritt) i Oblig2 39

40 2) Faktoriserig av et tall M i sie primtallsfaktorer Vi har laget og lagret ved hjelp av Erotosthaes sil alle (utatt 2) primtall < N i e bit-array over alle odde-tallee. 1 = primtall, 0=ikke-primtall Vi har krysset ut de som ikke er primtall Hvorda skal vi så bruke dette til å faktorisere et tall M < N*N? Svar: Divider M med alle primtall p i <! (p i =2,3,5,..), og hver gag e slik divisjo M%p i ==0, så er p i e av faktoree til M. Vi forsetter så med å faktorisere ett midre tall M =M/p i. Faktoriserige av M = p i *..* p k er da produktet av alle de primtall som dividerer M ute rest. HUSK at e p i ka forekommer flere gager i svaret. eks: 20= 2*2*5, 81 = 3*3*3*3, osv Fier vi ige faktoriserig av M, dvs. ige p i! som dividerer M med rest == 0, så er M selv et primtall. 40

41 Hvorda parallellisere faktoriserig? 1. Gjeomgås este uke - dee uka viktig å få på plass e effektiv sekvesiell løsig med om lag disse kjøretidee for N = 2 mill: M:\INF2440Para\Primtall>java PrimtallESil max primtall m: Geererte primtall <= paa millisek med Eratosthees sil ( millisek/primtall) = 2*2*3*5*103* = 37* = 2*271*457*1931* = 3*19*47* = 2*2*2*2*2*7*313*1033* = 5*13*59951* = 2*3*3*31*71* = 1163*1879* = 2*2*11*11*17*23*293* faktoriseriger bereget paa: ms - dvs: ms. per faktoriserig 41

42 Faktoriserig av store tall med desimale sifre Uke5>java PrimtallESil max primtall m: bitarr.legth: Geererte primtall <= paa millisek med Eratosthees sil ( millisec/primtall) atall primtall < er: , dvs: 4.89%, og det største primtallet er: = 2*2*3*5*5*967*3673*19421* = = 2* = 3*31* * = 2*2*2*2*2*19*71* = 5*7* = 11* = 2*121081* = 3*17*19* * faktoriseriger bereget paa: ms dvs: ms. per faktoriserig largestlogfactorizedsafe: = *

43 Hva har vi sett på i uke 5 1. Modell2-kode for sammeligig av kjøretider på (ekle) parallelle og sekvesielle algoritmer. 2. Hvorda lage e parallell løsig ulike måter å sykroisere skrivig på felles variable 3. Vraglås - et problem vi lett ka få (og ugå) 4. Ulike strategier for å dele opp et problem for parallelliserig: 5. Hvorfor lage e avkryssigstabell over alle oddetall for å fie alle primtall (Eratosthees sil) steg 1 i Oblig 2 43

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Løsning eksamen R1 våren 2010

Løsning eksamen R1 våren 2010 Løsig eksame R våre 00 Oppgave a) ) f ( ) l f ( ) ' l l l l f ( ) (l ) ) g( ) 4e g( ) 4 e ( ) 4 e ( ) g( ) 4( ) e b) ( ) 4 4 6 P ) P() 4 4 6 8 6 8 6 0 Divisjo med ( ) går opp. 4 4 6 : ( ) 8 4 4 8 6 8 6

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

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

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

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

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

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

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

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

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

INF2440 Uke 6, v2015 om faktorisering av primtall + tre løsninger på et produsent/konsumentproblem. Arne Maus PSE, Inst.

INF2440 Uke 6, v2015 om faktorisering av primtall + tre løsninger på et produsent/konsumentproblem. Arne Maus PSE, Inst. INF2440 Uke 6, v2015 om faktorisering av primtall + tre løsninger på et produsent/konsumentproblem Arne Maus PSE, Inst. for informatikk 1 Hva så vi på i Uke5 1. Mer om ulike strategier for å dele opp et

Detaljer

Løsningsforslag: Deloppgave om heuristiske søkemetoder

Løsningsforslag: Deloppgave om heuristiske søkemetoder Løsigsforslag: Deloppgave om heuristiske søkemetoder 6. mai 00 Iledig Vi skal betrakte det såkalte grafdeligsproblemet (graph partitioig problem). Problemet ka ekelt formuleres som følger: Gitt e graf

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

Fagdag 2-3mx 24.09.07

Fagdag 2-3mx 24.09.07 Fagdag 2-3mx 24.09.07 Jeg beklager at jeg ikke har fuet oe ye morsomme spill vi ka studere, til gjegjeld skal dere slippe prøve/test dee gage. Istruks: Vi arbeider som valig med 3 persoer på hver gruppe.

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

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

INF2440 Uke 9, v2014 : Arne Maus OMS, Inst. for informatikk

INF2440 Uke 9, v2014 : Arne Maus OMS, Inst. for informatikk INF2440 Uke 9, v2014 : Arne Maus OMS, Inst. for informatikk 1 Hva har vi sett på i uke 8: 1. En effektiv Threadpool? Executors.newFixedThreadPool 2. Mer om effektivitet og JIT-kompilering! 3. Om et problem

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

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

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

Matematikk for IT. Oblig 7 løsningsforslag. 16. oktober

Matematikk for IT. Oblig 7 løsningsforslag. 16. oktober Matematikk for IT Oblig 7 løsigsforslag. oktober 7..8 a) Vi skal dae kodeord som består av sifree,,,, 7. odeordet er gldig dersom det ieholder et like atall (partall) -ere. Dee løses på samme måte som..:

Detaljer

INF2440 Uke 8, v2017. Arne Maus PSE, Inst. for informatikk

INF2440 Uke 8, v2017. Arne Maus PSE, Inst. for informatikk INF2440 Uke 8, v2017 Arne Maus PSE, Inst. for informatikk 1 Hva har vi sett på i uke 7: 1. Svar på et oblig2-spørsmål 2. Hvilken orden O() har Eratosthenes Sil? 3. Hvordan parallellisere Oblig2 - alternativer

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 11. juni 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8

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

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

INF2440 Uke 12, v2014. Arne Maus OMS, Inst. for informatikk

INF2440 Uke 12, v2014. Arne Maus OMS, Inst. for informatikk INF2440 Uke 12, v2014 Arne Maus OMS, Inst. for informatikk 1 Fra hjemmesida til INF2440: To trykkfeil rettet i Oblig3 Rediger 1) Stegene i algoritmene ble i koden referert som a,b,c,c - skal selvsagt være:

Detaljer

INF Notater. Veronika Heimsbakk 10. juni 2012

INF Notater. Veronika Heimsbakk 10. juni 2012 INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

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

FØLGER, REKKER OG GJENNOMSNITT

FØLGER, REKKER OG GJENNOMSNITT FØLGER, REKKER OG GJENNOMSNITT Espe B. Lagelad realfagshjoret.wordpress.com espebl@hotmail.com 9.mars 06 Iledig E tallfølge er e serie med tall som kommer etter hveradre i e bestemt rekkefølge. Kvadrattallee

Detaljer

INF2440 Uke 6, v2017. Arne Maus PSE, Inst. for informatikk

INF2440 Uke 6, v2017. Arne Maus PSE, Inst. for informatikk INF2440 Uke 6, v2017 Arne Maus PSE, Inst. for informatikk 1 Hva så vi på i uke 5 1. Enda bedre Matrise-multiplisering 2. Modell2-kode for sammenligning av kjøretider på (enkle) parallelle og sekvensielle

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

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

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

INF2440 Uke 15, v2014 oppsummering. Arne Maus OMS, Inst. for informatikk

INF2440 Uke 15, v2014 oppsummering. Arne Maus OMS, Inst. for informatikk INF2440 Uke 15, v2014 oppsummering Arne Maus OMS, Inst. for informatikk 1 Hva så vi på i Uke14 I) Sjekke Goldbachs hypotese for n > 4*10 18. Jeg skisserte en meget dårlig (ineffektiv) algoritme for dere.

Detaljer

Stabler, Køer og Lister. ADT er

Stabler, Køer og Lister. ADT er Stabler, er og Lister I. STEL OG QUEUE DT I.1 DT I.2 rray implemetasjo I.3 Liket-Liste implemetasjo II. DQUEUE DT III.IMPLEMENTSJON V EN DT MED EN NNEN DT Kap. 3 (kursorisk: 3.1.3, 3.2.3, 3.4; utatt: 3.2.4,

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

INF2440 Uke 11, v2014 om parallell debugging og Goldbachs problem, om Oblig 3. Arne Maus OMS, Inst. for informatikk

INF2440 Uke 11, v2014 om parallell debugging og Goldbachs problem, om Oblig 3. Arne Maus OMS, Inst. for informatikk INF2440 Uke 11, v2014 om parallell debugging og Goldbachs problem, om Oblig 3 Arne Maus OMS, Inst. for informatikk 1 Fra hjemmesida til INF2440: Plan for resten av semesteret: Forelesninger: 28.mars (i

Detaljer

INF2440 Uke 15, v2015 oppsummering. Arne Maus PSE, Inst. for informatikk

INF2440 Uke 15, v2015 oppsummering. Arne Maus PSE, Inst. for informatikk INF2440 Uke 15, v2015 oppsummering Arne Maus PSE, Inst. for informatikk 1 Hva skal vi se på i Uke15 I) Presisering og utvidelse av en uttalelse om en eller flere tråder i en GUI (+ TegnUt til Oblig3).

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

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

Beregning av med svært mange desimaler

Beregning av med svært mange desimaler Oblig 3 i INF000 Høsten 2005 Beregning av med svært mange desimaler Veiledning gitt 5. oktober 2005 Arnt Inge Vistnes a.i.vistnes@fys.uio.no Utgangspunkt:. John Machin s formel fra 706: = 6 arctan - 4

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

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004 Oppgave 1 Prøveeksamen i INF1000 Ole Christian og Arne 23. november 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

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

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

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

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004 Prøveeksamen i INF1000 Ole Christian og Arne 23. november 2004 Oppgave 1 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

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

EKSAMEN Løsningsforslag

EKSAMEN Løsningsforslag 7. jauar 7 EKSAMEN Løsigsforslag Emekode: ITF75 Dato: 4. desember 6 Hjelpemidler: - To A4-ark med valgfritt ihold på begge sider. Emeav: Matematikk for IT Eksamestid: 9. 3. Faglærer: Christia F Heide Kalkulator

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

INF2440 Uke 15, v2017 litt om parallellisering av Oblig4 + oppsummering av kurset. Arne Maus PSE, Inst. for informatikk

INF2440 Uke 15, v2017 litt om parallellisering av Oblig4 + oppsummering av kurset. Arne Maus PSE, Inst. for informatikk INF2440 Uke 15, v2017 litt om parallellisering av Oblig4 + oppsummering av kurset Arne Maus PSE, Inst. for informatikk 1 Oblig4 parallelliseringen av konveks innhylling Antar at du har to riktige metoder:

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

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

Fakultet for teknologi, kunst og design Teknologiske fag Eksamen i: Diskret matematikk

Fakultet for teknologi, kunst og design Teknologiske fag Eksamen i: Diskret matematikk Fakultet for tekologi, kust og desig Tekologiske fag Eksame i: Diskret matematikk Målform: Bokmål Dato: 9. ovember 017 Tid: Atall sider (ikl. forside): 9 Atall oppgaver: 6 Tillatte hjelpemidler: Forhådsgodkjet

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

INF2440 Uke 9, v2015 : Arne Maus PSE, Inst. for informatikk

INF2440 Uke 9, v2015 : Arne Maus PSE, Inst. for informatikk INF2440 Uke 9, v2015 : Arne Maus PSE, Inst. for informatikk 1 Hva har vi sett på i uke 8: 1. En første gjennomgang av Oblig3 Den sekvensielle løsningen m. tips 2. En effektiv Threadpool? Executors.newFixedThreadPool

Detaljer

Oblig 2 - MAT1120. Fredrik Meyer 26. oktober 2009 = A = P1 1 A 1 P 1 A 1 A 2 = P 1. A k+1. A k P k

Oblig 2 - MAT1120. Fredrik Meyer 26. oktober 2009 = A = P1 1 A 1 P 1 A 1 A 2 = P 1. A k+1. A k P k Oblig 2 - MAT20 Fredri Meyer 26 otober 2009 Matrisee A i er defiert sli der P er e rotasjosmatrise som defierer i oppgave 2: A A 2 A + = A = P A P = P A P Oppgave Matrisee A i+ og A i er similære det fies

Detaljer

INF2440 Uke 8, v2015 : Om Oblig 3, Ulike Threadpools, JIT-kompilering. Arne Maus PSE, Inst. for informatikk

INF2440 Uke 8, v2015 : Om Oblig 3, Ulike Threadpools, JIT-kompilering. Arne Maus PSE, Inst. for informatikk INF2440 Uke 8, v2015 : Om Oblig 3, Ulike Threadpools, JIT-kompilering Arne Maus PSE, Inst. for informatikk 1 Hva har vi sett på i uke 7 1. Mer om matrisemultiplikasjon 1. Radvis (ikke kolonnevis) beregning

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

MAT-INF 1100: Obligatorisk oppgave 1

MAT-INF 1100: Obligatorisk oppgave 1 8. september, 2005 MAT-INF 1100: Obligatorisk oppgave 1 Innleveringsfrist: 23/9-2005, kl. 14:30 Informasjon Den skriftlige besvarelsen skal leveres på ekspedisjonskontoret i 7. etg. i Niels Henrik Abels

Detaljer

Steg 1: Rest etter divisjon

Steg 1: Rest etter divisjon Primtall og effektivitet Skrevet av: Martin Strand Kurs: Python Tema: Tekstbasert, Kryptografi Fag: Matematikk, Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon I matematikktimene

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

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