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.