Frage

Die Fragen sind also: 1. Ist MapReduce Overhead für das folgende Problem zu hoch? Hat jemand eine Vorstellung davon, wie lange jeder Karten-/Reduzierungszyklus (zum Beispiel in Disco) für einen sehr leichten Job dauert? 2. Gibt es eine bessere Alternative zu MapReduce für dieses Problem?

In MAP reduzieren mein Programm aus 60 Kartenphasen und 60 Reduzierungsphasen, die alle zusammen in 1 Sekunde abgeschlossen werden müssen. Eines der Probleme, die ich auf diese Weise lösen muss, ist eine minimale Suche mit etwa 64000 Variablen. Die hessische Matrix für die Suche ist eine Blockmatrix, 1000 Blöcke der Größe 64x64 entlang einer diagonalen und eine Reihe von Blöcken auf der rechten und unteren Runde. Der letzte Abschnitt von: Blockmatrix -Inversionsalgorithmus zeigt, wie das gemacht wird. Jede der Schur ergänzt S_A und S_D können in einem MapReduce -Schritt berechnet werden. Die Berechnung der Inverse macht einen weiteren Schritt.

MPI4PY scheint eine gute Wette zu sein. Jeder Prozess kann nach jedem Schritt einen Berechnungschritt ausführen und an den Client zurückreichen, und der Client kann sich mit neuen Zustandsvariablen melden, damit der Zyklus fortgesetzt werden kann. Auf diese Weise kann der Prozesszustand nicht verloren gehen. Die Berechnung kann mit Aktualisierungen fortgesetzt werden.http://mpi4py.scipy.org/docs/usrman/index.html

Dieses Wiki enthält einige Vorschläge, hat aber eine Richtung in der am weitesten entwickelten Lösung:http://wiki.python.org/moin/parallelprocessing

Vielen Dank !

War es hilfreich?

Lösung

MPI ist ein Kommunikationsprotokoll, das die Implementierung der parallelen Verarbeitung durch Übergabe von Nachrichten zwischen Clusterknoten ermöglicht. Das mit MPI implementierte Parallelverarbeitungsmodell hängt vom Programmierer ab.

Ich habe keine Erfahrung mit MapReduce gemacht, aber es scheint mir, dass es sich um ein spezifisches paralleles Verarbeitungsmodell handelt und einfach zu implementieren ist. Diese Art von Abstraktion sollte Ihnen die Programmierzeit sparen und kann eine geeignete Lösung für Ihr Problem bieten oder nicht. Es hängt alles von der Natur ab, was Sie versuchen zu tun.

Der Trick bei der parallele Verarbeitung besteht darin, dass die am besten geeignete Lösung häufig problemspezifisch ist und ohne mehr Einzelheiten über Ihr Problem zu kennen, schwierig ist, Empfehlungen abzugeben.

Wenn Sie uns mehr über die Umgebung erzählen können, in der Sie Ihre Arbeit ausführen und wo Ihr Programm passt Flynns Taxonomie, Ich kann vielleicht einige hilfreiche Vorschläge machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top