Ruby-Datei parallelisim lesen

Ich habe eine Datei mit vielen Zeilen (etwa 1 Milliarde). Ein Skript durchläuft alle diese Zeilen, um sie mit einem anderen Datensatz zu vergleichen.

Da dies momentan auf 1 Thread / 1 Core ausgeführt wird, frage ich mich, ob ich mehrere Forks starten könnte, die jeweils einen Teil der Datei gleichzeitig verarbeiten.

Die einzige Lösung, die mir bisher in den Sinn kam, ist diesed Unix-Befehl. Mit sed ist es möglich, "Slices" einer Datei zu lesen (Zeile x bis Zeile y). So könnten ein paar Gabeln die Ausgabe der entsprechenden Samen verarbeiten. Das Problem ist jedoch, dass Ruby zuerst die gesamte sed-Ausgabe in den Arbeitsspeicher lädt.

Gibt es dafür bessere Lösungen als sed oder gibt es eine Möglichkeit, die sed-Ausgabe in Ruby zu "streamen"?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage