Zeitkomplexitätsanalyse für das Map-Reduce-Modell


8

Ich versuche, meinen Algorithmus so zu gestalten, dass er auf dem Hadoop / MapReduce-Paradigma ausgeführt wird. Ich habe mich gefragt, ob es einen ganzheitlichen Ansatz zur Messung der Zeitkomplexität für Algorithmen auf Big Data-Plattformen gibt.

Als einfaches Beispiel kann für O (n) + C ein Durchschnitt von n (= 1 Milliarde) Zahlen genommen werden (unter der Annahme, dass die Division eine konstante Zeitoperation ist). Wenn ich diesen massiv parallelisierbaren Algorithmus für Map Reduce durch Teilen von Daten über k Knoten unterbreche, wird meine Zeitkomplexität einfach zu O (n / k) + C + C '. Hier kann C 'als Zeitaufwand für die Planung des Startjobs angenommen werden. Beachten Sie, dass kein Mischen erforderlich war und die Arbeit des Reduzierers fast trivial war.

Ich interessiere mich für eine vollständigere Analyse des Algorithmus mit iterativen Schleifen über Daten und mit umfangreichen Misch- und Reduzierungsoperationen. Ich möchte, wenn möglich, die E / A-Operationen und Netzwerkübertragungen von Daten einbeziehen.


2
Es gibt keine Möglichkeit , Asymptotika zu messen. Interessieren Sie sich für Benchmarks oder formale Analysen? Letzteres ist in parallelen Einstellungen schwierig und hängt von Ihrem genauen Maschinenmodell ab. Wenn Sie ein Modell annehmen, das Sie während der Analyse verarbeiten können, sagen die Ergebnisse in der Praxis wahrscheinlich nicht viel aus.
Raphael

2
Das sei gesagt, diese Frage von Bedeutung sein kann.
Raphael

1
Haben Sie Mining of Massive Datasets gesehen ? Die Abschnitte 2.5 und 2.6 befassen sich mit der Minimierung der Kommunikationskosten (I / O) und nicht mit der Berechnung der Zeit, die normalerweise der eigentliche Flaschenhals in Hadoop ist
Eric Farng

In den Zeitungen, die ich gelesen habe, analysieren Sie die zeitliche Komplexität nicht wirklich. Sie zählen die Anzahl der Runden und die Datenmenge, die Sie in jeder Runde verarbeiten müssen (die Kommunikationskomplexität). Das Mischen der Daten durch das Netzwerk ist normalerweise der Engpass bei der Kartenreduzierung.
AdrianN

Antworten:


0

S. Arora, B. Barak, Moderner Ansatz der Computerkomplexität, Kapitel 13 ist eine gute Einführung in dieses Thema:

Die Kommunikationskomplexität betrifft das folgende Szenario. Es gibt zwei Spieler mit unbegrenzter Rechenleistung, von denen jeder eine besitztn Biteingabe, sagen wir x und y. Keiner kennt die Eingabe des anderen und möchte diese gemeinsam berechnenf(x,y) wo die Funktion f::{0,1}}n×{0,1}}n{0,1}}ist beiden bekannt. Darüber hinaus hatten sie diese Situation vorausgesehen (z. B. könnte eine der Parteien ein Raumschiff und die andere die Basisstation auf der Erde sein), also hatten sie dies bereits getan - bevor sie ihre Eingaben kanntenx,y- ein Protokoll für die Kommunikation vereinbart. Die Kosten dieses Protokolls sind die Anzahl der Bits, die von den Spielern für die Auswahl der Eingänge im ungünstigsten Fall übertragen werdenx,y.


-1

Sie sehen, Sie haben Recht, aber Sie wissen, dass es ziemlich schwierig ist, eine bestimmte zeitliche Komplexität der Kartenreduzierung zu sagen. Das hängt von der Abfrage ab. In diesem Fall sollte es jedoch wegen k Knoten o (nlogn / k) + c + c 'sein. Diese kurzen Abfragen, einschließlich einer Mapping-Phase einer kartenreduzierenden Texhnique, folgen einem Btree-Konzept. Von diesem Ort aus können wir für innere Berechnungen sagen, dass seine zeitliche Komplexität> o (nlogn) + c + c 'ist.

Korrigieren Sie bitte meine Vorschläge.


2
Willkommen auf der Seite! Wenn Sie "Bitte korrigieren Sie meine Vorschläge" sagen, bedeutet dies, dass Sie Ihrer Antwort nicht sehr sicher sind, was eher nach einer Vermutung als nach einer tatsächlichen Antwort klingt. Natürlich könnte jede Antwort falsch sein, aber wir hoffen, dass die Person, die die Antwort geschrieben hat, glaubt, dass sie richtig ist!
David Richerby
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.