In meiner Software immer las ich Informationen aus einem Strom X (stdout eines anderen Prozesses) mit Prozess , dann habe ich die Informationen lesen zu den anderen N-1 senden Prozesse und schließlich sammelte ich in Prozess alle Daten durch die N Prozesse ausgearbeitet.Vorschlag Distributed Computing, Daten aus einem Stream
Jetzt ist meine Frage: "Was ist der effizienteste Weg, um die Informationen aus dem Stream zwischen Prozessen zu teilen?"
PS. Prozesse können sich auch in verschiedenen Computern befinden, die über ein Netzwerk verbunden sind.
Hier habe ich einige Möglichkeiten aufzählen:
- Counting Linien Strom (M Linien), Speichern auf N Dateien M/N Linien und jedem Prozess 1 Datei senden.
- Zählen Zeilen des Streams (M Zeilen), allokieren Sie genügend Speicher, um alle Informationen zu enthalten, senden Sie an jeden Prozess direkt die Informationen.
Aber ich denke, dass diese ein Problem sein können:
- Schreiben so viele Dateien können ein Overhead und Senden von Dateien über ein Netzwerk sein, ist gar nicht so effizient.
- Ich brauche genug Speicher in Prozess , so dass Prozess kann ein Engpass sein.
Was schlagen Sie vor, haben Sie bessere Ideen? Ich verwende MPI auf C, um diese Berechnung durchzuführen.