parallel: --number-of-cpus bug on Linux 2.6.26 fixed.

This commit is contained in:
Ole Tange 2012-09-03 23:09:00 +02:00
parent 3b2b73997e
commit 810b6fdc93
6 changed files with 33 additions and 12 deletions

View file

@ -1,3 +1,24 @@
=head1 What is GNU Parallel used for
Searching for transit planets using data from the Kepler space telescope.
Searching 1700 genomes for 1000-10000 protein sequences using Amazon
EC2 compute cloud.
Processing Earth Observation data from satellites to grep for pieces
of information.
Running tons of simulations of granular materials.
Converting formats of movie frames in the film industry.
Computational fluid dynamics. Numerical simulation of the compressible
Navier-Stokes equations.
Analysing data and running simulations for searching for the Higgs
boson at the Tevatron.
=head1 search terms =head1 search terms
run commands in parallel run commands in parallel

View file

@ -171,18 +171,15 @@ cc:Sandro Cazzaniga <kharec@mandriva.org>,
Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>, Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>,
Jesse Alama <jesse.alama@gmail.com> Jesse Alama <jesse.alama@gmail.com>
Subject: GNU Parallel 20120822 ('Boson') released Subject: GNU Parallel 20120922 ('X') released
GNU Parallel 20120822 ('Boson') has been released. It is GNU Parallel 20120922 ('X') has been released. It is
available for download at: http://ftp.gnu.org/gnu/parallel/ available for download at: http://ftp.gnu.org/gnu/parallel/
New in this release: New in this release:
* Due to a bugfix the main flow has changed. Making this release beta * When bash just isnt quick enough.
quality. https://soimasysadmin.wordpress.com/2012/08/15/gnu-parallel-when-bash-just-isnt-quick-enough/
* Parallel Proxy Scraper & Checker Tool
https://www.youtube.com/watch?v=iXCeR_XsP6o
* Bug fixes and man page updates. * Bug fixes and man page updates.

View file

@ -2791,18 +2791,21 @@ sub no_of_cpus_gnu_linux {
# Number of physical CPUs on GNU/Linux # Number of physical CPUs on GNU/Linux
# undef if not GNU/Linux # undef if not GNU/Linux
my $no_of_cpus; my $no_of_cpus;
my $no_of_cores;
if(-e "/proc/cpuinfo") { if(-e "/proc/cpuinfo") {
$no_of_cpus = 0; $no_of_cpus = 0;
$no_of_cores = 0;
my %seen; my %seen;
open(IN,"cat /proc/cpuinfo|") || return undef; open(IN,"cat /proc/cpuinfo|") || return undef;
while(<IN>) { while(<IN>) {
if(/^physical id.*[:](.*)/ and not $seen{$1}++) { if(/^physical id.*[:](.*)/ and not $seen{$1}++) {
$no_of_cpus++; $no_of_cpus++;
} }
/^processor.*[:]/ and $no_of_cores++;
} }
close IN; close IN;
} }
return $no_of_cpus; return ($no_of_cpus||$no_of_cores);
} }
sub no_of_cores_gnu_linux { sub no_of_cores_gnu_linux {

View file

@ -2271,7 +2271,7 @@ The idea is to put the jobs into a file and have GNU B<parallel> read
from that continuously. As GNU B<parallel> will stop at end of file we from that continuously. As GNU B<parallel> will stop at end of file we
use B<tail> to continue reading: use B<tail> to continue reading:
B<echo >>B<jobqueue>; B<tail -f jobqueue | parallel> B<true >>B<jobqueue>; B<tail -f jobqueue | parallel>
To submit your jobs to the queue: To submit your jobs to the queue:

View file

@ -2447,7 +2447,7 @@ The idea is to put the jobs into a file and have GNU @strong{parallel} read
from that continuously. As GNU @strong{parallel} will stop at end of file we from that continuously. As GNU @strong{parallel} will stop at end of file we
use @strong{tail} to continue reading: use @strong{tail} to continue reading:
@strong{echo }>@strong{jobqueue}; @strong{tail -f jobqueue | parallel} @strong{true }>@strong{jobqueue}; @strong{tail -f jobqueue | parallel}
To submit your jobs to the queue: To submit your jobs to the queue:

View file

@ -39,10 +39,10 @@ echo '### Test --spreadstdin --files';
nice seq 1 1000000 | shuf | parallel --files --recend "\n" -j10 --spreadstdin sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum nice seq 1 1000000 | shuf | parallel --files --recend "\n" -j10 --spreadstdin sort -n | parallel -Xj1 sort -nm {} ";"rm {} | md5sum
echo '### Test --number-of-cpus'; echo '### Test --number-of-cpus';
parallel --number-of-cpus stdout parallel --number-of-cpus
echo '### Test --number-of-cores'; echo '### Test --number-of-cores';
parallel --number-of-cores stdout parallel --number-of-cores
echo '### Test --use-cpus-instead-of-cores'; echo '### Test --use-cpus-instead-of-cores';
(seq 1 4 | stdout parallel --use-cpus-instead-of-cores -j100% sleep) && echo CPUs done & (seq 1 4 | stdout parallel --use-cpus-instead-of-cores -j100% sleep) && echo CPUs done &