Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal.

Slides:



Advertisements
Lignende præsentationer
Supersøgerne i syvende
Advertisements

1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
MapReduce implementationer MapReduce Hadoop Apache open source projekt.
Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal.
Web question answering Is more always better? (Artikel 14)
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Google logo – 24. august Google logo – 24. august 2011.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Tema 3: Web-crawler Udvikle Web-crawler, som tager en URI som input og besøger samtlige sider på siten som URI’en peger på. Fx –
Tietgen Skolen Kvalitet og kvalitetssikring Review Test.
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal.
1 HMAK XMLRelationel model og XMLNOEA / PQC 2005 SQLServer og XML Hent data via URL Generering af xml –Raw –Auto –Explicit Hent data via template Evt.
Kortlægning & Søgning v. Rasmus. Kortlægning Knudepunkt (vertex) Forbindelse (edge)
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Mønstergenkendelse [CLRS, kapitel , 32.4]
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel 2.3, , problem 30.1.c] Gerth Stølting Brodal.
Udregning af UseCasePoints UCP = UUCP*TCF*EF UseCasePoint = Ujusteret Use Case Point * Tekniske Komplexitets Faktor * Miljø Mæssige Faktor.
IT-højskolen – E-Buss Knowledge Management Session 4 Miniprojektet Organisatorisk læring.
Delprøve i kurset ”Calculus og indledende lineær algebra” 29. oktober 2014 Delprøve i M2CAL2 29. oktober A. B. A. 1x1 + 1x4 + 1x(-1) = 4 B. 1x4 =
Kjeld Svidt September 2005 Synkront net-baseret samarbejde - hands-on øvelser.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Perspektiverende Datalogi Internetalgoritmer Gerth Stølting Brodal.
Statistik for geografer
GRAFISK DESIGN HVAD SKAL VI PÅ KURSET OG HVAD ER GRAFISK DESIGN Vi møder ordet design første gang 1500 tallet i et engelsk leksikon. ”Skitse til noget.
Digital kommunikation og æstetik i praksis 1. maj Søgemaskiner og optimering.
Perspektiverende Datalogi 2011 Internetalgoritmer Gerth Stølting Brodal Christian S. Jensen Erik Meineche Schmidt Niels Olof Bouvin.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Fremstilling af Simple WEB steder [ITPL] Foråret 2004
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Kjeld Svidt September 2004 Synkront net-baseret samarbejde - hands-on øvelser.
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Computer Science Day 2013, May Distinguished Lecture: Andy Yao, Tsinghua University Welcome and the 'Lecturer of the Year' award.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Suffiks træer [GT, kapitel 9.2], Suffiks arrays [Smyth, kapitel 5.3.2]
Algoritmer og Datastrukturer 2 Suffix træer og Suffix arrays [GT, kapitel 9.2],[Smyth, kapitel 5.3.2] Gerth Stølting Brodal Aarhus Universitet.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
Algoritmer og Datastrukturer 2 Suffix træer og Suffix arrays [Smyth, kapitel 5.3.2], [GT, kapitel 9.2] Gerth Stølting Brodal Aarhus Universitet.
Statistik for geografer
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Suffix træer [GT, kapitel 9.2], Suffix arrays [Smyth, kapitel 5.3.2]
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
23. juni 2015 Det Semantiske Web Mads Carlsen. 23. juni 2015 Problemer med det nuværende Internet Ingen semantiske specifikationer. Søgning giver mange.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Synkront net-baseret samarbejde - hands-on øvelser
Abstraktioner.
Algoritmer og Datastrukturer 1
Tre lags arkitektur.
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Algoritmer og Datastrukturer 1
2017.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ]
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer Grådige Algoritmer [CLRS ]
Reaktionshastighed Introduktion Beskrivelse af aktiviteten
Grundlæggende Algoritmer og Datastrukturer
En trin-for-trin guide
Præsentationens transcript:

Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal

MapReduce Implementationer MapReduce Hadoop Apache open source projekt Dean, F. and Ghemawat, S. (2004) MapReduce: Simplified Data Processing on Large Clusters. In: Sixth Symposium on Operating System Design and Implementation (OSDI 2004):

Parallelle algoritmer – Teori vs Praksis Behandling af massiv data kræver parallelle algoritmer (fx Google) Ideelle Teoretiske Verden – mange maskiner samarbejder synkront – kan kommunikere i hvert beregningsskridt – utallige teoretiske algoritmer udviklet Ønskes: Simpel men slagkraftig parallel model Praksis – meget svært at programmere – korrekthed, concurrency problemer, … – maskiner arbejder med forskellige hastigheder, strejker, bryder sammen

Afgrænsning af Kommunikation tid Beregning på uafhængige maskiner Synkronisering & kommunikation A B C D E X1X1 X2X2 X3X3 Y1Y1 Y2Y2 Z1Z1 W1W1 W2W2 V1V1 V2V2 V3V3 X1X1 X2X2 X3X3 Y1Y1 Y2Y2 Z1Z1 W1W1 W2W2 V1V1 V2V2 V3V3

Parallelle Programmer Traditionelt specielt udviklede programmer for hvert problem man ønsker at løse – mange ikke-trivielle detaljer i parallel programmer – fejl-tolerance (1000’er af maskiner fejler regelmæssigt) – fordeling af opgaver blandt maskiner – balancering af arbejdet blandt maskiner MapReduce interfacet (, 2003) – håndter ovenstående automatisk – meget begrænsede kommunikation mellem maskiner – algoritmen udføres i Map og Reduce faser

MapReduce Brugeren skal definere to funktioner map v1  List[ (k,v2) ] reduce (k, List[ v2 ])  List[ v3 ] Eksempel: Antal forekomster af ord i en tekstsamling ( ” ”der var en gang en...” )  [ (”der”, ”1”), (”var”, ”1”), (”en”, ”1”), (”gang”, ”1”), (”en”, ”1”)... ] ( ” ”en lang gang...” )  [ (”en”, ”1”), (”lang”, ”1”), (”gang”, ”1”),... ] ( ”en”, [ ”1”, ”1”, ”1” ] )  [ ”en 3” ] ( ”gang”, [ ”1”, ”1” ] )  [ ”gang 2” ]... Output fra en map-reduce kan være input til den næste map-reduce map reduce

”Maskine ID” MapReduce map reduce Map-opgaverne ligger spredt ud på maskinerne (i et GFS hvor data typisk er replikleret 3 gange) Hver maskine udfører et antal uafhængige map-opgaver 1 2 Sorter alle parene – varetages automatisk af MapReduce biblioteket Hver Reduce-opgave ender samlet på en maskine En reduce-opgave løses sekventielt på én maskine (mulig FLASKEHALS ) Hver maskine udfører et antal uafhængige reduce-opgaver Output er en delliste af det samlede output 3 Master = en maskine der 1.planlægger og fordeler opgaverne 2.genstarter hængene opgaver på andre maskiner ( ” ”der var en gang en...” )  [ (”der”, ”1”), (”var”, ”1”), (”en”, ”1”), (”gang”, ”1”), (”en”, ”1”)... ] ( ” ”en lang gang...” )  [ (”en”, ”1”), (”lang”, ”1”), (”gang”, ”1”),... ] ( ”en”, [ ”1”, ”1”, ”1” ] )  [ ”en 3” ] ( ”gang”, [ ”1”, ”1” ] )  [ ”gang 2” ]...

En søgemaskines dele Indsamling af data Webcrawling (gennemløb af internet) Indeksering data Parsning af dokumenter Leksikon: indeks (ordbog) over alle ord mødt Inverteret fil: for alle ord i leksikon, angiv i hvilke dokumenter de findes Søgning i data Find alle dokumenter med søgeordene Rank dokumenterne

Input:List[ (URL, tekst) ] Output:List[ (Ord, URL’er) ] Inverteret fil Map (URL, tekst)  [ (ord 1, URL),..., (ord k, URL) ] Reduce (ord, [ URL 1,..., URL m ] )  [ (ord, URL 1 +∙∙∙+ URL m ) ]

Input:List[ (i, j) ] Output:List[ (i, indgrad(i)) ] Indgrad af alle siderne Map (i, j)  [ ( j, 1) ] Reduce (i, [ 1, 1,..., 1 ] )  [ (i, k) ] k = indgrad(i)

Input:[ x 1,...,x n ] Ouput:[ sum(x 1,..., x n ) ] Sum Map x i  [ (0, x i ) ] Reduce (0, [ x 1,..., x n ] )  [ x 1 +∙∙∙+ x n ] Map x i  [ (random(1..R), x i ) ] Reduce (r, [ x i 1,..., x i k ] )  [ x i 1 +∙∙∙+ x i k ] R ≈ antal maskiner 1 2

Input:List[ (i, j) ] Ouput:List[ (i, p i (s) ) ] Øvelser - PageRank

PageRank