Multi-vejs hobe med ekstra bytes Foredrag: Claus Jensen Projektmedlemmer: Jyrki Katajainen, Fabio Vitale, Claus Jensen.

Slides:



Advertisements
Lignende præsentationer
Søgning efter en fil Du vil finde et Word dokument som du ikke kan huske hvor du har placeret men du kan huske et af ordene i dokumentet Du får dette.
Advertisements

Hvad er behovene i Danmark?
IPad, en naturlig del af lege- og læringsmiljøet i Daginstitutionen Mariehønen i Jelling  Mariehønen i Jelling er en aldersintegreret Daginstitution med.
Workshop om IT-strategi 12/ Hvorfor •Den offentlige sektor reagerer på mange forskellige impulser, bl.a. fra borgerne, erhvervslivet, internationale.
Modul 3C Ideudvikling med anvendelse af principper som stimuli.
Struktur: ”Quiz og byt”
Bølger – Lys Redegør for bølgeudbredelsens centrale begreber herunder interferens. Redegør for gitterligningen og for det tilhørende forsøg. Redegør for.
Hvilken forskel skaber mest værdi for brugerne?
DEN PRIMÆRE NAVIGATION JOEK © TEC 2011 Dit websteds primære navigation er det område på sitet, der indeholder links til de primære sektioner af dit websted,
Hvordan programmerer man?? STREAM - en model. Programmører arbejder ofte i teams Hver programmør arbejder på sin del af en større helhed.
Narrativitet: Organisationen som myriader af historier
Børn, bevægelse og motivation
REGISTRERINGSDATABASEN
Koncept Rotary Youth Exchange – Multi District Denmark.
Computerens anatomi.
Challenges in Web Search Engines • Spam • Content Quality • Quality Evaluation • Web Conventions • Duplicate Hosts • Vaguely-Structured Data.
Input FMEA Output Shit in = Shit out FMEA
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
Organisationstruktur
Cooperativ learning - også kaldet CL
Sensus Tilgængelighed i PDF-filer - Adobe Professional Helene Nørgaard Bech Sensus ApS.
Søgning & sortering Intro søgning Lineær søgning Binær søgning
07.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Funktioner Oversigt, principper og teknikker Kapitel 7.
1 UNION-FIND. 2 inddata: en følge af heltalspar (p, q); betydning: p er “forbundet med” q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
FEN Rekursion og induktion1 Induktion og (især) rekursion Mange begreber defineres ud fra en basis og så en gentagen anvendelse af et antal regler.
Begreber og Redskaber 2 BRP.
Datastrukturer og Collections Rasmus D. Lehrmann DM
Filer Hvordan søges der efter en Word-fil = med et dokument. eller en billed-fil Sommer.
Løsning – mergeSort (Effektivitet af sortering) Definition af t(n): t(n)= 2t(n) + n.
Videregående pc-vejledning Modul 03: Harddisken 2 60+Bornholm.
WordNet Elektronisk leksikalsk database Semantisk ordbog Ca
Sproghistorie Syntaks (struktur) Semantik (Indhold)
Lektion 7 Læsestof: Kopier fra Caranno
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
Objekter og klasser Rasmus D. Lehrmann DM
Interaktionsformer En begrebsmæssig model kan understøttes med forskellige interaktionsformer Interaktionsformen fastlægger centrale egenskaber: Hvordan.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
1 Sortering. 2 Sortering ved fletning (merge-sort) 7 2 | 9 4  | 2  2 79 | 4   72  29  94  4.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Collaborative Practice Research Lars Mathiassen eCommerce Institute, Georgia State University.
…helt naturligt ! Velkommen til Meldgaard. Sende data til Shop Nav integrationsmodulet til eSellerCloud indeholder 3 forskellige måder at sende data til.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
Proteiner og massespektrometri
Indledende Programmering Uge 6 - Efterår 2006
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
Single-Source Shortest Path i ekstern hukommelse Jonas Thomsen Ph.d. studerende Kvalifikationseksamen 27. september 2004.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
Inklusion for alle – Illusion eller virkelighed?
Kommunikation Hvad er det og hvordan udvikler vi bedst muligt sproget sammen med vores børn? Hej jeg hedder Mette og er dagtilbuddets sprogvejleder, jeg.
FILUR Nyt materiale til børnehavebørn med udgangspunkt i dialogisk læsning.
SKRIVEFAGET Modul 2: Tekstsammenhæng Lektion 6: Tekstniveauer.
SKRIVEFAGET Modul 2: Tekstsammenhæng Lektion 6: Tekstniveauer.
TEMA 1 Kortlægning: Mobilitet i hverdagen
Kvalitative og kvantitative undersøgelser
Comparative Method Uge 38
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Algoritmer og Datastrukturer 1
Cache-Oblivious Searching and Sorting
BASELINEUNDERSØGELSEN 2015 – forældre til folkeskoleelever
Fusionsprocesser i stjerner
Grundlæggende Algoritmer og Datastrukturer
Præsentationens transcript:

Multi-vejs hobe med ekstra bytes Foredrag: Claus Jensen Projektmedlemmer: Jyrki Katajainen, Fabio Vitale, Claus Jensen

Hob En hob er en sekvens, som gemmer elementerne af et venstre komplet træ i bredde først orden. Det gælder for hver gren i træet, at elementerne i en knudes børn er mindre end knudens eget element ud fra en given ordensfunktion.

Implicit hob Vi har valgt at bruge en implicit hob. En implicit hob er en hob, som er implementeret uden brug af pointers. I stedet for bruges indeks, og der navigeres rundt vha. beregninger på disse indeks.

Implicit hob Tallene repræsenterer indeksværdien.

Binær hob Binære hobe er den type hobe, som kendes fra tekstbøgerne. En binær hob kan også kaldes en 2-vejs hob, og man kan sige, at den har grad (degree) lig med 2.

Binær hob

Multi-vejs hob Det er muligt at generalisere hob- begrebet til også at omfatte hobe med grader højere end 2. Vores udgangspunkt har været at eksperimentere med følgende hob grader:

Multi-vejs hob Baggrunden for, at vi har valgt at eksperimentere med de nævnte hob grader, er at eksperimenter har vist at 4-vejs og 8-vejs hobe har en bedre performance end 2-vejs hobe.

4-vejs hob

Ekstra information Når man bevæger sig ned gennem en hob, vil man normalt finde ”top" barnet on the fly. Det betyder, at man risikerer at foretage en masse unødvendige sammenligninger, da der allerede tidligere kan være blevet foretaget en sammenligning mellem de berørte elementer.

Ekstra information Ved at gemme ekstra information i forbindelse med hobens knuder kan antallet af sammenligninger nedsættes.

Ekstra information Baggrunden for, at vi har valgt at eksperimentere med brugen af ekstra information, er, at forsøg med hobe har vist, at der kan opnås en bedre performance ved at bruge ekstra information.

Ekstra information Vi har eksperimenteret med forskellige strukturer til opbevaring af den ekstra information. Følgende strukturer er blevet implementeret: En bit-struktur, navigation pile og selection tree.

Ekstra information

Zero-rooted Zero-rooted eller D-rooted hobe er en omstrukturering af hob-strukturen, som har til formål at forbedre performance. En zero-rooted hob har i modsætning til en normal hob ikke een enkelt rodknude, men derimod et antal rodknuder svarende til hobens grad. Eller man kan alternativt sige, at hoben ingen rodknude har.

Zero-rooted Ideen bag brugen af zero-rooted-strukturen er at gøre hoben et niveau mindre dyb, og på denne måde spare en sammenligning. Dette vil ikke have betydning for hobe med en lille grad, men når graden vokser vil hobens dybde mindskes, og fordelen ved at bruge zero-rooted-strukturen vil samtidig vokse.

Zero-rooted

Local heaps En anden alternativ måde at strukturere sin hob på er at bruge et van Emde Boas-layout. I et van Emde Boas layout grupperes børn og deres forældre sammen, så de ligger tæt på hinanden i hukommelsen.

Local heaps Eksperimenter med brugen af van Emde Boas layoutet i forbindelse med træer har vist positive resultater. Så på den baggrund har vi valgt også at eksperimentere med dette layout for hobe.

Indsætningsbuffer En af de metoder, som vi har overvejet for at forbedre performance af vores hob-funktioner er brugen af en indsætningsbuffer. Ved at bruge en indsætningsbuffer undgår man at foretage shift up for hvert nyt element.

Indsætningsbuffer Vi har valgt 2*graden som størrelsen af vores buffer. Bufferen bruger den samme type funktioner og ekstra information, som hob strukturen bruger.

Framework Vores framework er opdelt i en række moduler. Der findes en række overordnede funktioner samlet i et hob-modul, hvis interface afspejler STL's hob grænseflade. De overordnede funktioner bruger et modul, som indeholder utility funktioner til at udføre shift up og shift down.

Framework Både hob-modulet og utility-modulet bruger yderligere et modul. Dette modul er et policy-baseret modul. Det policy-baserede modul indeholder en række layout-funktioner og en række ”top”-funktioner.

Framework Policy-modulet består af en række funktioner, som både findes i en generaliseret udgave og i en udgave specialiseret for en bestemt grad.

Resultater Vores resultater har indtil videre ikke været særlig opmuntrende, men alle muligheder er ikke fuldt udforsket endnu. Et af de åbne spørgsmål er, om vi bør måle wall-clock time i stedet for CPU time.

Resultater Vi mangler også at foretage benchmark-målinger af følgende tilfælde: Store elementer. Dyre sammenligninger.

Overraskende resultater Der har i forbindelse med benchmark- kørslerne vist sig en række overraskende resultater. Af disse kan nævnes følgende: Det er bedre at bruge interger i stedet for char til opbevaring af den ekstra information, også selvom dette giver et større pladsforbrug.

Overraskende resultater Næstede if sætninger er dyre, også selvom der kun bruges få niveauer. Størrelsen af den ekstra informations pladsforbrug, har ikke afgørende betydning for kørselstiden.