parset: Now a copy of env_parallel.

This commit is contained in:
Ole Tange 2018-02-22 20:43:33 +01:00
parent 6657e056f2
commit e6339f4512
33 changed files with 308 additions and 137 deletions

12
README
View file

@ -44,9 +44,9 @@ document.
Full installation of GNU Parallel is as simple as:
wget https://ftpmirror.gnu.org/parallel/parallel-20180122.tar.bz2
bzip2 -dc parallel-20180122.tar.bz2 | tar xvf -
cd parallel-20180122
wget https://ftpmirror.gnu.org/parallel/parallel-20180222.tar.bz2
bzip2 -dc parallel-20180222.tar.bz2 | tar xvf -
cd parallel-20180222
./configure && make && sudo make install
@ -55,9 +55,9 @@ Full installation of GNU Parallel is as simple as:
If you are not root you can add ~/bin to your path and install in
~/bin and ~/share:
wget https://ftpmirror.gnu.org/parallel/parallel-20180122.tar.bz2
bzip2 -dc parallel-20180122.tar.bz2 | tar xvf -
cd parallel-20180122
wget https://ftpmirror.gnu.org/parallel/parallel-20180222.tar.bz2
bzip2 -dc parallel-20180222.tar.bz2 | tar xvf -
cd parallel-20180222
./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel

View file

@ -1,4 +1,4 @@
AC_INIT([parallel], [20180122], [bug-parallel@gnu.org])
AC_INIT([parallel], [20180222], [bug-parallel@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([

View file

@ -199,9 +199,9 @@ to:parallel@gnu.org, bug-parallel@gnu.org
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
Subject: GNU Parallel 20180222 ('') released <<[stable]>>
Subject: GNU Parallel 20180222 ('Henrik') released <<[stable]>>
GNU Parallel 20180222 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
GNU Parallel 20180222 ('Henrik') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
<<No new functionality was introduced so this is a good candidate for a stable release.>>
@ -210,9 +210,19 @@ Quote of the month:
New in this release:
* https://mike42.me/blog/tag/fedora
* --embed makes it possible to embed GNU parallel in a shell script. This is useful if you need to distribute your script to someone who does not want to install GNU parallel.
* https://www.datascienceatthecommandline.com/
* Parallelize Your Large Batches of Small Jobs https://amito.me/2018/02/Parallelize-Your-Large-Batches-of-Small-Jobs/
* Klaatu expounds upon xargs and talks GNU parallel in episode 12x6 http://gnuworldorder.info/
* How to use parallel to speed up your work https://mike42.me/blog/how-to-use-parallel-to-speed-up-your-work
* Transient compute clustering with GNU Parallel and sshfs https://dennismungai.wordpress.com/2018/02/06/transient-compute-clustering-with-gnu-parallel-and-sshfs/
* Useful Examples of ffmpeg and GNU parallel on the command-line https://dennismungai.wordpress.com/2018/02/06/useful-examples-of-ffmpeg-and-gnu-parallel-on-the-command-line/
* Data Science at the Command Line (Chapter 8.3) https://www.datascienceatthecommandline.com/
<<Citation not OK: BAMClipper: removing primers from alignments to minimize false-negative mutations in amplicon next-generation sequencing https://www.nature.com/articles/s41598-017-01703-6>>

View file

@ -1,4 +1,4 @@
bin_SCRIPTS = parallel sql niceload parcat env_parallel \
bin_SCRIPTS = parallel sql niceload parcat parset env_parallel \
env_parallel.ash env_parallel.bash env_parallel.csh \
env_parallel.dash env_parallel.fish env_parallel.ksh \
env_parallel.pdksh env_parallel.sh env_parallel.tcsh \

View file

@ -229,7 +229,7 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
bin_SCRIPTS = parallel sql niceload parcat env_parallel \
bin_SCRIPTS = parallel sql niceload parcat parset env_parallel \
env_parallel.ash env_parallel.bash env_parallel.csh \
env_parallel.dash env_parallel.fish env_parallel.ksh \
env_parallel.pdksh env_parallel.sh env_parallel.tcsh \

View file

@ -73,7 +73,7 @@ while test $# -gt 0; do
done
cat <<_EOS
cat <<'_EOS'
env_parallel only works if it is a function. Do the below and restart your shell.
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`

View file

@ -24,7 +24,7 @@
use strict;
use Getopt::Long;
$Global::progname="niceload";
$Global::version = 20180123;
$Global::version = 20180222;
Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage();
if($opt::version) {

View file

@ -433,7 +433,7 @@ sub cat_partial {
sysseek(STDIN,shift,0) || die;
$left = shift;
while($read =
sysread(STDIN,$buf, $left > 131072 ? 131072 : $left)){
sysread(STDIN,$buf, $left > 1048524 ? 1048524 : $left)){
$left -= $read;
syswrite(STDOUT,$buf);
}
@ -962,7 +962,7 @@ sub options_hash {
"seqreplace=s" => \$opt::seqreplace,
"slotreplace=s" => \$opt::slotreplace,
"jobs|j=s" => \$opt::jobs,
"delay=f" => \$opt::delay,
"delay=s" => \$opt::delay,
"sshdelay=f" => \$opt::sshdelay,
"load=s" => \$opt::load,
"noswap" => \$opt::noswap,
@ -1231,6 +1231,7 @@ sub parse_options {
# Set --delay to --sshdelay if not set
$opt::delay = $opt::sshdelay;
}
$opt::delay = multiply_time_units($opt::delay);
if($opt::compress_program) {
$opt::compress = 1;
$opt::decompress_program ||= $opt::compress_program." -dc";
@ -1416,7 +1417,7 @@ sub check_invalid_option_combinations {
sub init_globals {
# Defaults:
$Global::version = 20180123;
$Global::version = 20180222;
$Global::progname = 'parallel';
$Global::infinity = 2**31;
$Global::debug = 0;
@ -4563,6 +4564,27 @@ sub multiply_binary_prefix {
return wantarray ? @v : $v[0];
}
sub multiply_time_units {
# Evalualte numbers with time units
# s=1, m=60, h=3600, d=86400
# Input:
# $s = string time units
# Returns:
# $value = int in seconds
my @v = @_;
for(@v) {
defined $_ or next;
if(/[dhms]/i) {
s/s/*1+/gi;
s/m/*60+/gi;
s/h/*3600+/gi;
s/d/*86400+/gi;
$_ = eval $_."0";
}
}
return wantarray ? @v : $v[0];
}
{
my ($disk_full_fh, $b8193, $error_printed);
sub exit_if_disk_full {
@ -10970,13 +10992,8 @@ sub new {
$pct = $1/100;
$delta_time = 1_000_000;
}
if($delta_time =~ /[dhms]/i) {
$delta_time =~ s/s/*1+/gi;
$delta_time =~ s/m/*60+/gi;
$delta_time =~ s/h/*3600+/gi;
$delta_time =~ s/d/*86400+/gi;
$delta_time = eval $delta_time."0";
}
$delta_time = ::multiply_time_units($delta_time);
return bless {
'queue' => [],
'delta_time' => $delta_time,

View file

@ -831,7 +831,7 @@ exit when 3% of the jobs have finished. Kill running jobs.
For backwards compability these also work:
=over 7
=over 12
=item Z<>0

View file

@ -16,7 +16,7 @@ GNU B<parallel> is a Perl script in a single file. It is object
oriented, but contrary to normal Perl scripts each class is not in its
own file. This is due to user experience: The goal is that in a pinch
the user will be able to get GNU B<parallel> working simply by copying
a single file: No need messing around with environment variables like
a single file: No need to mess around with environment variables like
PERL5LIB.
@ -27,6 +27,13 @@ goal of being able to run on old installations. Currently the target
is CentOS 3.9 and Perl 5.8.0.
=head2 Scalability up and down
The smallest system GNU B<parallel> is tested on is a 32 MB ASUS
WL500gP. The largest is a 2 TB 128-core machine. It scales up to
around 100 machines - depending on the duration of each job.
=head2 Exponentially back off
GNU B<parallel> busy waits. This is because the reason why a job is

View file

@ -3,8 +3,10 @@
=head1 GNU Parallel Tutorial
This tutorial shows off much of GNU B<parallel>'s functionality. The
tutorial is meant to learn the options in GNU B<parallel>. The tutorial
is not to show realistic examples from the real world.
tutorial is meant to learn the options in and syntax of GNU
B<parallel>. The tutorial is B<not> to show realistic examples from the
real world. For realistic examples see B<man parallel> in the EXAMPLE
section.
Spend an hour walking through the tutorial. Your command line will
love you for it.

View file

@ -1,3 +1,118 @@
#!/bin/bash
#!/usr/bin/env bash
echo You need to: source `which env_parallel.bash`
# Copyright (C) 2016,2017,2018
# Ole Tange and Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>
# or write to the Free Software Foundation, Inc., 51 Franklin St,
# Fifth Floor, Boston, MA 02110-1301 USA
grepq() {
# grep -q for systems without -q
grep >/dev/null 2>/dev/null "$@"
}
installer() {
source="$1"
script="$2"
into="$3"
if grepq $script $into; then
true already installed
else
echo $source \`which $script\` >> $into
fi
}
while test $# -gt 0; do
key="$1"
case $key in
-i|--install)
installer . env_parallel.bash $HOME/.bashrc
installer . env_parallel.sh $HOME/.shrc
installer . env_parallel.zsh $HOME/.zshenv
installer source env_parallel.ksh $HOME/.kshrc
echo $SHELL | grepq /pdksh &&
installer . env_parallel.pdksh $HOME/.profile
echo $SHELL | grepq /ash &&
installer . env_parallel.ash $HOME/.profile
echo $SHELL | grepq /dash &&
installer . env_parallel.dash $HOME/.profile
installer source env_parallel.csh $HOME/.cshrc
installer source env_parallel.tcsh $HOME/.tcshrc
mkdir -p $HOME/.config/fish
grepq env_parallel.fish $HOME/.config/fish/config.fish ||
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
echo 'Installed env_parallel in:'
echo " " $HOME/.bashrc
echo " " $HOME/.shrc
echo " " $HOME/.zshenv
echo " " $HOME/.config/fish/config.fish
echo " " $HOME/.kshrc
echo " " $HOME/.profile
echo " " $HOME/.cshrc
echo " " $HOME/.tcshrc
exit
;;
*)
echo "Unknown option: $key"
;;
esac
shift # past argument or value
done
cat <<'_EOS'
parset only works if it is a function. The function is defined as part
of env_parallel.
Do the below and restart your shell.
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
Supports: aliases, functions, variables, arrays
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
Supports: functions, variables, arrays
fish: Unsupported
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
Supports: aliases, functions, variables, arrays
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
Supports: aliases, functions, variables, arrays
ash: Put this in $HOME/.profile: . `which env_parallel.ash`
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
Supports: aliases, variables
dash: Put this in $HOME/.profile: . `which env_parallel.dash`
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
Supports: aliases, variables
csh: Unsupported
tcsh: Unsupported
To install in all shells run:
parset --install
For details: see man parset
_EOS

View file

@ -576,7 +576,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err);
sub parse_options {
$Global::version = 20180123;
$Global::version = 20180222;
$Global::progname = 'sql';
# This must be done first as this may exec myself

View file

@ -292,8 +292,11 @@ par_plus_dyn_repl() {
par_linebuffer_tag_slow_output() {
echo "Test output tag with mixing halflines"
parallel --delay 0.5 --tag --line-buffer ping -c 4 ::: localhost lo | field 1
halfline() {
perl -e '$| = 1; map { print $ARGV[0]; sleep(2); print "$_\n" } split //, "Half\n"' $1
}
export -f halfline
parallel --delay 1 -j0 --tag --line-buffer halfline ::: a b
}
export -f $(compgen -A function | grep par_)

View file

@ -81,10 +81,10 @@ par_children_receive_sig() {
}
export -f show_signals
echo | stdout parallel --termseq TERM,200,TERM,100,TERM,50,KILL,25 -u \
--timeout 1 show_signals
--timeout 1s show_signals
echo | stdout parallel --termseq INT,200,TERM,100,KILL,25 -u \
--timeout 1 show_signals
--timeout 1s show_signals
sleep 3
}
@ -138,16 +138,16 @@ par_keeporder_roundrobin() {
par_multiline_commands() {
echo 'bug #50781: joblog format with multiline commands'
rm -f /tmp/jl.$$
seq 1 3 | parallel --jl /tmp/jl.$$ --timeout 2 'sleep {}; echo {};
seq 1 3 | parallel --jl /tmp/jl.$$ --timeout 2s 'sleep {}; echo {};
echo finish {}'
seq 1 3 | parallel --jl /tmp/jl.$$ --timeout 4 --retry-failed 'sleep {}; echo {};
seq 1 3 | parallel --jl /tmp/jl.$$ --timeout 4s --retry-failed 'sleep {}; echo {};
echo finish {}'
rm -f /tmp/jl.$$
}
par_dryrun_timeout_ungroup() {
echo 'bug #51039: --dry-run --timeout 3600 -u breaks'
seq 1000 | stdout parallel --dry-run --timeout 100 -u --jobs 10 echo | wc
echo 'bug #51039: --dry-run --timeout 1.4m -u breaks'
seq 1000 | stdout parallel --dry-run --timeout 1.4m -u --jobs 10 echo | wc
}
par_sqlworker_hostname() {
@ -213,8 +213,36 @@ par_nice() {
# parallel-20160422 OK
parallel --timeout 3 --nice 18 bzip2 '<' ::: /dev/zero /dev/zero &
sleep 1
# Should find 2 lines
ps -eo "%c %n" | grep 18 | grep bzip2
}
par_delay_human_readable() {
# Test that you can use d h m s in --delay
parallel --delay 0.1s echo ::: a b c
parallel --delay 0.01m echo ::: a b c
}
par_exitval_signal() {
echo '### Test --joblog with exitval and Test --joblog with signal -- timing dependent'
rm -f /tmp/parallel_sleep
cp /bin/sleep mysleep
chmod +x mysleep
parallel --joblog /tmp/parallel_joblog_signal \
'./mysleep {}' ::: 30 2>/dev/null &
parallel --joblog /tmp/parallel_joblog_exitval \
'echo foo >/tmp/parallel_sleep; ./mysleep {} && echo sleep was not killed=BAD' ::: 30 2>/dev/null &
while [ ! -e /tmp/parallel_sleep ] ; do
sleep 1
done
sleep 1
killall -6 mysleep
wait
grep -q 134 /tmp/parallel_joblog_exitval && echo exitval=128+6 OK
grep -q '[^0-9]6[^0-9]' /tmp/parallel_joblog_signal && echo signal OK
rm -f /tmp/parallel_joblog_exitval /tmp/parallel_joblog_signal
}
export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | sort | parallel -j6 --tag -k '{} 2>&1'

View file

@ -68,7 +68,7 @@ echo '### Test make .deb package';
stdout make | grep 'To install the GNU Parallel Debian package, run:'
echo '### Test of segfaulting issue'
echo 'This gave /home/tange/bin/stdout: line 3: 20374 Segmentation fault "$@" 2>&1';
echo 'This gave ~/bin/stdout: line 3: 20374 Segmentation fault "$@" 2>&1';
echo 'before adding wait() before exit';
seq 1 300 | stdout parallel ./trysegfault

View file

@ -1,17 +1,2 @@
#!/bin/bash
echo '### Test --joblog with exitval and Test --joblog with signal -- timing dependent'
rm -f /tmp/parallel_sleep
parallel --joblog /tmp/parallel_joblog_signal 'sleep {}' ::: 30 2>/dev/null &
parallel --joblog /tmp/parallel_joblog_exitval 'echo foo >/tmp/parallel_sleep; sleep {} && echo sleep was not killed=BAD' ::: 30 2>/dev/null &
while [ ! -e /tmp/parallel_sleep ] ; do
sleep 1
done
sleep 1
killall -6 sleep
wait
grep -q 134 /tmp/parallel_joblog_exitval && echo exitval=128+6 OK
grep -q '[^0-9]6[^0-9]' /tmp/parallel_joblog_signal && echo signal OK
rm -f /tmp/parallel_joblog_exitval /tmp/parallel_joblog_signal

View file

@ -255,7 +255,7 @@ pod2pdf --output-file ./parset.pdf ./parset.pod --title "GNU parset" \
Warning: pod2pdf not found. Using old parset.pdf
make[0]: Entering directory '/tmp/parallel-00000000/src'
/bin/mkdir -p '/usr/local/bin'
/usr/bin/install -c parallel sql niceload parcat env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/usr/local/bin'
/usr/bin/install -c parallel sql niceload parcat parset env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/usr/local/bin'
make install-exec-hook
make[0]: Entering directory '/tmp/parallel-00000000/src'
rm /usr/local/bin/sem || true

View file

@ -552,7 +552,7 @@ e
echo '### test too long args'
### test too long args
perl -e 'print "z"x1000000' | parallel echo 2>&1
parallel: Error: Command line too long (1000005 >= 131049) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
parallel: Error: Command line too long (1000005 >= 131057) at input 0: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...
perl -e 'print "z"x1000000' | xargs echo 2>&1
xargs: argument line too long
(seq 1 10; perl -e 'print "z"x1000000'; seq 12 15) | stdsort parallel -j1 -km -s 10 echo
@ -819,7 +819,7 @@ echo far
### Test --show-limits
(echo b; echo c; echo f) | parallel -k --show-limits echo {}ar
Maximal size of command: 131049
Maximal used size of command: 131049
Maximal used size of command: 131057
Execution of will continue now, and it will try to read its input
and run commands; if this is not what you wanted to happen, please

View file

@ -45,12 +45,12 @@ par_exit_code dash parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
par_exit_code fish /tmp/mysleep 100 137
par_exit_code fish parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137
par_exit_code fish parallel --halt-on-error now,done=1 /tmp/mysleep ::: 100 137
par_exit_code fish parallel --halt-on-error now,done=1 true ::: 100 1
par_exit_code fish parallel --halt-on-error now,done=1 true ::: 100 0
par_exit_code fish parallel --halt-on-error now,done=1 exit ::: 100 100
par_exit_code fish true;/tmp/mysleep 100 137
par_exit_code fish parallel --halt-on-error now,fail=1 "true;/tmp/mysleep" ::: 100 137
par_exit_code fish parallel --halt-on-error now,done=1 "true;/tmp/mysleep" ::: 100 137
par_exit_code fish parallel --halt-on-error now,done=1 "true;true" ::: 100 1
par_exit_code fish parallel --halt-on-error now,done=1 "true;true" ::: 100 0
par_exit_code fish parallel --halt-on-error now,done=1 "true;exit" ::: 100 100
par_exit_code mksh /tmp/mysleep 100 0
par_exit_code mksh parallel --halt-on-error now,fail=1 /tmp/mysleep ::: 100 137

View file

@ -7,7 +7,7 @@ par__pipe_tee bug #45479: --pipe/--pipepart --tee
par__pipe_tee --pipe --tee
par__pipe_tee 3221225472
par__pipepart_spawn ### bug #46214: Using --pipepart doesnt spawn multiple jobs in version 20150922
par__pipepart_spawn 1:local / 2 / 999
par__pipepart_spawn 1:local / 8 / 999
par__pipepart_tee bug #45479: --pipe/--pipepart --tee
par__pipepart_tee --pipepart --tee
par__pipepart_tee 3221225472
@ -27,8 +27,8 @@ par_interactive sleep 0.1; echo opt-p 2 ?...n
par_interactive sleep 0.1; echo opt-p 3 ?...y
par_interactive spawn /tmp/parallel-script-for-expect
par_k ### Test -k
par_k parallel: Warning: Only enough file handles to run 8 jobs in parallel.
par_k parallel: Warning: Running 'parallel -j0 -N 8 --pipe parallel -j0' or
par_k parallel: Warning: Only enough file handles to run 9 jobs in parallel.
par_k parallel: Warning: Running 'parallel -j0 -N 9 --pipe parallel -j0' or
par_k parallel: Warning: raising 'ulimit -n' or 'nofile' in /etc/security/limits.conf
par_k parallel: Warning: or /proc/sys/fs/file-max may help.
par_k begin
@ -240,26 +240,20 @@ par_line_buffer ### --line-buffer
par_line_buffer 55 55 120
par_line_buffer These must diff: 1
par_linebuffer_tag_slow_output Test output tag with mixing halflines
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output localhost
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output lo
par_linebuffer_tag_slow_output a aH
par_linebuffer_tag_slow_output b bH
par_linebuffer_tag_slow_output a aa
par_linebuffer_tag_slow_output b ba
par_linebuffer_tag_slow_output a al
par_linebuffer_tag_slow_output b bl
par_linebuffer_tag_slow_output a af
par_linebuffer_tag_slow_output b bf
par_linebuffer_tag_slow_output a a
par_linebuffer_tag_slow_output a
par_linebuffer_tag_slow_output b b
par_linebuffer_tag_slow_output b
par_maxlinelen_X_I ### Test max line length -X -I
par_maxlinelen_X_I 3cfc69ee81b0fe7fdbe8eb059ad2da61 -
par_maxlinelen_X_I 201ecb8ca789cecf39ee914a6d75611b -
par_maxlinelen_X_I Chars per line (817788/7): 116826
par_maxlinelen_m_I ### Test max line length -m -I
par_maxlinelen_m_I c78bd0799bc23d8946732f8b3ae3c94e -
@ -337,10 +331,10 @@ par_results_compress 0
par_results_compress 1
par_results_csv bug #: --results csv
par_results_csv --header : --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
@ -365,10 +359,10 @@ par_results_csv --header : --tag ",
par_results_csv --header : --tag 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --header : --tag ",
par_results_csv --header : --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 1,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 2,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 3,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
@ -393,15 +387,15 @@ par_results_csv --header : ",
par_results_csv --header : 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --header : ",
par_results_csv --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
@ -451,15 +445,15 @@ par_results_csv --tag ",
par_results_csv --tag 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --tag ",
par_results_csv --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 1,:,999.999,999.999,0,15,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 2,:,999.999,999.999,0,15,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 3,:,999.999,999.999,0,15,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 4,:,999.999,999.999,0,15,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 5,:,999.999,999.999,0,15,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 6,:,999.999,999.999,0,15,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 7,:,999.999,999.999,0,15,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 8,:,999.999,999.999,0,15,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 9,:,999.999,999.999,0,15,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,

View file

@ -263,10 +263,10 @@ par_linebuffer_files lrz --results
par_linebuffer_files lrz 1
par_max_length_len_128k ### BUG: The length for -X is not close to max (131072)
par_max_length_len_128k 1 12817 131016
par_max_length_len_128k 1 10946 131032
par_max_length_len_128k 1 23691 131040
par_max_length_len_128k 1 15806 131030
par_max_length_len_128k 1 11788 131032
par_max_length_len_128k 1 10947 131046
par_max_length_len_128k 1 23693 131052
par_max_length_len_128k 1 15808 131047
par_max_length_len_128k 1 11789 131045
par_max_length_len_128k 1 25543 131043
par_no_newline_compress bug #41613: --compress --line-buffer - no newline
par_no_newline_compress tagstring=--tagstring {#} compress=--compress

View file

@ -27,8 +27,17 @@ par_commandline_with_newline . : ... ... . . . . false "command<null>with<n
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" d
par_commandline_with_newline . : ... ... . . . . false "command<null>with<null>newlines" e
par_commandline_with_newline Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
par_dryrun_timeout_ungroup bug #51039: --dry-run --timeout 3600 -u breaks
par_delay_human_readable a
par_delay_human_readable b
par_delay_human_readable c
par_delay_human_readable a
par_delay_human_readable b
par_delay_human_readable c
par_dryrun_timeout_ungroup bug #51039: --dry-run --timeout 1.4m -u breaks
par_dryrun_timeout_ungroup 1000 2000 8893
par_exitval_signal ### Test --joblog with exitval and Test --joblog with signal -- timing dependent
par_exitval_signal exitval=128+6 OK
par_exitval_signal signal OK
par_keeporder_roundrobin bug #50081: --keep-order --round-robin should give predictable results
par_keeporder_roundrobin OK
par_kill_int_twice ### Are children killed if GNU Parallel receives INT twice? There should be no sleep at the end

View file

@ -54,7 +54,7 @@ par_autossh AUTOSSH_DEBUG - turn logging to maximum verbosity and log
par_autossh stderr
par_autossh
par_autossh rsync: connection unexpectedly closed (0 bytes received so far) [sender]
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(235) [sender=3.1.2]
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.1]
par_autossh /usr/lib/autossh/autossh: invalid option -- '-'
par_autossh usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS]
par_autossh
@ -86,4 +86,4 @@ par_autossh AUTOSSH_DEBUG - turn logging to maximum verbosity and log
par_autossh stderr
par_autossh
par_autossh rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(235) [Receiver=3.1.2]
par_autossh rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.1]

View file

@ -313,7 +313,7 @@ par_tcsh_funky
par_tcsh_funky 3 arg alias_works
par_tcsh_funky 3 arg alias_works_over_ssh
par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~<7F>ƒ„…†‡ˆ‰ŠŒ<E280B9>Ž<EFBFBD><C5BD>“”•˜™šœ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works
par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ-funky alias_var_works_over_ssh
par_tcsh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€亗儎厗噲墛媽崕彁憭摂晼棙櫄洔潪煚、¥ウЖ┆<EFBFBD><EFBFBD><EFBFBD>辈炒刀犯购患骄坷谅媚牌侨墒颂臀闲岩釉罩棕仝圮蒉哙徕沅彐玷殛腱眍镳耱篝貊鼬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-funky alias_var_works_over_ssh
par_tcsh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
par_tcsh_funky func_echo: Command not found.
par_tcsh_funky func_echo: Command not found.
@ -1176,11 +1176,13 @@ par_bash_man exit value 2 should be 2
par_bash_man Unknown option: no-such-option
par_bash_man exit value 255 should be 255
par_bash_funky
par_bash_funky
par_bash_funky
par_bash_funky \\\\\\\\
par_bash_funky 
par_bash_funky 
par_bash_funky -funkymultiline
par_bash_funky -funkymultiline
par_bash_funky
par_bash_funky
par_bash_funky space 6
par_bash_funky space 6
par_bash_funky 3 arg alias_works
@ -1197,6 +1199,8 @@ par_bash_funky function_works
par_bash_funky function_works_over_ssh
par_bash_funky myvar works
par_bash_funky myvar works
par_bash_funky -funkymultiline
par_bash_funky -funkymultiline
par_bash_environment_too_big bug #50815: env_parallel should warn if the environment is too big
par_bash_environment_too_big OK_bigvar
par_bash_environment_too_big OK_bigvar_remote

View file

@ -6,6 +6,7 @@ par_zsh_embed your
par_zsh_embed code
par_zsh_embed here
par_zsh_embed parallel_OK
par_zsh_embed /home/zsh/.zshenv:.:3: no such file or directory: env_parallel.zsh
par_zsh_embed _which:12: argument list too long: perl
par_zsh_embed env_parallel: Error: Your environment is too big.
par_zsh_embed env_parallel: Error: Try running this in a clean environment once:

View file

@ -33,7 +33,7 @@ If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
To silence this citation notice: run 'parallel --citation' once.
10 files to edit
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"file1" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lE173: 9 more files to edit[?12l[?25h[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"file1" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lE173: 9 more files to edit[?12l[?25h[?1l>[?1049lAcademic tradition requires you to cite works you base your article on.
If you use programs that use GNU Parallel to process data for an article in a
scientific publication, please cite:

View file

@ -7,8 +7,6 @@ par_env_newline_backslash_bash 8
par_env_newline_backslash_csh ### Test --env for \n and \\ - single and double (*csh only) - no output is good but csh fails
par_env_newline_backslash_csh 2 2\ \92V2=\ \92
par_env_newline_backslash_csh 2 2\\ \92V2=\\ \92
par_env_newline_backslash_csh 2 Unmatched ".
par_env_newline_backslash_csh 2 Unmatched '"'.
par_env_newline_backslash_onall_bash ### Test --env for \n and \\ - single and double --onall (bash only) - no output is good
par_env_newline_backslash_onall_bash 16
par_env_newline_backslash_onall_bash 16
@ -17,6 +15,7 @@ par_env_newline_backslash_onall_bash 8 10
par_env_newline_backslash_onall_bash 8 10V2=
par_env_newline_backslash_onall_bash 8 2\\ \92V2=\\ \92
par_env_newline_backslash_onall_csh ### Test --env for \n and \\ - single and double --onall (*csh only) - no output is good but csh fails
par_env_newline_backslash_onall_csh 8 Unmatched ".
par_space ### Test --env - https://savannah.gnu.org/bugs/?37351
par_space a 2 spaces b 1
par_space a 2 spaces b 1

View file

@ -107,7 +107,7 @@ a1.gif 2.gif 3.gif 4.gif 5.gif 6.gifb1 2 3 4 5 6c1 2 3 4 5 6
a1.gifb1c1 a2.gifb2c2 a3.gifb3c3 a4.gifb4c4 a5.gifb5c5 a6.gifb6c6
echo '### Test -m with 60000 args'; seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -km echo a{}b{.}c{.} | tee >(wc; sleep 1) >(md5sum; sleep 1) >/dev/null; wait; sleep 1
### Test -m with 60000 args
f5e1ea298b25c5516d63061df5c56f79 -
d025d2d552a9ff809216d17d408de0b4 -
10 179980 1286692
echo '### Test -X with 60000 args'; seq 1 60000 | perl -pe 's/$/.gif/' | parallel -j1 -kX echo a{}b{.}c{.} | tee >(wc; sleep 1) >(md5sum; sleep 1) >/dev/null; wait; sleep 1
### Test -X with 60000 args

View file

@ -5,12 +5,12 @@ Chars per line: 116300
6 119994 697800
echo '### Test of xargs -X command lines > 130k'; seq 1 60000 | parallel -X -j1 echo a{}b{}c | tee >(wc >/tmp/bwc$$) >(sort | (sleep 1; md5sum)) >/tmp/b$$; wait; CHAR=$(cat /tmp/b$$ | wc -c); LINES=$(cat /tmp/b$$ | wc -l); echo "Chars per line:" $(echo "$CHAR/$LINES" | bc); cat /tmp/bwc$$; rm /tmp/b$$ /tmp/bwc$$
### Test of xargs -X command lines > 130k
3cfc69ee81b0fe7fdbe8eb059ad2da61 -
201ecb8ca789cecf39ee914a6d75611b -
Chars per line: 116826
7 60000 817788
echo '### Test of xargs -m command lines > 130k'; seq 1 60000 | parallel -k -j1 -m echo | md5sum
### Test of xargs -m command lines > 130k
00b8aed2c1bc28368381273aa2ae104e -
590091fd85dcb98f91c5e89cdddf21ef -
echo '### This causes problems if we kill child processes'; # 2>/dev/null to avoid parallel: Warning: Starting 45 processes took > 2 sec.
### This causes problems if we kill child processes
seq 2 40 | parallel -j 0 seq 1 10 2>/dev/null | sort | md5sum
@ -75,11 +75,11 @@ parallel: Error: --pipepart is incompatible with --max-replace-args, --max-lines
echo '### bug #42893: --block should not cause decimals in cat_partial'
### bug #42893: --block should not cause decimals in cat_partial
seq 100000 >/tmp/parallel-decimal; parallel --dry-run -kvv --pipepart --block 0.12345M -a /tmp/parallel-decimal true; rm /tmp/parallel-decimal
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 0 129450 | (true)
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 129450 129450 | (true)
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 258900 129450 | (true)
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 388350 129450 | (true)
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 517800 71095 | (true)
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>1048524?1048524:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 0 129450 | (true)
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>1048524?1048524:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 129450 129450 | (true)
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>1048524?1048524:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 258900 129450 | (true)
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>1048524?1048524:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 388350 129450 | (true)
</tmp/parallel-decimal perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>1048524?1048524:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 517800 71095 | (true)
echo '### bug #42902: profiles containing arguments with space'
### bug #42902: profiles containing arguments with space
echo "--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' " > ~/.parallel/FULLPATH; parallel -JFULLPATH echo FULLPATH ::: $0

View file

@ -74,8 +74,8 @@ please cite as described in 'parallel --citation'.
echo '### bug #39787: --xargs broken'
### bug #39787: --xargs broken
nice perl -e 'for(1..30000){print "$_\n"}' | $NICEPAR --xargs -k echo | perl -ne 'print length $_,"\n"'
131040
37854
131052
37842
echo '### --delay should grow by 3 sec per arg'
### --delay should grow by 3 sec per arg
stdout /usr/bin/time -f %e parallel --delay 3 true ::: 1 2 | perl -ne '$_ >= 3 and $_ <= 8 and print "OK\n"'

View file

@ -1,3 +0,0 @@
### Test --joblog with exitval and Test --joblog with signal -- timing dependent
exitval=128+6 OK
signal OK

View file

@ -63,7 +63,7 @@ echo '### Test --number-of-cpus'; stdout $NICEPAR --number-of-cpus
1
echo '### Test --number-of-cores'; stdout $NICEPAR --number-of-cores
### Test --number-of-cores
2
8
echo '### Test --use-cpus-instead-of-cores'; (seq 1 8 | stdout parallel --use-cpus-instead-of-cores -j100% sleep) && echo CPUs done & (seq 1 8 | stdout parallel -j100% sleep) && echo cores done & echo 'Cores should complete first on machines with less than 8 physical CPUs'; wait
### Test --use-cpus-instead-of-cores
Cores should complete first on machines with less than 8 physical CPUs
@ -400,7 +400,7 @@ echo "### BUG: empty lines with --show-limit"
### BUG: empty lines with --show-limit
echo | $NICEPAR --show-limits
Maximal size of command: 131049
Maximal used size of command: 131049
Maximal used size of command: 131057
Execution of will continue now, and it will try to read its input
and run commands; if this is not what you wanted to happen, please