mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-12-22 12:47:54 +00:00
parallel: Don't postpone output until $jobslots jobs have been started.
This commit is contained in:
parent
123126f678
commit
917c1795f0
|
@ -234,7 +234,6 @@ New in this release pi.dk/2
|
|||
See the intro videos pi.dk/1
|
||||
10 secs installation: https://git.savannah.gnu.org/cgit/parallel.git/tree/README
|
||||
|
||||
[x] Twitter
|
||||
Aspect: Public
|
||||
|
||||
GNU Parallel - for people who live life in the parallel lane.
|
||||
|
@ -255,31 +254,32 @@ from:tange@gnu.org
|
|||
to:parallel@gnu.org, bug-parallel@gnu.org
|
||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||
|
||||
Subject: GNU Parallel 20210922 ('<<>>Vindelev/Chris Donahue/Ida') released <<[stable]>>
|
||||
Subject: GNU Parallel 20211022 ('<<>>Scholz') released <<[stable]>>
|
||||
|
||||
GNU Parallel 20210922 ('Vindelev') [stable] has been released. It is available for download at: lbry://@GnuParallel:4
|
||||
GNU Parallel 20211022 ('<<>>') <<[stable]>> has been released. It is available for download at: lbry://@GnuParallel:4
|
||||
|
||||
No new functionality was introduced so this is a good candidate for a
|
||||
stable release.
|
||||
<<No new functionality was introduced so this is a good candidate for a
|
||||
stable release.>>
|
||||
|
||||
Quote of the month:
|
||||
|
||||
Take a look at GNU Parallel. It’s magnificent.
|
||||
-- Siira@ycombinator.com
|
||||
<<>>
|
||||
|
||||
New in this release:
|
||||
|
||||
|
||||
* Bug fixes and man page updates.
|
||||
|
||||
|
||||
News about GNU Parallel:
|
||||
https://medium.com/codex/3-programs-that-will-level-up-your-bash-game-bf14e17e2291
|
||||
|
||||
* 3 Programs that will Level Up your Bash Game https://medium.com/codex/3-programs-that-will-level-up-your-bash-game-bf14e17e2291
|
||||
https://towardsdatascience.com/i-summarized-100-command-line-tools-for-data-scientists-in-15-minutes-976def544ffe
|
||||
https://www.incredibuild.com/blog/speed-up-your-builds-by-parallelizing
|
||||
|
||||
* I Summarized 100+ Command-Line Tools for Data Scientists in 15 Minutes https://towardsdatascience.com/i-summarized-100-command-line-tools-for-data-scientists-in-15-minutes-976def544ffe
|
||||
https://gist.github.com/dinh/93b936a55de9a331199d6582bc2921d2
|
||||
|
||||
* Speed up Your Builds by Parallelizing https://www.incredibuild.com/blog/speed-up-your-builds-by-parallelizing
|
||||
|
||||
* Bash: GNU Parallel with Curl https://gist.github.com/dinh/93b936a55de9a331199d6582bc2921d2
|
||||
|
||||
Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html
|
||||
|
||||
|
|
|
@ -385,7 +385,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210923 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -384,7 +384,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210923 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -385,7 +385,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210923 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -363,7 +363,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210923 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -365,7 +365,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210923 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -390,7 +390,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210923 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -355,7 +355,7 @@ _parset_main() {
|
|||
return 255
|
||||
fi
|
||||
if [ "$_parset_NAME" = "--version" ] ; then
|
||||
echo "parset 20210922 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "parset 20210923 (GNU parallel `parallel --minversion 1`)"
|
||||
echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free Software"
|
||||
echo "Foundation, Inc."
|
||||
echo "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>"
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
use strict;
|
||||
use Getopt::Long;
|
||||
$Global::progname="niceload";
|
||||
$Global::version = 20210922;
|
||||
$Global::version = 20210923;
|
||||
Getopt::Long::Configure("bundling","require_order");
|
||||
get_options_from_array(\@ARGV) || die_usage();
|
||||
if($opt::version) {
|
||||
|
|
|
@ -2244,7 +2244,7 @@ sub check_invalid_option_combinations() {
|
|||
|
||||
sub init_globals() {
|
||||
# Defaults:
|
||||
$Global::version = 20210922;
|
||||
$Global::version = 20210923;
|
||||
$Global::progname = 'parallel';
|
||||
$::name = "GNU Parallel";
|
||||
$Global::infinity = 2**31;
|
||||
|
@ -7263,6 +7263,9 @@ sub compute_number_of_processes($) {
|
|||
$count_jobs_already_read = $Global::JobQueue->next_seq();
|
||||
my $wait_time_for_getting_args = 0;
|
||||
my $start_time = time;
|
||||
if($wanted_processes < $Global::infinity) {
|
||||
$Global::dummy_jobs = 1;
|
||||
}
|
||||
while(1) {
|
||||
$system_limit >= $wanted_processes and last;
|
||||
not $more_filehandles and last;
|
||||
|
@ -11577,7 +11580,6 @@ sub len($) {
|
|||
# Worst case is BASE64 encoding 3 bytes -> 4 bytes
|
||||
$len = int($len*4/3);
|
||||
}
|
||||
|
||||
return $len;
|
||||
}
|
||||
|
||||
|
|
|
@ -1197,8 +1197,17 @@ See also: B<--resume> B<--resume-failed>.
|
|||
=item B<-P> I<N>
|
||||
|
||||
Number of jobslots on each machine. Run up to N jobs in parallel. 0
|
||||
means as many as possible. Default is 100% which will run one job per
|
||||
CPU on each machine.
|
||||
means as many as possible (this can take a while to
|
||||
determine). Default is 100% which will run one job per CPU on each
|
||||
machine.
|
||||
|
||||
Due to a bug B<-j 0> will also evaluate replacement strings twice up
|
||||
to the number of joblots:
|
||||
|
||||
# This will not count from 1 but from number-of-jobslots
|
||||
seq 10000 | parallel -j0 echo '{= $_ = $foo++; =}' | head
|
||||
# This will count from 1
|
||||
seq 10000 | parallel -j100 echo '{= $_ = $foo++; =}' | head
|
||||
|
||||
If B<--semaphore> is set, the default is 1 thus making a mutex.
|
||||
|
||||
|
@ -4773,6 +4782,10 @@ computers:
|
|||
|
||||
true >jobqueue; tail -n+0 -f jobqueue | parallel -S ..
|
||||
|
||||
Output only will be printed when reading the next input after a job
|
||||
has finished: So you need to submit a job after the first has finished
|
||||
to see the output from the first job.
|
||||
|
||||
If you keep this running for a long time, jobqueue will grow. A way of
|
||||
removing the jobs already run is by making GNU B<parallel> stop when
|
||||
it hits a special value and then restart. To use B<--eof> to make GNU
|
||||
|
@ -4802,20 +4815,6 @@ In some cases you can run on more CPUs and computers during the night:
|
|||
GNU B<parallel> discovers if B<jobfile> or B<~/.parallel/sshloginfile>
|
||||
changes.
|
||||
|
||||
There is a a small issue when using GNU B<parallel> as queue
|
||||
system/batch manager: You have to submit JobSlot number of jobs before
|
||||
they will start, and after that you can submit one at a time, and job
|
||||
will start immediately if free slots are available.
|
||||
|
||||
Output from the running or completed jobs are held back and will only
|
||||
be printed when the next job is started (unless you use --ungroup or
|
||||
--line-buffer, in which case the output from the jobs are printed
|
||||
immediately).
|
||||
|
||||
E.g. if you have 10 jobslots then the output from the first completed
|
||||
job will only be printed when job 11 has started, and the output of
|
||||
second completed job will only be printed when job 12 has started.
|
||||
|
||||
|
||||
=head2 EXAMPLE: GNU Parallel as dir processor
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ GetOptions(
|
|||
"help" => \$opt::dummy,
|
||||
) || exit(255);
|
||||
$Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
|
||||
$Global::version = 20210922;
|
||||
$Global::version = 20210923;
|
||||
if($opt::version) { version(); exit 0; }
|
||||
@Global::sortoptions =
|
||||
shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]);
|
||||
|
|
2
src/sql
2
src/sql
|
@ -600,7 +600,7 @@ $Global::Initfile && unlink $Global::Initfile;
|
|||
exit ($err);
|
||||
|
||||
sub parse_options {
|
||||
$Global::version = 20210922;
|
||||
$Global::version = 20210923;
|
||||
$Global::progname = 'sql';
|
||||
|
||||
# This must be done first as this may exec myself
|
||||
|
|
|
@ -20,10 +20,12 @@ stdout ping -w 1 -c 1 centos3 >/dev/null || (
|
|||
cd testsuite/vagrant/tange/centos3/ 2>/dev/null
|
||||
cd vagrant/tange/centos3/ 2>/dev/null
|
||||
cd ../vagrant/tange/centos3/ 2>/dev/null
|
||||
stdout vagrant up >/dev/null
|
||||
vagrant ssh -c 'sudo ifconfig eth1 172.27.27.3' |
|
||||
# Ignore empty ^M line
|
||||
grep ..
|
||||
(
|
||||
stdout vagrant up >/dev/null
|
||||
vagrant ssh -c 'sudo ifconfig eth1 172.27.27.3' |
|
||||
# Ignore empty ^M line
|
||||
grep ..
|
||||
) &
|
||||
)
|
||||
(
|
||||
# Copy binaries to server
|
||||
|
|
|
@ -16,6 +16,23 @@ export -f stdsort
|
|||
# Test amount of parallelization
|
||||
# parallel --shuf --jl /tmp/myjl -j1 'export JOBS={1};'bash tests-to-run/parallel-local-0.3s.sh ::: {1..16} ::: {1..5}
|
||||
|
||||
par_long_input() {
|
||||
echo '### Long input lines should not fail if they are not used'
|
||||
perl -e 'map { print "$_\t"."X"x100000 ."\t".uc($_)."\n" } (a..c)' |
|
||||
parallel --colsep '\t' echo {1}
|
||||
perl -e 'map { print "$_\t"."X"x100000 ."\t".uc($_)."\n" } (a..c)' |
|
||||
parallel --colsep '\t' echo {3}
|
||||
perl -e 'map { print "$_\t"."X"x100000 ."\t".uc($_)."\n" } (a..c)' |
|
||||
parallel --colsep '\t' echo {1} {3}
|
||||
|
||||
perl -e 'map { print "$_\t"."X"x1000000 ."\t".uc($_)."\n" } (a..c)' |
|
||||
parallel --colsep '\t' echo {1}
|
||||
perl -e 'map { print "$_\t"."X"x1000000 ."\t".uc($_)."\n" } (a..c)' |
|
||||
parallel --colsep '\t' echo {3}
|
||||
perl -e 'map { print "$_\t"."X"x1000000 ."\t".uc($_)."\n" } (a..c)' |
|
||||
parallel --colsep '\t' echo {1} {3}
|
||||
}
|
||||
|
||||
par_ctagstring() {
|
||||
echo '### --ctag --ctagstring should be different from --tag --tagstring'
|
||||
parallel --tag echo ::: 1 ::: a| wc -c
|
||||
|
@ -92,7 +109,7 @@ EOF
|
|||
--tmpl "$tmp2"=/tmp/tmpl-{x}-{y}.t2 \
|
||||
myprog {#}.t1 /tmp/tmpl-{x}-{y}.t2 \
|
||||
::: x 1.1 2.22 3.333 ::: y 111.111 222.222 333.333 |
|
||||
perl -pe 's/0.\d{13,}/0.RANDOM_NUMBER/' |
|
||||
perl -pe 's/0.\d{12,}/0.RANDOM_NUMBER/' |
|
||||
perl -pe 's/Slot: \d/Slot: X/'
|
||||
rm "$tmp1" "$tmp2"
|
||||
}
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
|
||||
par_plus_slot_replacement() {
|
||||
echo '### show {slot} {0%} {0#}'
|
||||
parallel -k --plus echo '{slot}=$PARALLEL_JOBSLOT={%}' ::: A B C
|
||||
parallel -k --plus 'sleep 0.{%};echo {slot}=$PARALLEL_JOBSLOT={%}' ::: A B C
|
||||
parallel -j15 -k --plus 'echo Seq: {0#} {#}' ::: {1..100} | sort
|
||||
parallel -j15 -k --plus 'sleep 0.0{}; echo Slot: {0%} {%}' ::: {1..100} |
|
||||
parallel -j15 -k --plus 'sleep 0.{}; echo Slot: {0%} {%}' ::: {1..100} |
|
||||
sort -u
|
||||
}
|
||||
|
||||
|
|
|
@ -338,21 +338,21 @@ par_totaljob_repl() {
|
|||
parallel -k -N7 --plus echo {#} {##} ::: {1..14}
|
||||
parallel -k -N7 --plus echo {#} {##} ::: {1..15}
|
||||
parallel -k -S 8/: -X --plus echo {#} {##} ::: {1..15}
|
||||
parallel -k --plus --delay 0.1 -j 10 'echo {0#}/{##}:{0%}' ::: {1..5} ::: {1..4}
|
||||
parallel -k --plus --delay 0.1 -j 10 'sleep 1; echo {0#}/{##}:{0%}' ::: {1..5} ::: {1..4}
|
||||
}
|
||||
|
||||
par_jobslot_repl() {
|
||||
echo 'bug #46232: {%} with --bar/--eta/--shuf or --halt xx% broken'
|
||||
|
||||
parallel --bar -kj2 --delay 0.1 echo {%} ::: a b ::: c d e 2>/dev/null
|
||||
parallel --halt now,fail=10% -kj2 --delay 0.1 echo {%} ::: a b ::: c d e
|
||||
parallel --eta -kj2 --delay 0.1 echo {%} ::: a b ::: c d e 2>/dev/null
|
||||
parallel --shuf -kj2 --delay 0.1 echo {%} ::: a b ::: c d e 2>/dev/null
|
||||
parallel -kj2 --delay 0.1 --bar 'sleep 0.2;echo {%}' ::: a b ::: c d e 2>/dev/null
|
||||
parallel -kj2 --delay 0.1 --eta 'sleep 0.2;echo {%}' ::: a b ::: c d e 2>/dev/null
|
||||
parallel -kj2 --delay 0.1 --shuf 'sleep 0.2;echo {%}' ::: a b ::: c d e 2>/dev/null
|
||||
parallel -kj2 --delay 0.1 --halt now,fail=10% 'sleep 0.2;echo {%}' ::: a b ::: c d e
|
||||
|
||||
echo 'bug #46231: {%} with --pipepart broken. Should give 1+2'
|
||||
|
||||
seq 10000 > /tmp/num10000
|
||||
parallel -k --pipepart -ka /tmp/num10000 --block 10k -j2 --delay 0.05 echo {%}
|
||||
parallel -k --pipepart -ka /tmp/num10000 --block 10k -j2 --delay 0.05 'sleep 0.1; echo {%}'
|
||||
rm /tmp/num10000
|
||||
}
|
||||
|
||||
|
@ -440,11 +440,11 @@ par_children_receive_sig() {
|
|||
par_wrong_slot_rpl_resume() {
|
||||
echo '### bug #47644: Wrong slot number replacement when resuming'
|
||||
seq 0 20 |
|
||||
parallel -kj 4 --delay 0.2 --joblog /tmp/parallel-bug-47558 \
|
||||
'sleep 1; echo {%} {=$_==10 and exit =}'
|
||||
parallel -kj 4 --delay 0.2 --joblog /tmp/parallel-bug-47558 \
|
||||
'sleep 1; echo {%} {=$_==10 and exit =}'
|
||||
seq 0 20 |
|
||||
parallel -kj 4 --resume --delay 0.2 --joblog /tmp/parallel-bug-47558 \
|
||||
'sleep 1; echo {%} {=$_==110 and exit =}'
|
||||
parallel -kj 4 --resume --delay 0.2 --joblog /tmp/parallel-bug-47558 \
|
||||
'sleep 1; echo {%} {=$_==110 and exit =}'
|
||||
}
|
||||
|
||||
par_multiline_commands() {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
# These fail regularly
|
||||
|
||||
#par_ctrlz_should_suspend_children() {
|
||||
ctrlz_should_suspend_children() {
|
||||
echo 'bug #46120: Suspend should suspend (at least local) children'
|
||||
echo 'it should burn 1.9 CPU seconds, but no more than that'
|
||||
echo 'The 5 second sleep will make it be killed by timeout when it fgs'
|
||||
|
@ -31,7 +31,14 @@
|
|||
sleep 5;
|
||||
fg;
|
||||
echo 1=OK $?' | grep -v '\[1\]' | grep -v 'SHA256'
|
||||
#}
|
||||
}
|
||||
ctrlz_should_suspend_children
|
||||
|
||||
par_more_than_9_relative_sshlogin() {
|
||||
echo '### Check more than 9(relative) simultaneous sshlogins'
|
||||
seq 1 11 | stdout parallel -k -j10000% -S "ssh lo" echo |
|
||||
grep -v 'parallel: Warning:'
|
||||
}
|
||||
|
||||
par_sql_CSV() {
|
||||
echo '### CSV write to the right place'
|
||||
|
|
|
@ -54,5 +54,7 @@ compgen -A function | grep par_ | LC_ALL=C sort |
|
|||
grep -v 'If you believe this message is in error, please check the process' |
|
||||
grep -v 'listing for any "ruby" or "vagrant" processes and kill them. Then' |
|
||||
grep -v 'try again.' |
|
||||
grep -v 'A new version of Vagrant is available:' |
|
||||
grep -v 'To upgrade visit: ' |
|
||||
grep .
|
||||
)
|
||||
|
|
|
@ -54,10 +54,7 @@ echo '### Check forced number of CPUs being respected'
|
|||
seq 1 20 | stdout parallel -k -j+0 -S 1/:,7/$SSHLOGIN1 "hostname; echo {} >/dev/null" | sort
|
||||
|
||||
echo '### Check more than 9 simultaneous sshlogins'
|
||||
seq 1 11 | parallel -k -j0 -S "ssh $SSHLOGIN1" echo
|
||||
|
||||
echo '### Check more than 9(relative) simultaneous sshlogins'
|
||||
seq 1 11 | parallel -k -j10000% -S "ssh $SSHLOGIN1" echo
|
||||
seq 1 11 | parallel -k -j0 -S "ssh lo" echo
|
||||
|
||||
echo '### Check -S syntax'
|
||||
seq 1 11 | parallel -k -j100% -S : echo
|
||||
|
|
|
@ -492,6 +492,17 @@ par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "
|
|||
par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 97
|
||||
par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 98
|
||||
par_long_cmd_mem_use perl -e '$r=rand(shift); for($f = 0; $f < $r; $f++){ $a = "a"x100 } print shift,"\n"' 10000 99
|
||||
par_long_input ### Long input lines should not fail if they are not used
|
||||
par_long_input a
|
||||
par_long_input c
|
||||
par_long_input b
|
||||
par_long_input A
|
||||
par_long_input C
|
||||
par_long_input B
|
||||
par_long_input parallel: Error: Command line too long (200014 >= 131063) at input 0: a XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
|
||||
par_long_input parallel: Error: Command line too long (1000009 >= 131063) at input 0: a XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
|
||||
par_long_input parallel: Error: Command line too long (1000009 >= 131063) at input 0: a XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
|
||||
par_long_input parallel: Error: Command line too long (2000014 >= 131063) at input 0: a XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...
|
||||
par_maxchar_s ### Test --max-chars and -s: Max number of chars in a line
|
||||
par_maxchar_s line 1 line 1
|
||||
par_maxchar_s line 2
|
||||
|
|
|
@ -698,38 +698,38 @@ par_perlexpr_repl {=a
|
|||
par_perlexpr_repl {= a
|
||||
par_perlexpr_repl {= a =}
|
||||
par_perlexpr_repl ### bug #45842: Do not evaluate {= =} twice
|
||||
par_perlexpr_repl 5
|
||||
par_perlexpr_repl 6
|
||||
par_perlexpr_repl 7
|
||||
par_perlexpr_repl 8
|
||||
par_perlexpr_repl 5
|
||||
par_perlexpr_repl 6
|
||||
par_perlexpr_repl 7
|
||||
par_perlexpr_repl 8
|
||||
par_perlexpr_repl 1
|
||||
par_perlexpr_repl 2
|
||||
par_perlexpr_repl 3
|
||||
par_perlexpr_repl 4
|
||||
par_perlexpr_repl 1
|
||||
par_perlexpr_repl 2
|
||||
par_perlexpr_repl 3
|
||||
par_perlexpr_repl 4
|
||||
par_perlexpr_repl 1 2
|
||||
par_perlexpr_repl 3 4
|
||||
par_perlexpr_repl 5 6
|
||||
par_perlexpr_repl 7 8
|
||||
par_perlexpr_repl 9 10
|
||||
par_perlexpr_repl 11 12
|
||||
par_perlexpr_repl 13 14
|
||||
par_perlexpr_repl 15 16
|
||||
par_perlexpr_repl 17 18
|
||||
par_perlexpr_repl 19 20
|
||||
par_perlexpr_repl 21 22
|
||||
par_perlexpr_repl 23 24
|
||||
par_perlexpr_repl 25 26
|
||||
par_perlexpr_repl 27 28
|
||||
par_perlexpr_repl 29 30
|
||||
par_perlexpr_repl 31 32
|
||||
par_perlexpr_repl 33 34
|
||||
par_perlexpr_repl 35 36
|
||||
par_perlexpr_repl 37 38
|
||||
par_perlexpr_repl 39 40
|
||||
par_perlexpr_repl 1
|
||||
par_perlexpr_repl 2
|
||||
par_perlexpr_repl 3
|
||||
par_perlexpr_repl 4
|
||||
par_perlexpr_repl 5
|
||||
par_perlexpr_repl 6
|
||||
par_perlexpr_repl 7
|
||||
par_perlexpr_repl 8
|
||||
par_perlexpr_repl 9
|
||||
par_perlexpr_repl 10
|
||||
par_perlexpr_repl 11
|
||||
par_perlexpr_repl 12
|
||||
par_perlexpr_repl 13
|
||||
par_perlexpr_repl 14
|
||||
par_perlexpr_repl 15
|
||||
par_perlexpr_repl 16
|
||||
par_perlexpr_repl 17
|
||||
par_perlexpr_repl 18
|
||||
par_perlexpr_repl 19
|
||||
par_perlexpr_repl 20
|
||||
par_perlexpr_repl ### bug #45939: {2} in {= =} fails
|
||||
par_perlexpr_repl OK
|
||||
par_perlexpr_repl OK-OK
|
||||
|
|
|
@ -119,7 +119,7 @@ par_eta 16
|
|||
par_eta ### Test of --eta with no jobs
|
||||
par_eta
|
||||
par_eta Computers / CPU cores / Max jobs to run
|
||||
par_eta 1:local / 8 / 1
|
||||
par_eta 1:local / 8 / 8
|
||||
par_eta
par_eta ETA: 0s Left: 0 AVG: 0.00s 0
|
||||
par_exitval_signal ### Test --joblog with exitval and Test --joblog with signal -- timing dependent
|
||||
par_exitval_signal exitval=128+6 OK
|
||||
|
@ -486,7 +486,7 @@ par_progress 16
|
|||
par_progress ### Test of --progress with no jobs
|
||||
par_progress
|
||||
par_progress Computers / CPU cores / Max jobs to run
|
||||
par_progress 1:local / 8 / 1
|
||||
par_progress 1:local / 8 / 8
|
||||
par_progress
par_progress 0
|
||||
par_replacement_slashslash ### Test {//}
|
||||
par_replacement_slashslash . a
|
||||
|
@ -674,10 +674,10 @@ par_totaljob_repl 10
|
|||
par_totaljob_repl 10
|
||||
par_totaljob_repl 10
|
||||
par_totaljob_repl 10
|
||||
par_totaljob_repl 10
|
||||
par_totaljob_repl 10
|
||||
par_totaljob_repl 10
|
||||
par_totaljob_repl 10
|
||||
par_totaljob_repl 1
|
||||
par_totaljob_repl 2
|
||||
par_totaljob_repl 3
|
||||
par_totaljob_repl 4
|
||||
par_totaljob_repl 10
|
||||
par_totaljob_repl 10
|
||||
par_totaljob_repl 10
|
||||
|
@ -725,17 +725,17 @@ par_wrong_slot_rpl_resume 4 3
|
|||
par_wrong_slot_rpl_resume 1 4
|
||||
par_wrong_slot_rpl_resume 2 5
|
||||
par_wrong_slot_rpl_resume 3 6
|
||||
par_wrong_slot_rpl_resume 4 7
|
||||
par_wrong_slot_rpl_resume 1 8
|
||||
par_wrong_slot_rpl_resume 2 9
|
||||
par_wrong_slot_rpl_resume 3 10
|
||||
par_wrong_slot_rpl_resume 4 11
|
||||
par_wrong_slot_rpl_resume 1 12
|
||||
par_wrong_slot_rpl_resume 2 13
|
||||
par_wrong_slot_rpl_resume 3 14
|
||||
par_wrong_slot_rpl_resume 4 15
|
||||
par_wrong_slot_rpl_resume 1 16
|
||||
par_wrong_slot_rpl_resume 2 17
|
||||
par_wrong_slot_rpl_resume 3 18
|
||||
par_wrong_slot_rpl_resume 4 19
|
||||
par_wrong_slot_rpl_resume 1 20
|
||||
par_wrong_slot_rpl_resume 1 7
|
||||
par_wrong_slot_rpl_resume 2 8
|
||||
par_wrong_slot_rpl_resume 3 9
|
||||
par_wrong_slot_rpl_resume 4 10
|
||||
par_wrong_slot_rpl_resume 1 11
|
||||
par_wrong_slot_rpl_resume 2 12
|
||||
par_wrong_slot_rpl_resume 3 13
|
||||
par_wrong_slot_rpl_resume 4 14
|
||||
par_wrong_slot_rpl_resume 1 15
|
||||
par_wrong_slot_rpl_resume 2 16
|
||||
par_wrong_slot_rpl_resume 3 17
|
||||
par_wrong_slot_rpl_resume 4 18
|
||||
par_wrong_slot_rpl_resume 1 19
|
||||
par_wrong_slot_rpl_resume 2 20
|
||||
|
|
|
@ -15,10 +15,10 @@ par_PARALLEL_RSYNC_OPTS ### test rsync opts
|
|||
par_PARALLEL_RSYNC_OPTS rsync --protocol 30 -rlDzRRRRrsync --protocol 30 --rsync-path='cd ././.; rsync' -rlDzRRRRrsync --protocol 30 -zzrrllddRRRRrsync --protocol 30 --rsync-path='cd ././.; rsync' -zzrrllddRRRR
|
||||
par_continuous_output Test delayed output with ''
|
||||
par_continuous_output -u is optimal but hard to reach, due to non-mixing
|
||||
par_continuous_output 6
|
||||
par_continuous_output 0
|
||||
par_continuous_output 0
|
||||
par_continuous_output 0
|
||||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
|
@ -27,9 +27,6 @@ par_continuous_output 1
|
|||
par_continuous_output 0
|
||||
par_continuous_output Test delayed output with '-u'
|
||||
par_continuous_output -u is optimal but hard to reach, due to non-mixing
|
||||
par_continuous_output 5
|
||||
par_continuous_output 0
|
||||
par_continuous_output 0
|
||||
par_continuous_output 0
|
||||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
|
@ -37,6 +34,9 @@ par_continuous_output 1
|
|||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
par_continuous_output 1
|
||||
par_hostgroup ### --hostgroup force ncpu
|
||||
par_hostgroup parallel
|
||||
par_hostgroup parallel
|
||||
|
@ -114,6 +114,18 @@ par_kill_hup parallel: Waiting for these 2 jobs to finish. Send SIGTERM to stop
|
|||
par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
|
||||
par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
|
||||
par_kill_hup bash---pstree
|
||||
par_more_than_9_relative_sshlogin ### Check more than 9(relative) simultaneous sshlogins
|
||||
par_more_than_9_relative_sshlogin 1
|
||||
par_more_than_9_relative_sshlogin 2
|
||||
par_more_than_9_relative_sshlogin 3
|
||||
par_more_than_9_relative_sshlogin 4
|
||||
par_more_than_9_relative_sshlogin 5
|
||||
par_more_than_9_relative_sshlogin 6
|
||||
par_more_than_9_relative_sshlogin 7
|
||||
par_more_than_9_relative_sshlogin 8
|
||||
par_more_than_9_relative_sshlogin 9
|
||||
par_more_than_9_relative_sshlogin 10
|
||||
par_more_than_9_relative_sshlogin 11
|
||||
par_resume_failed_k ### bug #38299: --resume-failed -k
|
||||
par_resume_failed_k job1 val 0
|
||||
par_resume_failed_k job2 val 1
|
||||
|
|
|
@ -11,7 +11,7 @@ par_nonall_should_not_block ### bug #47608: parallel --nonall -S lo 'echo ::: '
|
|||
par_nonall_should_not_block :::
|
||||
par_progress_text_max_jobs_to_run ### bug #49404: "Max jobs to run" does not equal the number of jobs specified when using GNU Parallel on remote server?
|
||||
par_progress_text_max_jobs_to_run should give 10 running jobs
|
||||
par_progress_text_max_jobs_to_run 1:lo / 16 / 10
|
||||
par_progress_text_max_jobs_to_run 1:lo / 16 / 16
|
||||
par_quoting_for_onall ### bug #35427: quoting of {2} broken for --onall
|
||||
par_quoting_for_onall /bin/ls
|
||||
par_remote_function_nice ### functions and --nice
|
||||
|
|
|
@ -998,7 +998,7 @@ echo '### -s6 echo < files.xi'
|
|||
stdout xargs -s6 echo < files.xi
|
||||
xargs: argument line too long
|
||||
stdout parallel -k -X -s6 echo < files.xi
|
||||
parallel: Error: Command line too long (27 >= 6) at input -7: /src/gnu/autoconf-1.11
|
||||
parallel: Error: Command line too long (27 >= 6) at input 0: /src/gnu/autoconf-1.11
|
||||
echo '### -iARG -s86 echo ARG is xARGx < files.xi'
|
||||
### -iARG -s86 echo ARG is xARGx < files.xi
|
||||
stdout xargs -iARG -s86 echo ARG is xARGx < files.xi
|
||||
|
|
|
@ -171,6 +171,11 @@ ls | parallel -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=
|
|||
4 ab
|
||||
4 b
|
||||
6 a
|
||||
parallel: Warning: Only enough file handles to run 252 jobs in parallel.
|
||||
parallel: Warning: Try running 'parallel -j0 -N 252 --pipe parallel -j0'
|
||||
parallel: Warning: or increasing 'ulimit -n' (try: ulimit -n `ulimit -Hn`)
|
||||
parallel: Warning: or increasing 'nofile' in /etc/security/limits.conf
|
||||
parallel: Warning: or increasing /proc/sys/fs/file-max
|
||||
ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\" "{=$_=pQ($_)=}"\n\"}"' | LC_ALL=C sort
|
||||
1 1-col.txt
|
||||
1 1-col.txt.diff
|
||||
|
@ -280,6 +285,11 @@ ls | parallel --group -j500 'sleep 1; find {} -type f | perl -ne "END{print $..\
|
|||
4 ab
|
||||
4 b
|
||||
6 a
|
||||
parallel: Warning: Only enough file handles to run 252 jobs in parallel.
|
||||
parallel: Warning: Try running 'parallel -j0 -N 252 --pipe parallel -j0'
|
||||
parallel: Warning: or increasing 'ulimit -n' (try: ulimit -n `ulimit -Hn`)
|
||||
parallel: Warning: or increasing 'nofile' in /etc/security/limits.conf
|
||||
parallel: Warning: or increasing /proc/sys/fs/file-max
|
||||
find . -type f | parallel --group "perl -ne '/^\\S+\\s+\\S+$/ and print \$ARGV,\"\\n\"'" | LC_ALL=C sort
|
||||
./ ab /c' d/ ef"g.diff
|
||||
./ ab /c' d/ ef"g.diff
|
||||
|
|
|
@ -499,6 +499,11 @@ echo C
|
|||
sleep 1
|
||||
echo 0 > my_jobs
|
||||
wait
|
||||
parallel: Warning: Only enough file handles to run 248 jobs in parallel.
|
||||
parallel: Warning: Try running 'parallel -j0 -N 248 --pipe parallel -j0'
|
||||
parallel: Warning: or increasing 'ulimit -n' (try: ulimit -n `ulimit -Hn`)
|
||||
parallel: Warning: or increasing 'nofile' in /etc/security/limits.conf
|
||||
parallel: Warning: or increasing /proc/sys/fs/file-max
|
||||
9
|
||||
parallel --use-cpus-instead-of-cores -N0 sleep 1 :::: num8
|
||||
parallel --shuf echo ::: 1 2 3 ::: a b c ::: A B C
|
||||
|
|
|
@ -110,18 +110,6 @@ centos8.localdomain
|
|||
9
|
||||
10
|
||||
11
|
||||
### Check more than 9(relative) simultaneous sshlogins
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
### Check -S syntax
|
||||
1
|
||||
2
|
||||
|
|
Loading…
Reference in a new issue