parallel: Fixed bug #41805: Idea: propagate --env for parallel --number-of-cores

This commit is contained in:
Ole Tange 2014-03-24 15:49:49 +01:00
parent e84aa82a54
commit d6235b0cc3
11 changed files with 44 additions and 16 deletions

6
README
View file

@ -86,6 +86,12 @@ https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Walk through the tutorial (man parallel_tutorial). You command line Walk through the tutorial (man parallel_tutorial). You command line
with love you for it. with love you for it.
When using programs that use GNU Parallel to process data for
publication please cite:
O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
;login: The USENIX Magazine, February 2011:42-47.
= New versions = = New versions =

View file

@ -208,15 +208,19 @@ cc:Tim Cuthbertson <tim3d.junk@gmail.com>,
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 20140322 ('昆明 MH370') released Subject: GNU Parallel 20140422 ('') released
GNU Parallel 20140322 ('昆明 MH370') has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/ GNU Parallel 20140422 ('') has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/
No new functionality was introduced so this is a good candidate for a stable release.
New in this release: New in this release:
* GNU Parallel was cited in: Beyond MAP estimation with the track-oriented multiple hypothesis tracker http://ieeexplore.ieee.org/xpl/abstractReferences.jsp?tp=&arnumber=6766651&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D6766651
* GNU Parallel was cited in: Prokka: rapid prokaryotic genome annotation http://bioinformatics.oxfordjournals.org/content/early/2014/03/18/bioinformatics.btu153.short
* GNU Parallel was used (unfortunately with improper citation) in: Perspectives in magnetic resonance: NMR in the post-FFT era http://www.sciencedirect.com/science/article/pii/S1090780713003054
* How to run tbss_2_reg in parallel http://tadpolebrainimaging.blogspot.dk/2014/03/how-to-run-tbss2reg-in-parallel.html * How to run tbss_2_reg in parallel http://tadpolebrainimaging.blogspot.dk/2014/03/how-to-run-tbss2reg-in-parallel.html
* Iterative DNS Brute Forcing http://www.room362.com/blog/2014/02/19/iterative-dns-brute-forcing/ * Iterative DNS Brute Forcing http://www.room362.com/blog/2014/02/19/iterative-dns-brute-forcing/

View file

@ -13,3 +13,4 @@ Date/Publication: 2014-01-22 21:19:14
Packaged: 2014-01-21 02:35:20 UTC; tange Packaged: 2014-01-21 02:35:20 UTC; tange
NeedsCompilation: no NeedsCompilation: no
Depends: R (>= 2.12.1), data.table, plyr Depends: R (>= 2.12.1), data.table, plyr
SystemRequirements: GNU Parallel version >= 20121222

View file

@ -1,4 +1,4 @@
c521738aeecfa8e237500f4a3263143e DESCRIPTION c521738aeecfa8e237500f4a3263143e DESCRIPTION
d008be14407ccaa1070b98ed7d91c123 NAMESPACE d008be14407ccaa1070b98ed7d91c123 NAMESPACE
beb1ce7a813ec211acd651e66a397a7b R/gnuparallel.R beb1ce7a813ec211acd651e66a397a7b R/gnuparallel.R
a6f75c33282b61a2efe54c70e8a52c39 man/gnuparallel-package.Rd cb2aec4860699d6819f9cc18e67b8df4 man/gnuparallel-package.Rd

View file

@ -15,9 +15,11 @@
} }
\examples{ \examples{
library(gnuparallel) library(gnuparallel)
system(paste("parallel --header : --results foobar", if(system(paste("parallel --header : --results foobar",
"printf out{let}\\\\\\\\\\\\\\\\tout{num}\\\\\\\\\\\\\\\\nline2{let}\\\\\\\\\\\\\\\\t{num}\\\\\\\\\\\\\\\\n", "printf out{let}\\\\\\\\\\\\\\\\tout{num}\\\\\\\\\\\\\\\\nline2{let}\\\\\\\\\\\\\\\\t{num}\\\\\\\\\\\\\\\\n",
"::: let a b c ::: num 4 5 6")) "::: let a b c ::: num 4 5 6"))) {
stop("GNU Parallel must be installed. 10 seconds installation: wget -O - pi.dk/3/| bash");
}
fn <- gnu.parallel.filenames("foobar") fn <- gnu.parallel.filenames("foobar")
gnu.parallel.load(fn) gnu.parallel.load(fn)
gnu.parallel.load.lines(fn) gnu.parallel.load.lines(fn)

View file

@ -1968,9 +1968,9 @@ sub filter_hosts {
while (my ($host, $sshlogin) = each %Global::host) { while (my ($host, $sshlogin) = each %Global::host) {
# The 'true' is used to get the $host out later # The 'true' is used to get the $host out later
my $sshcmd = "true $host;" . $sshlogin->sshcommand()." ".$sshlogin->serverlogin(); my $sshcmd = "true $host;" . $sshlogin->sshcommand()." ".$sshlogin->serverlogin();
push(@cores, $host."\t".$sshcmd." parallel --number-of-cores\n"); push(@cores, $host."\t".$sshcmd." ".$Global::envvar." parallel --number-of-cores\n");
push(@cpus, $host."\t".$sshcmd." parallel --number-of-cpus\n"); push(@cpus, $host."\t".$sshcmd." ".$Global::envvar." parallel --number-of-cpus\n");
push(@maxline, $host."\t".$sshcmd." parallel --max-line-length-allowed\n"); push(@maxline, $host."\t".$sshcmd." ".$Global::envvar." parallel --max-line-length-allowed\n");
# 'echo' is used to get the best possible value for an ssh login time # 'echo' is used to get the best possible value for an ssh login time
push(@echo, $host."\t".$sshcmd." echo\n"); push(@echo, $host."\t".$sshcmd." echo\n");
} }
@ -3341,9 +3341,9 @@ sub ncpus {
} else { } else {
my $ncpu; my $ncpu;
if($opt::use_cpus_instead_of_cores) { if($opt::use_cpus_instead_of_cores) {
$ncpu = qx(echo|$sshcmd $serverlogin parallel --number-of-cpus); $ncpu = qx(echo|$sshcmd $serverlogin $Global::envvar parallel --number-of-cpus);
} else { } else {
$ncpu = qx(echo|$sshcmd $serverlogin parallel --number-of-cores); $ncpu = qx(echo|$sshcmd $serverlogin $Global::envvar parallel --number-of-cores);
} }
chomp $ncpu; chomp $ncpu;
if($ncpu =~ /^\s*[0-9]+\s*$/s) { if($ncpu =~ /^\s*[0-9]+\s*$/s) {

Binary file not shown.

View file

@ -3757,8 +3757,8 @@ Copyright (C) 2007-10-18 Ole Tange, http://ole.tange.dk
Copyright (C) 2008,2009,2010 Ole Tange, http://ole.tange.dk Copyright (C) 2008,2009,2010 Ole Tange, http://ole.tange.dk
Copyright (C) 2010,2011,2012,2013 Ole Tange, http://ole.tange.dk and Copyright (C) 2010,2011,2012,2013,2014 Ole Tange, http://ole.tange.dk
Free Software Foundation, Inc. and Free Software Foundation, Inc.
Parts of the manual concerning B<xargs> compatibility is inspired by Parts of the manual concerning B<xargs> compatibility is inspired by
the manual of B<xargs> from GNU findutils 4.4.2. the manual of B<xargs> from GNU findutils 4.4.2.

View file

@ -4020,8 +4020,8 @@ Copyright (C) 2007-10-18 Ole Tange, http://ole.tange.dk
Copyright (C) 2008,2009,2010 Ole Tange, http://ole.tange.dk Copyright (C) 2008,2009,2010 Ole Tange, http://ole.tange.dk
Copyright (C) 2010,2011,2012,2013 Ole Tange, http://ole.tange.dk and Copyright (C) 2010,2011,2012,2013,2014 Ole Tange, http://ole.tange.dk
Free Software Foundation, Inc. and Free Software Foundation, Inc.
Parts of the manual concerning @strong{xargs} compatibility is inspired by Parts of the manual concerning @strong{xargs} compatibility is inspired by
the manual of @strong{xargs} from GNU findutils 4.4.2. the manual of @strong{xargs} from GNU findutils 4.4.2.

View file

@ -5,6 +5,12 @@ mkdir tmp
cd tmp cd tmp
cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | stdout parallel -j8 -k -L1 cat <<'EOF' | sed -e s/\$SERVER1/$SERVER1/\;s/\$SERVER2/$SERVER2/ | stdout parallel -j8 -k -L1
echo '### bug #41805: Idea: propagate --env for parallel --number-of-cores'
FOO=test_csh_filter parallel --filter-hosts --env FOO,PATH -S csh@lo env ::: "" |egrep 'FOO|PATH'
FOO=test_csh parallel --env FOO,PATH -S csh@lo env ::: "" |egrep 'FOO|PATH'
FOO=test_zsh_filter parallel --filter-hosts --env FOO,PATH -S zsh@lo env ::: "" |egrep 'FOO|PATH'
FOO=test_zsh parallel --env FOO,PATH -S zsh@lo env ::: "" |egrep 'FOO|PATH'
echo '### Deal with long command lines on remote servers' echo '### Deal with long command lines on remote servers'
perl -e 'print((("\""x10000)."\n")x10)' | parallel -j1 -S lo -N 10000 echo {} |wc perl -e 'print((("\""x10000)."\n")x10)' | parallel -j1 -S lo -N 10000 echo {} |wc

View file

@ -1,3 +1,12 @@
### bug #41805: Idea: propagate --env for parallel --number-of-cores
FOO=test_csh_filter
PATH=/home/tange/bin:/home/tange/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/sbin:/usr/sbin:/home/tange/terminals/data-import:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin:/home/tange/bin
FOO=test_csh
PATH=/home/tange/bin:/home/tange/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/sbin:/usr/sbin:/home/tange/terminals/data-import:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin:/home/tange/bin
PATH=/home/tange/bin:/home/tange/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/sbin:/usr/sbin:/home/tange/terminals/data-import:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin:/home/tange/bin
FOO=test_zsh_filter
PATH=/home/tange/bin:/home/tange/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/sbin:/usr/sbin:/home/tange/terminals/data-import:/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin:/home/tange/bin
FOO=test_zsh
### Deal with long command lines on remote servers ### Deal with long command lines on remote servers
4 10 100010 4 10 100010
### Test bug #34241: --pipe should not spawn unneeded processes ### Test bug #34241: --pipe should not spawn unneeded processes