Sie geben das Betriebssystem und die Sortierimplementierung nicht an. Ich nehme an, Sie meinen GNU-Sortierung. Sie sagen auch nicht, wie lange "viel Zeit" ist oder wie lange Sie damit rechnen. Am wichtigsten ist, dass Sie die E / A-Subsystemfähigkeit nicht erwähnen, die der bestimmende Faktor sein wird.
Ein gewöhnliches SATA-Laufwerk liefert ~ 150 MB / s. Bei dieser Geschwindigkeit dauert das Lesen Ihrer 150-GB-Datei 1000 Sekunden, ungefähr 15 Minuten. Versuche $ time cat filename >/dev/null
zu sehen. Wenn ~ 15 Minuten (oder was auch immer time cat
angezeigt wird) in Ordnung sind, können Sie sort (1) möglicherweise in etwa der dreifachen Zeit zum Laufen bringen, da auch die Ausgabe geschrieben werden muss.
Ihre beste Wahl für die Beschleunigung scheint parallel zu sein, da Ihre Daten in den Speicher passen und Sie über Ersatzprozessoren verfügen. Laut der Infoseite spielt die Puffergröße keine Rolle, weil
... diese Option wirkt sich nur auf die anfängliche Puffergröße aus. Der Puffer wächst über SIZE hinaus, wenn "sort" auf Eingabezeilen stößt, die größer als SIZE sind.
Während eine schnelle Suche anzeigt, dass GNU die Zusammenführungssortierung verwendet , die für die Parallelisierung geeignet ist.
Wenn Sie wirklich wissen möchten, wie die GNU-Sortierung die Puffergrößen bestimmt und welchen Algorithmus sie für die parallele Sortierung verwendet, stehen der Quellcode von coreutils und die zugehörige Dokumentation zur Verfügung.
Aber wenn ich du wäre, würde ich mich nicht darum kümmern. Was auch immer Sie tun master_matrix_unsorted.csv
, sort (1) ist sicherlich nicht der Aufgabe gewachsen.
Erstens wird Sie eines Tages eine CSV-Datei stolpern, da die CSV-Syntax weit über das Wissen von sort hinausgeht. Zweitens ist dies der langsamste Weg, da sort (1) gezwungen ist, ganze Zeilen (mit unbestimmter Länge) zu sortieren, nicht nur die zweite Spalte. Drittens, wenn Sie fertig sind, was werden Sie haben? Eine sortierte CSV-Datei. Ist das wirklich besser Warum ist die Bestellung so wichtig?
Das Sortieren klingt wie ein Schritt auf dem Weg zu einem Ziel, das wahrscheinlich eine Art Berechnung der Daten beinhaltet. Für diese Berechnung sind Zahlen im Binärformat erforderlich . In diesem Fall können Sie die CSV-Datei genauso gut zuerst in einem DBMS in ein besser handhabbares, berechenbares Binärformat bringen . Möglicherweise ist das Sortieren für das Endziel unnötig.