Linux のマージソートはフルソートよりも*遅い*ですか?

Linux のマージソートはフルソートよりも*遅い*ですか?

私は Linux のマージ ソート (sort -m) を使用して、事前にソートされたファイルの大きなグループをソートしています。マージ ソートは、ソートされていないデータのフル ソートよりもかなり高速であると想定していましたが、実際にはそうではありませんでした。たとえば、10000 行のソートされていないデータを含む 1000 個のファイルに対してフル ソートを実行すると、次のようになります。

/bin/time -o ./full_sort.time -v sort --parallel 8 -k1,1g ./data/unsorted/f* > /dev/null

次の時間が表示されます:

User time (seconds): 104.70
System time (seconds): 0.71
Percent of CPU this job got: 440%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:23.90

ここで、データを事前にソートし、-m オプションを呼び出してまったく同じソートを実行すると、次のようになります。

/bin/time -o ./merge_sort.time -v sort --parallel 8 -k1,1g -m ./data/presorted/f* > /dev/null

次のような時があります:

User time (seconds): 59.34
System time (seconds): 2.15
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:01.60

マージソートのウォールタイムは実際にはもっとゆっくりフルソートよりも速いです!繰り返しになりますが、データセット内の各入力ファイルは事前にソートされており、マージステップのみが残っているため、マージソートの方がかなり高速になると思っていました。何か見落としていることがあるはずです。どこが間違っているのか、誰か説明してもらえませんか?

ありがとう、JCS

関連情報