Linux 병합 정렬은 전체 정렬보다 *느리게* 됩니까?

Linux 병합 정렬은 전체 정렬보다 *느리게* 됩니까?

나는 미리 정렬된 파일의 큰 그룹을 정렬하기 위해 Linux 병합 정렬(sort -m)을 사용하고 있습니다. 나는 병합 정렬이 정렬되지 않은 데이터에 대한 전체 정렬보다 상당히 빠르다고 가정했지만, 내가 보고 있는 것은 그렇지 않습니다. 예를 들어, 정렬되지 않은 데이터 10,000줄이 포함된 1,000개의 파일에 대해 전체 정렬을 수행하는 경우:

/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

관련 정보