In some situations sort wastes cpu-cycles
of all available cpus.
Hi,
I refer to 'sort' of the following Version:
$ sort --version
sort (GNU coreutils) 8.7
Packaged by Gentoo (8.7 (p1))
Copyright (C) 2010 Free Software
Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>.
This is free software: you are free to
change and redistribute it.
There is NO WARRANTY, to the extent
permitted by law.
Written by Mike Haertel and Paul Eggert.
on the system:
$ uname -a
Linux CUDA 2.6.38-gentoo-r6 #12 SMP Fri Sep
14 12:59:07 CEST 2012 x86_64 Intel(R) Xeon(R) CPU E5645 @ 2.40GHz GenuineIntel
GNU/Linux
The problem causes, if the input of sort is
very long but the output is not taken.
if i call:
# seq 1 10000000 | sort -R | wc -l
10000000
then sort itself uses only circa 10 cpus:
top:
8316 root 20 0 359m 185m 676 S
1009 1.5 4:08.18 sort
or ca. 4 cpus in this case:
# seq 1 10000000 | sort -n | wc -l
10000000
top:
8782 root 20 0 295m 185m 672 S
382 1.5 0:25.18 sort
while sort is running, this behaviour is
ok. it would be ok too, if
it would use all cpus.
but, if i use:
# seq 1 1000000 | sort -n | less
and while im not scrolling to the bottom in
'less'
sort uses all cpus
top:
9421 root 20 0 447m 109m 660 R
2295 0.9 3:12.72 sort
in this case, sort is already done sorting
(it took and sorted
the whole input and 'less' displays values).
but it takes a lot of cpu-cycles on all
cpus.
if i scroll to the bottom, 'less' takes all
values of the sort output
and sort will end; this is ok.
Regards
Mit freundlichen Grüßen
Frank Schwidom
Dipl.-Inf. (FH)
Hochschule Lausitz (FH)
Fertigungstechnik/ Tribologie
Prof. Dr.-Ing. R. Winkelmann
Großenhainer Str. 57
01968 Senftenberg
Fone : +49 (0) 3573 85 435
Fax: +49 (0)
3573 85 426
Email: Frank.Schwidom@HS-Lausitz.de
Homepage: http://www2.fh-lausitz.de/fhl/mb/labor/tribologie/Index.html