IN3030 Uke 5, våren Eric Jul PSE Inst. for informatikk
|
|
- Ida Christiansen
- 4 år siden
- Visninger:
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å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.
DetaljerINF2440 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
DetaljerINF2440 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
DetaljerINF2440, 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.
DetaljerINF2440 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
DetaljerINF3030 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
DetaljerArne 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
DetaljerINF3030 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
DetaljerIN3030 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
DetaljerINF2440 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
DetaljerINF2440 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
DetaljerINF2440 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
DetaljerINF2440 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
DetaljerINF2440 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
DetaljerINF2440 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
DetaljerINF2440 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
DetaljerINF2440 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
DetaljerINF3030, 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:
DetaljerUNIVERSITETET 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
DetaljerEKSAMEN 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:
Detaljern / ($$ 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 ) ("?/& =
DetaljerUke 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
DetaljerINF2440 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
DetaljerIN1010 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
DetaljerINF2440, 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.
DetaljerOm 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
DetaljerDifferensligninger 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
DetaljerAvsnitt 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
DetaljerLø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
DetaljerINF2440 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.
DetaljerINF2440, 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.
DetaljerINF1010 - 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
DetaljerUNIVERSITETET 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
DetaljerKapittel 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
DetaljerINF2440 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
DetaljerINF 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
DetaljerFaglæ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.
DetaljerI 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
DetaljerTrå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
DetaljerINF2440 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.
DetaljerINF3030 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
DetaljerINF2440 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
DetaljerLø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
DetaljerUNIVERSITETET 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
DetaljerFagdag 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.
DetaljerINF1010 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
DetaljerINF 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
DetaljerINF2440 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
DetaljerINF1010 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
DetaljerVi 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
DetaljerUNIVERSITETET 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
DetaljerINF1010 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
DetaljerMatematikk 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..:
DetaljerINF2440 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
DetaljerUNIVERSITETET 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
DetaljerUNIVERSITETET 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
DetaljerIN1010 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
Detaljer7) 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
DetaljerINF2440 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:
DetaljerINF 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
DetaljerINF1000 (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
DetaljerINF1000 (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
DetaljerAVDELING 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
DetaljerFØ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
DetaljerINF2440 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
DetaljerUNIVERSITETET 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
DetaljerFaglæ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.
DetaljerARBEIDSHEFTE 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
DetaljerINF2440 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.
DetaljerStabler, 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,
DetaljerUNIVERSITETET 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 :
DetaljerINF2440 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
DetaljerINF2440 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).
DetaljerOppgave 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];
DetaljerHvordan 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)
DetaljerBeregning 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
DetaljerPrø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
DetaljerOppgave 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
DetaljerPlan 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
DetaljerAVDELING 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
DetaljerINF1000: 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
DetaljerPrø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
DetaljerMA1101 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
DetaljerEKSAMEN 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
DetaljerMer 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
DetaljerINF2440 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:
DetaljerRekursjon. 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
DetaljerJentetreff 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
DetaljerFakultet 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
DetaljerINF1010 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
DetaljerINF2440 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
DetaljerOblig 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
DetaljerINF2440 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
DetaljerLø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
DetaljerMAT-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
DetaljerSteg 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
DetaljerIN1010. 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
DetaljerFig1. 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