Parallelle algoritmer
|
|
- Kaj Krog
- 7 år siden
- Visninger:
Transkript
1 Parallelle algoritmer Von Neumann s model John von Neumann Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én ad gangen e fleste computere er variationer over denne model Nye maskiner vinder frem, som tillader udførelse af et stort antal instruktioner samtidigt (i parallel) er kan være tale om generelt anvendelige maskiner, eller maskiner, der er specialbyggede til løsning af specifikke opgaver (eller opgave-typer) 1 2 Hastighedsforøgelse (speedup) Eksempel Parallel addition Mulig fremgangsmåde: (1) Flyt eksisterende effektiv algoritme uændret til parallelcomputer (2) Tilpas derefter algoritmen til computeren Ikke altid nogen god ide! lgoritmen kan være uegnet til parallelisering Lad T(n, p) betegne køretiden for en algoritme med inputstørrelse n på p processorer S(p) = T(n,1)/T(n, p) kaldes algoritmens speedup Hvis S(p) = p siges algoritmen at have perfekt speedup Ved effektiviteten af en parallel algoritme forstås E(p) = S(p)/p [ udtrykker udnyttelsesgraden af processorerne ] Problem: Find summen af to n-bit binære tal En sekventiel løsning har et tidsforbrug O(n) Parallel løsning: enyt del-og-hersk til at opnå en parallel algoritme Hvert problem opdeles i to uafhængige delproblemer n-m bit m bit (m = n/2) a: al ar b: bl br eregn i parallel: sr = ar + br + carry; // carry = 0/1 sl0 = al + bl + 0; sl1 = al + bl + 1; Hvis ar + br + carry ikke giver mente, benyttes sl0 i resultatet: sl0 sr Ellers benyttes sl1: sl1 m sidste bit af sr 3 4
2 Java-metode til addition ved del-og-hersk Problemer ved parallelisering int sum(int a, int b, int carry, int n) { if (n == 1) return a + b + carry; int m = n / 2; int al = a >> m, ar = a & ~(~0 << m); int bl = b >> m, br = b & ~(~0 << m); int sr = sum(ar, br, carry, m); int sl0 = sum(al, bl, 0, n - m); udføres i parallel int sl1 = sum(al, bl, 1, n - m); if (sr >> m == 0) return (sl0 << m) sr; else return (sl1 << m) (sr & ~(~0 << m)); Kommunikation imellem processorer: - ikke alle processorer kan være forbundet (hvis der er mange processorer) - langsomme forbindelser Synkronisering af processorer: - en processor kan blive nødt til at vente på en anden processor - en processors aktivitet bør ikke baseres på andre processorers relative hastigheder Eksempel på kald: s = sum(25, 29, 0, 16); Tidsforbrug: T(n) = T(n/2) + O(1)! T(n) = O(log n) 5 6 Når to eller flere processorer, processer eller tråde samtidigt opdaterer de samme data, kan resultatet blive forkert Synkronisering class Konto { private int saldo; public Konto(int startsaldo) { saldo = startsaldo; public int hentsaldo() { return saldo; public void saetsaldo(int nysaldo) { saldo = nysaldo; ruger 1 ruger 2 s1 = k.hentsaldo(); s2 = k.hentsaldo(); s1 += beløb1; s2 += beløb2; k.saetsaldo(s1); k.setsaldo(s2); Fejl: saldoen bliver kun øget med beløb2 7 Kritiske regioner Et stykke kode, som kan give et utilsigtet resultat, hvis det udføres af flere processer/tråde samtidig, kaldes for en kritisk region Java gør det muligt - gennem synchronized metoder og synchronized sætninger - at sikre, at kun én tråd ad gangen kan være i en kritisk region Hvis en tråd ønsker at udføre en kritisk region, som en anden tråd udfører, må den vente, indtil ingen anden tråd udfører denne kode 8
3 Synkronisering for kontoeksemplet class Konto { private int saldo; public Konto(int startsaldo) { saldo = startsaldo; public synchronized int hentsaldo() { return saldo; public synchronized void indsæt(int beløb) { saldo += beløb; Under udførelsen af en synchronized metode låses objektet SIS (Single-Instruction Single-ata): Én instruktionsstrøm, én datastrøm [ en sædvanlig computer ] i I PE o SIM (Single-Instruction Multiple-ata): Én instruktionsstrøm, flere datastrømme [ f.eks. en vektorcomputer ] I Flynns klassifikation 1966 MIM (Multiple-Instruction Multiple-ata): Flere instruktionsstrømme, flere datastrømme. [ f.eks. forbundne computere ] i1 I 1 PE 1 o1... I n PE n on MIS (Multiple-Instruction Single-ata): Flere instruktionsstrømme, én datastrøm. [ f.eks. systoliske maskiner ] I 0 in I n k.indsæt(beløb1); PE 1... PE n PE 1... PE n k.indsæt(beløb2); 9 i1 o1 in on i o 10 Kommunikation i MIM-arkitekturen Parallelle algoritmer Kommunikationen i MIM kan enten ske: (1) ved brug af fælles lager (2) ved udveksling af beskeder (meddelelser) esign, analyse og verifikation af parallelle algoritmer er langt vanskeligere end for traditionelle algoritmer I det følgende betragtes specialbyggede maskiner til løsning af specifikke opgaver e viser effekten af maskinarkitektur på algoritmedesign - og omvendt 11 12
4 Sorteringsnetværk Sortering af 4 dataelementer Sortering af 3 dataelementer Ikke-adaptiv algoritme: Ligegyldigt hvilke dataelementer, der skal sorteres, udføres en fast sekvens af sammenligning-ombytnings-operationer 13 Sortering af 4 dataelementer kan foretages i 3 parallelle skridt 14 Sortering af 16 dataelementer Matrixmultiplikation c 11 c 12 c ( 13 ) ( ( ) = c 21 c 22 c 23 c 31 c 32 c 33 a 11 a 12 a 13 b 11 b 12 b 13 a a a b b b a 31 a 32 a 33 ) * b 31 b 32 b 33 c ij = " k a ik b kj komponenter, 10 parallelle skridt for (i = 1; i <= N; i++) for (j = 1; j <= N; j++) { c[i][j] = 0; for (k = 1; k <= N; k++) c[i][j] += a[i][k] * b[k][j]; et er muligt at bygge sorteringsnetværk bestående af cirka n lg 2 n / 4 komponenter, der kan sortere i cirka lg 2 n / 2 parallelle skridt Tidsforbrug: O(N 3 ) 15 16
5 Matrixmultiplikation på en systolisk maskine Ressourceforbrug c 11 c 21 c 12 c 22 c 13 c 23 a[i][k] left down c ij b[k][j] up a[i][k] right Maskinen multiplicerer to N x N matricer ved brug af N 2 processorer i N parallelle skridt c 31 c 32 c 33 b[k][j] c ij = " k a ik b kj class Processor extends Thread { private int i, j, a, b, c, n; private hannel left, right, up, down; class hannel { private int message; private boolean full = false; public Processor(int I, int J, int, int, int N, hannel L, hannel R, hannel U, hannel ) { i = I; j = J; a = ; b = ; n = N; left = L; right = R; up = U; down = ; start(); public synchronized void send(int message) { while (full) try { wait(); catch (InterruptedException e) { this.message = message; full = true; notify(); public int getresult() { try { join(); catch (InterruptedException e) { return c; void run() { public synchronized int receive() { while (!full) try { wait(); catch (InterruptedException e) { full = false; notify(); return message; 20 fortsættes
6 public void run() { // a == a[i][j] && b == b[i][j] for (int k = 0; k <= i; k++) { left.send(a); a = right.receive(); for (int k = 0; k <= j; k++) { up.send(b); b = down.receive(); // a == a[i][0] && b == b[0][j] c = a * b; for (int k = 1; k < n; k++) { left.send(a); up.send(b); a = right.receive(); b = down.receive(); c += a * b; c 00 c 10 c 20 c 01 c 11 c 21 c 02 c 12 c 22 public static void main(string args[]) { int[][] a = {{ 1, 3,-4, { 1, 1,-2, {-1,-2, 5; int[][] b = {{ 8, 3, 0, { 3,10, 2, { 0, 2, 6; hannel[][][] c = new hannel[2][n][n]; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) { c[0][i][j] = new hannel(); c[1][i][j] = new hannel(); Processor[][] p = new Processor[n][n]; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) p[i][j] = new Processor(i, j, a[i][j], b[i][j], n, c[0][i][j], c[0][i][(j + 1) % n], c[1][i][j], c[1][(i + 1) % n][j]); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) System.out.print(p[i][j].getResult() + " "); System.out.println(); 21 22
Parallelle algoritmer
Parallelle algoritmer 1 Von Neumann s model John von Neumann 1903-57 Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereLøsning af skyline-problemet
Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle
Læs mereVideregående Programmering Obligatorisk opgave - 3. semester, efterår 2004
Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),
Læs mereDag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Læs mereKursus i OOP og Java. Kursus i Objektorienteret programmering i Java
Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger
Læs mereDM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11
DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2
DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld
Læs mereBRP 6.9.2006 Kursusintroduktion og Java-oversigt
BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:
Læs mereThreads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Læs mereDM02 opgaver ugeseddel 2
DM0 opgaver ugeseddel af Fiona Nielsen 16. september 003 Øvelsesopgaver 9/9, 10/9 og 11/9 1. Vis, at 1 3 + 3 3 + 5 3 +... + (n 1) 3 = n 4 n. Omskriver til summationsformel: (i 1) 3 = n 4 n Bevis ved induktion
Læs mereLøsning af møntproblemet
Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet
Læs mereOOP e uge kursusgang: Samtidighed (II) Safety = sikkerhed. Safety
= sikkerhed I denne sammenhæng: = "trådsikkerhed" " conditions.. stipulate that nothing bad will ever happen" (XP s. 377) Trådsikkerhed betyder sikkerhed mod inkonsistens pga. flertrådning ikke f.eks.
Læs mereDM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/
DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!
Læs mereDag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Læs mereKursus navn: Indledende programmering Kursus nr. 02101
Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning
Læs mereA Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
Læs mereRekursion og dynamisk programmering
Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4
DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens
Læs mereReal-time programming safety in Java and Ada
Real-time programming safety in Java and Ada Bo Sandén Presenter: Thomas Bøgholm 25. oktober 2007 Forfatteren Artiklen Synkroniserings Begreber Bo Sandén Professor på Colorado Technical University Beskæftiger
Læs mereet enkelt kontrol flow sætningerne i programmet afvikles en ad gangen flowet følger dels den tekstlige rækkefølge
Tråd-definition 2. XP-program: Dissektion af boldapplet (fortsat) En tråd er en separat programudførelse = separat "flow of control" = rækkefølge af programinstruktioner, der udføres En tråd kan mere konkret
Læs mereSøgning og Sortering. Søgning og Sortering. Søgning. Linæer søgning
Søgning og Sortering Søgning og Sortering Philip Bille Søgning. Givet en sorteret tabel A og et tal x, afgør om der findes indgang i, så A[i] = x. Sorteret tabel. En tabel A[0..n-1] er sorteret hvis A[0]
Læs mereVejledende løsninger
Roskilde Universitetscenter side 1 af 8 sider Vejledende løsninger Opgave 1 Spørgsmål 1.1 a = b - a; b = b - a; a = b + a; Opgaven har flere løsninger. En anden løsning er: a = b + a; b = a - b; a = a
Læs mereEksempel: Skat i år 2000
Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)
Læs mereHashing og hashtabeller
Datastrukturer & Algoritmer, Datalogi C Forelæsning 16/11-2004 Hashing og hashtabeller Teknik til at repræsentere mængder Konstant tid for finde og indsætte men ingen sortering af elementerne Specielt
Læs mereAAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal
Læs mereMM4. Algoritmiske grundprincipper. Lister, stakke og køer. Hash-tabeller og Træer. Sortering. Søgning.
MM Algoritmiske grundprincipper. Lister, stakke og køer. Hash-tabeller og Træer. Sortering. Søgning. MM MM MM MM MM Sortering Sorteringsalgoritmer : Virkemåde og anvendelser Kompleksitet Algoritmen Sorteringsalgoritmer
Læs mereJava Programmering. En bog for begyndere. Skrevet af Henrik Kressner
Java Programmering En bog for begyndere Skrevet af Henrik Kressner Indholdsfortegnelse Introduktion...3 1 Introduktion til Java...4 1.1 Javakoden...4 1.2 Det første program...6 1.2 Skriv til skærmen...6
Læs mereDATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004
Københavns Universitet bacheloruddannelsen i datalogi side 1 af 6 DATALOGI 0GB Skriftlig eksamen tirsdag den 6. januar 2004 Dette opgavesæt består af 6 nummererede sider. Eksamensdeltagerne bør straks
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3
DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget
Læs mereSynkronisering af sekventielle processer
Synkronisering af sekventielle processer Klaus Hansen, Niels Elgaard Larsen, Maz Spork, Jørgen Sværke Hansen 15. februar 2005 1 Introduktion Ved en multiprogram forstår vi et program, hvori vi kan specificere,
Læs mereMaskinarkitektur. Lars Kristensen kris@daimi.au.dk. Christian Storm cstorm@daimi.au.dk. dmasark 1
Maskinarkitektur Lars Kristensen kris@daimi.au.dk Christian Storm cstorm@daimi.au.dk dmasark 1 Praktiske oplysninger http://www.daimi.au.dk/dmasark dmasark 2 Forelæsninger Tirsdag 12.15-14.00, Store Aud,
Læs mereSøgning og Sortering. Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering. Philip Bille
Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering Flettesortering Philip Bille Søgning og Sortering Søgning Linæer søgning Binær søgning Sortering Indsættelsessortering
Læs mere17 Søgning og Søgetræer.
17 Søgning og Søgetræer. Lineær og inær søgning i lister. inære søgetræer. Søgning efter knude i træ. Indsættelse af knude i træ. Søgning i og sortering af inært søgetræ. Sletning af knude i inært søgetræ.
Læs mereTest af It-komponent
Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)
Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 Datastrukturer og algoritmer Henning Christiansen henning@ruc.dk http://www.ruc.dk/~henning Formål: at kunne - forstå datastrukturer og algoritmer
Læs mereForelæsning 17, tirsdag 2. november 1999 Søgning efter en given værdi i en tabel. Programmering 1999
sammenligninger, hvor Programmering 1999 Forelæsning 17, tirsdag 2 november 1999 Søgning efter en given værdi i en tabel Lineær søgning og binær søgning Effektivitet: maskinuafhængig vurdering af køretid
Læs mere18 Multivejstræer og B-træer.
18 Multivejstræer og B-træer. Multivejs søgetræer. Søgning i multivejssøgetræer. Pragmatisk lagring af data i multivejstræer. B-træer. Indsættelse i B-træer. Eksempel på indsættelse i B-træ. Facts om B-træer.
Læs mereFind største element, sæt det på sidste plads. Grundidé i hobsortering. er er
Programming 1999 KVL Side 19-2 Tidsforbruget, dvs asymptotisk proportionalt med Sorting af element: Tidsforbrug de mindste element, sortet øvrige element 0 Løkkeinvariant for udvalgssorting osv Find tredjemindste
Læs mere28 Algoritmedesign. Noter. PS1 -- Algoritmedesign
28 Algoritmedesign. Algoritmeskabelon for Del og Hersk. Eksempler på Del og Hersk algoritmer. Binær søgning i et ordnet array. Sortering ved fletning og Quicksort. Maksimal delsums problem. Tætteste par
Læs mereComputere og Netværk (dcomnet)
Computere og Netværk (dcomnet) http://www.cs.au.dk/dcomnet Jens Kargaard Madsen (jkm@iha.dk) Jens Bennedsen (jbb@iha.dk) dcomnet 1 Computere og netværk Beskrivelse At give den studerende kendskab til computere
Læs mereMandatory Assignment 1
Mandatory Assignment 1 Morten Franck Peter Hansen 9. oktober 2003 Gruppe 4, Parallelle Systemer (02220) Indhold 1 Trin 1 Petri Net 1 1.1 Model af pass().................................... 1 1.2 Model
Læs mereNetværksalgoritmer 1
Netværksalgoritmer 1 Netværksalgoritmer Netværksalgoritmer er algoritmer, der udføres på et netværk af computere Deres udførelse er distribueret Omfatter algoritmer for, hvorledes routere sender pakker
Læs merePerspektiverende Datalogi Internetalgoritmer. MapReduce. Gerth Stølting Brodal
Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal MapReduce Implementationer Dean, F. and Ghemawat, S. (2004) MapReduce: Simplified Data Processing on Large Clusters. In: Sixth
Læs mereDM01 DM01. 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 13/5-2003. Side 1 af 7
DM01 DM01 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 13/5-2003 Side 1 af 7 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DNA2:...4 2.1.1 METODER:...4
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Læs mereDANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
Læs mereDatalogi C + Datastrukturer og Algoritmer
Datalogi C + Datastrukturer og Algoritmer Velkommen til DatC erne Dagens emne: Hvad er D&A, mål for effektivitet Kursuslærer: Henning Christiansen henning@ruc.dk, http://www.ruc.dk/~henning Hjælpelærer
Læs mereTree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 11 sider Skriftlig eksamen i Datalogi Modul 1 Sommer 2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 10% Opgave 2 10%
Læs mereCivilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104
Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave
Læs mereO l e 3 1 2. 2 \n I b 1 1 1 1 7 \n. Ole 312.2 Ib 11117 TT_EOF. Ole 312.2. Ib 11117. Overview Tekstfiler, tegn og brikker
Programmering 1999 Forelæsning 8, fredag 24. september 1999 Overview Tekstfiler, tegn og brikker StreamTokenizer: indlæsning fra tekstfiler Formateret udskrift Programmering 1999 KVL Side 8-1 Tekstfiler
Læs mereProgrammering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden.
Programmering 1999 Forelæsning 5, tirsdag 14. september 1999 Oversigt Mere om klasser og objekter Klassefelter: static Konstante felter: final Indkapsling og synlighed: private og public Overlæsning af
Læs mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mereAlgoritmedesign med internetanvendelser ved Keld Helsgaun
Algoritmedesign med internetanvendelser ved Keld Helsgaun 1 Analyse af algoritmer Input Algoritme Output En algoritme er en trinvis metode til løsning af et problem i endelig tid 2 Algoritmebegrebet D.
Læs mereGrafteori, Kirsten Rosenkilde, september 2007 1. Grafteori
Grafteori, Kirsten Rosenkilde, september 007 1 1 Grafteori Grafteori Dette er en kort introduktion til de vigtigste begreber i grafteori samt eksempler på opgavetyper inden for emnet. 1.1 Definition af
Læs mereAlgoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Læs mereTilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.
Denne guide er oprindeligt udgivet på Eksperten.dk Tilfældige tal Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Den forudsætter
Læs mereSkriftlig Eksamen Algoritmer og Datastrukturer (dads)
Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Tirsdag den 27. maj 2003, kl. 9.00 3.00 Opgave (25%) For konstanten π = 3.4592... gælder identiteten π 2 6 =
Læs merepublic Set(int size) { this.listelement = new LinkedList<Integer>(); }
// Henri AYCARD import java.util.linkedlist; public class Set { private LinkedList listelement; public Set(int size) { this.listelement = new LinkedList(); public boolean contains(int
Læs mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
Læs mereForelæsning Uge 2 Torsdag
Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug
Læs mereSyntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik
Datalogi C, RUC Forelæsning 22. november 2004 Henning Christiansen Syntaks og syntaksgenkendelse, særligt regulære udtryk og tilstandsmaskiner og lidt om anvendelser i bioinformatik Dagens program Hvad
Læs mereArduino kursus lektion 4:
Arduino kursus lektion 4: I denne lektion skal vi bruge et digitalt termometer til at aflæse temperaturen! Herefter skal vi tænde 3 dioder som hver indikerer forskellige temperaturer! Opgave 1: Temperatursensor
Læs mereHvordan vælger jeg dokumentprofilen?
Hvordan vælger jeg dokumentprofilen? Valget af OIOUBL profil i en konkret dokumentudveksling vil bl.a. afhænge af, hvilke OIOUBL profiler den anden part i udvekslingen understøtter. Et konkret eksempel
Læs mereBOSK F2011, 1. del: Udsagnslogik
( p q) p q February 1, 2011 Sandhedsværdier og udsagnsvariable I dag handler det om logiske udsagn. Mere præcist om de logiske udsagn vi kan bygge ud fra sandhedsværdier, udsagnsvariable og logiske konnektiver.
Læs merePROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;
PROGRAM using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace EventManager class Program static void Main(string[] args) string hovedmenu = ""; string svar;
Læs mereEt generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:
Grådige algoritmer Grådige algoritmer Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel: Opbyg løsningen skridt for skridt ved hele tiden af vælge lige
Læs mereOversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 25. januar 2006
Københavns Universitet Naturvidenskabelig Embedseksamen Oversættere Vejledende løsninger til Skriftlig eksamen onsdag d. 25. januar 2006 Eksamenstiden er to timer. Opgavernes vægt i procent er angivet
Læs mereSkriftlig eksamen i Datalogi
Skriftlig eksamen i Datalogi Modul 1 Sommer 1998 Opgavesættet består af 4 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 24% Opgave 2 35% Opgave 3 15% Opgave 4 26% Alle sædvanlige hjælpemidler
Læs mereForelæsning Uge 2 Torsdag
Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet
Læs mereForelæsning Uge 5 Mandag
Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere
Læs mereVirkefeltsregler i Java
Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten
Læs mereHanne Niels Edith Harald Carsten Jørgen Henrik.
Programmering 1999 Forelæsning 18, fredag 5 november 1999 Anvendelse af udvalgssortering Quicksort Rapportopgave Programmering 1999 KVL Side 18-1 Eksempel 2 på anvendelse af udvalgssortering Sortering
Læs mereRMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Læs mereVideregående Programmering for Diplom-E Noter
Videregående Programmering for Diplom-E Noter 1. Uddelegering Ét af de væsentlige principper i objektorienteret programmering er, at enhver klasse selv skal kunne "klare ærterne". Enhver klasse skal altså
Læs mereBeregning af bestemt integrale ved partiel integration og integration ved substitution:
Beregning f estemt integrle ved prtiel integrtion og integrtion ved sustitution: f John V. Petersen Prtiel integrtion Sætning : Prtiel integrtion... si. Løsning f integrle... si. Plot f løsningsrelet...
Læs merePython 3 Matematik Programmerings kursus:
Python 3 Matematik Programmerings kursus: Kompendiet indeholder: Hello World (første program) Variable (String & Integer) Løkker (while-loop) Regneoperationer If-else statement Funktioner Opgaver o Læg
Læs mereGreenfoot En kort introduktion til Programmering og Objekt-Orientering
Greenfoot En kort introduktion til Programmering og Objekt-Orientering Greenfoot er et computer-program, som kan benyttes til at skrive andre computer-programmer, i et programmeringssprog kaldet Java.
Læs mereProjektenhedskursus (PE): Studiets metoder (SME)
Projektenhedskursus (PE): Studiets metoder (SME) Informatik og datateknik (IT & ED) Kursusholder: Lars Peter Jensen Tek-Nat BÅ - IT&ED - E04 1 Studiets metoder (SME) Dagens program: 1. Introduktion til
Læs mereBits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Læs mere9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter..
9.8 Kildekode Pakke Klasse Sidenummer db Aktivitetstype 91 Behandler 91 ConnectDB 92 DagensKommentar 93 Helligdag 94 IkkePrimaerTid 94 Patient 96 Patientaftale 96 PatientAktivitet 97 Patientgruppe 98 PatientgruppeItem
Læs mereMiniprojekt 3: Fejlkorligerende køder Fejlkorrigerende koder
Miniprojekt 3: Fejlkorligerende køder Fejlkorrigerende koder Denne note er skrevet med udgangspunkt i [, p 24-243, 249] Et videre studium kan eksempelvis tage udgangspunkt i [2] Eventuelle kommentarer
Læs mereclass Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.
Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:
Læs mereOversigt [LA] 6, 7, 8
Oversigt [LA] 6, 7, 8 Nøgleord og begreber Lineære ligningssystemer Løsningsmængdens struktur Test løsningsmængde Rækkereduktion Reduceret matrix Test ligningssystem Rækkeoperationsmatricer Rangformlen
Læs mereDatabaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Læs mereDesignMat Egenværdier og Egenvektorer
DesignMat Egenværdier og Egenvektorer Preben Alsholm September 008 1 Egenværdier og Egenvektorer 1.1 Definition og Eksempel 1 Definition og Eksempel 1 Lad V være et vektorrum over L (enten R eller C).
Læs mereSigmaT.
Java + Groovy Disposition Om SigmaT Eksempel på indlejring af Groovy Overvågning af PEM Ønske om dynamisk loaded Java uden at fifle med classloaderen Groovy til hjælp Opsamling hvad jeg ikke har fortalt
Læs mereSAX Simple API for XML.
SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller
Læs mere14.1 Internationale programmer
14.1 Internationale programmer Når et program skal anvendes af flere kulturer og sprog opstår behov for at programtekster, beløb og datoangivelser afhænger af landet og sproget, og man må i gang med at
Læs mereHashing og hashtabeller
Datastrukturer & Algoritmer, Datalogi C Forelæsning 12/11-2002 Hashing og hashtabeller Teknik til at repræsentere mængder Konstant tid for finde og indsætte men ingen sortering af elementerne Specielt
Læs mereIntro - Std.Arb. Version: 2014-12-11
Noterne til værktøjet indeholder de supplerende informationer og emner, som underviser kan anvende til at opnå en dybere indsigt i værktøjet. Noterne bør erstattes af undervisers egne erfaringer og oplevelser
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6
DM502 Forelæsning 6 Klasser og objekter Introduktion Math-klassen Indhold Klasser vs. objekter Først et tænkt eksempel: Vi vil lave en bil i Java 1. spørgsmål: Hvad karakteriserer en bil? Model År Farve...
Læs mereDATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004
Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes
Læs mereBRP Tal. Om computer-repræsentation og -manipulation. Logaritmer
BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave
Læs mereSpecifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api
Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...
Læs mereSecret Sharing. Olav Geil Institut for Matematiske Fag Aalborg Universitet email: olav@math.aau.dk URL: http://www.math.aau.dk/ olav.
1 Læsevejledning Secret Sharing Olav Geil Institut for Matematiske Fag Aalborg Universitet email: olav@math.aau.dk URL: http://www.math.aau.dk/ olav September 2006 Nærværende note er tænkt som et oplæg
Læs mereAsymptotisk analyse af algoritmers køretider
Asymptotisk analyse af algoritmers køretider Analyse af køretid Recall: Vi ønsker at vurdere (analysere) algoritmer på forhånd inden vi bruger lang tid på at implementere dem. De to primære spørgsmål:
Læs mereOm hvordan Google ordner websider
Om hvordan Google ordner websider Hans Anton Salomonsen March 14, 2008 Man oplever ofte at man efter at have givet Google et par søgeord lynhurtigt får oplysning om at der er fundet et stort antal - måske
Læs mere