Released as 20180522 ('GreatMarchOfReturn')

This commit is contained in:
Ole Tange 2018-05-23 01:07:40 +02:00
parent 9b2012f021
commit 87b9d9fe29
15 changed files with 299 additions and 92 deletions

33
NEWS
View file

@ -1,3 +1,36 @@
20180522
* --tty allows for more programs accessing /dev/tty in parallel. Some
programs require tty access without using it.
* env_parallel --session will record names in current environment in
$PARALLEL_IGNORED_NAMES and exit. It is only used with env_parallel,
and can work like --record-env but in a single session.
* 35 day course: Linux shell scripting and text processing for big
data https://comquest.in/training
* How To Use Your Entire CPU In Bash With Parallel
https://bash-prompt.net/guides/parallell-bash/
* An easy way to run parallel jobs on Stampede2
https://blog.uta.edu/xus/2017/09/29/an-easy-way-to-run-parallel-jobs-on-stampede2/
* Get more done at the Linux command line with GNU Parallel
https://opensource.com/article/18/5/gnu-parallel
* Save Time with Modern Search Techniques
https://www.sans.org/summit-archives/file/summit-archive-1524582079.pdf
* GNU Parallel: haz más cosas simultáneamente en el terminal
https://blog.desdelinux.net/gnu-parallel-haz-mas-cosas-simultaneamente-en-el-terminal/
* 「今日から使い切る」ための GNU Parallelによる並列処理入門
https://www.slideshare.net/koji_matsuda/gnu-parallel
* Bug fixes and man page updates.
20180422
* --csv makes GNU Parallel parse the input sources as CSV. When used

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-20180422.tar.bz2
bzip2 -dc parallel-20180422.tar.bz2 | tar xvf -
cd parallel-20180422
wget https://ftpmirror.gnu.org/parallel/parallel-20180522.tar.bz2
bzip2 -dc parallel-20180522.tar.bz2 | tar xvf -
cd parallel-20180522
./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-20180422.tar.bz2
bzip2 -dc parallel-20180422.tar.bz2 | tar xvf -
cd parallel-20180422
wget https://ftpmirror.gnu.org/parallel/parallel-20180522.tar.bz2
bzip2 -dc parallel-20180522.tar.bz2 | tar xvf -
cd parallel-20180522
./configure --prefix=$HOME && make && make install
Or if your system lacks 'make' you can simply copy src/parallel

20
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for parallel 20180422.
# Generated by GNU Autoconf 2.69 for parallel 20180522.
#
# Report bugs to <bug-parallel@gnu.org>.
#
@ -579,8 +579,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20180422'
PACKAGE_STRING='parallel 20180422'
PACKAGE_VERSION='20180522'
PACKAGE_STRING='parallel 20180522'
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL=''
@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures parallel 20180422 to adapt to many kinds of systems.
\`configure' configures parallel 20180522 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1281,7 +1281,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of parallel 20180422:";;
short | recursive ) echo "Configuration of parallel 20180522:";;
esac
cat <<\_ACEOF
@ -1357,7 +1357,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
parallel configure 20180422
parallel configure 20180522
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by parallel $as_me 20180422, which was
It was created by parallel $as_me 20180522, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@ -2237,7 +2237,7 @@ fi
# Define the identity of the package.
PACKAGE='parallel'
VERSION='20180422'
VERSION='20180522'
cat >>confdefs.h <<_ACEOF
@ -2880,7 +2880,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by parallel $as_me 20180422, which was
This file was extended by parallel $as_me 20180522, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -2942,7 +2942,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
parallel config.status 20180422
parallel config.status 20180522
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

View file

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

View file

@ -220,6 +220,9 @@ https://bash-prompt.net/guides/parallell-bash/
https://blog.uta.edu/xus/2017/09/29/an-easy-way-to-run-parallel-jobs-on-stampede2/
https://opensource.com/article/18/5/gnu-parallel
GNU Parallel: haz más cosas simultáneamente en el terminal
https://blog.desdelinux.net/gnu-parallel-haz-mas-cosas-simultaneamente-en-el-terminal/
https://www.sans.org/summit-archives/file/summit-archive-1524582079.pdf

View file

@ -1,6 +1,6 @@
<directory name="parallel" rev="220" srcmd5="daa6220a295b073bc0b1ef06cfc40094" vrev="1">
<entry md5="24fd1167f3c45f22bea8588cdbdb5b5a" mtime="1524431598" name="parallel-20180422.tar.bz2" size="1745964" />
<entry md5="8c18c6cbcc0554eec175850097aa36e1" mtime="1524431598" name="parallel.spec" size="4666" />
<entry md5="75ab8eb06cabba7e19fd971fc54de862" mtime="1524431599" name="parallel_20180422.dsc" size="556" />
<entry md5="e76e808b96e7a45a919567010e43e7f9" mtime="1524431599" name="parallel_20180422.tar.gz" size="1951673" />
<directory name="parallel" rev="221" srcmd5="2a59ca9bd049f2651990628f4652146f" vrev="1">
<entry md5="e5e3a5c63ae38df0d7f01a47b7273d80" mtime="1527030250" name="parallel-20180522.tar.bz2" size="1758080" />
<entry md5="4b49188d16aa962e3c3c3a692e7095cc" mtime="1527030250" name="parallel.spec" size="4666" />
<entry md5="574a88b53a981480cf908707c52233bc" mtime="1527030251" name="parallel_20180522.dsc" size="556" />
<entry md5="43dbfae83b547314f1288c7ec02038b4" mtime="1527030251" name="parallel_20180522.tar.gz" size="1965570" />
</directory>

View file

@ -1,6 +1,6 @@
Summary: Shell tool for executing jobs in parallel
Name: parallel
Version: 20180422
Version: 20180522
Release: 1.2
License: GPL
Group: Productivity/File utilities

View file

@ -1,6 +1,6 @@
Summary: Shell tool for executing jobs in parallel
Name: parallel
Version: 20180422
Version: 20180522
Release: 1.2
License: GPL
Group: Productivity/File utilities

View file

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

View file

@ -1450,7 +1450,7 @@ sub check_invalid_option_combinations {
sub init_globals {
# Defaults:
$Global::version = 20180423;
$Global::version = 20180522;
$Global::progname = 'parallel';
$Global::infinity = 2**31;
$Global::debug = 0;

View file

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

View file

@ -20,7 +20,6 @@ polarhome: polar
true
polar: ../src/parallel tests-to-run/*polar* wanted-results/*polar* prereqlocal
make stopvm
time bash Start.sh polar NONE || true
touch ~/.parallel/will-cite

View file

@ -1,18 +1,23 @@
#!/bin/bash
# Check servers up on http://www.polarhome.com/service/status/
unset TIMEOUT
. `which env_parallel.bash`
env_parallel --session
P_ALL="alpha tru64 hpux-ia64 syllable pidora raspbian solaris openindiana aix hpux qnx debian-ppc suse solaris-x86 mandriva ubuntu scosysv unixware centos miros macosx redhat netbsd openbsd freebsd debian dragonfly vax ultrix minix irix hurd beaglebone cubieboard2"
P_NOTWORKING="vax alpha openstep"
P_NOTWORKING_YET="ultrix irix"
P_WORKING="openbsd tru64 debian freebsd redhat netbsd macosx miros centos unixware pidora ubuntu scosysv raspbian solaris-x86 aix mandriva debian-ppc suse solaris hpux openindiana hpux-ia64"
P_WORKING="openbsd tru64 debian redhat netbsd macosx miros centos unixware pidora scosysv raspbian solaris-x86 aix mandriva debian-ppc suse solaris hpux hurd freebsd"
P_TEMPORARILY_BROKEN="minix dragonfly ubuntu openindiana hpux-ia64 beaglebone cubieboard2"
P_WORKING="openbsd tru64 debian redhat netbsd macosx miros centos unixware pidora scosysv raspbian solaris-x86 aix mandriva debian-ppc suse solaris hpux hurd freebsd ubuntu"
P_TEMPORARILY_BROKEN="minix dragonfly openindiana hpux-ia64 beaglebone cubieboard2"
P="$P_WORKING"
POLAR=`parallel -k echo {}.polarhome.com ::: $P`
S_POLAR=`parallel -k echo -S 1/{}.polarhome.com ::: $P`
# 2018-04-22 TIMEOUT=20
TIMEOUT=25
RETRIES=4
@ -23,6 +28,9 @@ doit() {
# Avoid the stupid /etc/issue.net banner at Polarhome: -oLogLevel=quiet
PARALLEL_SSH="ssh -oLogLevel=quiet"
export PARALLEL_SSH
export TIMEOUT
export RETRIES
echo TIMEOUT=$TIMEOUT RETRIES=$RETRIES
copy() {
# scp, but atomic (avoid half files if disconnected)
@ -105,8 +113,7 @@ doit() {
par_nonall 'start=2; env_parset var1,var2,var3 seq \$start ::: 2 3 4; echo $var1,$var2,$var3' 2>&1
}
. `which env_parallel.bash`
env_parallel -u --env _ -Sredhat.p doit ::: 1
env_parallel -u -Sredhat.p doit ::: 1
# eval 'myfunc() { echo '$(perl -e 'print "x"x20000')'; }'
# env_parallel myfunc ::: a | wc # OK

View file

@ -1,3 +1,4 @@
TIMEOUT=25 RETRIES=4
### Copy commands to servers
Done copying
aix.polarhome.com ### Test if empty command in process list causes problems
@ -34,6 +35,8 @@ suse.polarhome.com ### Test if empty command in process list causes problems
suse.polarhome.com OK_with_empty_cmd
tru64.polarhome.com ### Test if empty command in process list causes problems
tru64.polarhome.com OK_with_empty_cmd
ubuntu.polarhome.com ### Test if empty command in process list causes problems
ubuntu.polarhome.com OK_with_empty_cmd
unixware.polarhome.com UX:sh (/bin/sh): ERROR: -f: is not an identifier
aix.polarhome.com Works on aix7
centos.polarhome.com Works on centos.polarhome.com
@ -53,6 +56,7 @@ solaris-x86.polarhome.com Works on solaris-x86
solaris.polarhome.com Works on solaris
suse.polarhome.com Works on suse
tru64.polarhome.com Works on tru64.polarhome.com
ubuntu.polarhome.com Works on ubuntu
unixware.polarhome.com Works on unixware.polarhome.com
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found
aix.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: The file access permissions do not allow the specified action. at /home/t/tange/bin/parallel line 0000
@ -94,6 +98,8 @@ suse.polarhome.com OK
tru64.polarhome.com Error in tempfile() using /XXXXXXXX.arg: Parent directory (/) is not writable
tru64.polarhome.com at /home/t/tange/bin/parallel line 0000
tru64.polarhome.com OK
ubuntu.polarhome.com Error in tempfile() using template /XXXXXXXX.arg: Could not create temp file /XXXXXXXX.arg: Permission denied at /home/t/tange/bin/parallel line 0000.
ubuntu.polarhome.com OK
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found
unixware.polarhome.com UX:env: ERROR: No such file or directory: bash
@ -117,6 +123,7 @@ solaris-x86.polarhome.com bash only A
solaris.polarhome.com bash only A
suse.polarhome.com /home/t/tange/bin/bash: func: command not found
tru64.polarhome.com bash only A
ubuntu.polarhome.com bash only A
unixware.polarhome.com UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 1: `(' unexpected
### Does PARALLEL_SHELL help exporting a bash function not kill parallel
@ -138,6 +145,7 @@ solaris-x86.polarhome.com bash only B
solaris.polarhome.com bash only B
suse.polarhome.com bash only B
tru64.polarhome.com bash only B
ubuntu.polarhome.com bash only B
unixware.polarhome.com bash only B
### env_parallel echo :::: <(echo OK)
@ -314,6 +322,16 @@ tru64.polarhome.com /home/t/tange/.profile
tru64.polarhome.com /home/t/tange/.cshrc
tru64.polarhome.com /home/t/tange/.tcshrc
tru64.polarhome.com install-OK
ubuntu.polarhome.com Installed env_parallel in:
ubuntu.polarhome.com /home/t/tange/.bashrc
ubuntu.polarhome.com /home/t/tange/.shrc
ubuntu.polarhome.com /home/t/tange/.zshenv
ubuntu.polarhome.com /home/t/tange/.config/fish/config.fish
ubuntu.polarhome.com /home/t/tange/.kshrc
ubuntu.polarhome.com /home/t/tange/.profile
ubuntu.polarhome.com /home/t/tange/.cshrc
ubuntu.polarhome.com /home/t/tange/.tcshrc
ubuntu.polarhome.com install-OK
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found
unixware.polarhome.com UX:env: ERROR: No such file or directory: bash
aix.polarhome.com env_parallel run-OK
@ -334,6 +352,7 @@ solaris-x86.polarhome.com env_parallel run-OK
solaris.polarhome.com env_parallel run-OK
suse.polarhome.com env_parallel run-OK
tru64.polarhome.com env_parallel run-OK
ubuntu.polarhome.com env_parallel run-OK
unixware.polarhome.com env_parallel run-OK
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found
aix.polarhome.com reading from process substitution OK
@ -352,6 +371,7 @@ solaris-x86.polarhome.com reading from process substitution OK
solaris.polarhome.com reading from process substitution OK
suse.polarhome.com reading from process substitution OK
tru64.polarhome.com reading from process substitution OK
ubuntu.polarhome.com reading from process substitution OK
### parset arr seq ::: 2 3 4
(bash ksh zsh only)
@ -375,6 +395,7 @@ solaris-x86.polarhome.com 1 2 1 2 3 1 2 3 4
solaris.polarhome.com 1 2 1 2 3 1 2 3 4
suse.polarhome.com 1 2 1 2 3 1 2 3 4
tru64.polarhome.com 1 2 1 2 3 1 2 3 4
ubuntu.polarhome.com 1 2 1 2 3 1 2 3 4
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found
unixware.polarhome.com UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 1: `arr=' unexpected
### env_parset arr seq ::: 2 3 4
@ -398,6 +419,7 @@ solaris-x86.polarhome.com 2 2 3 2 3 4
solaris.polarhome.com 1 2 1 2 1 2
suse.polarhome.com 2 2 3 2 3 4
tru64.polarhome.com 2 2 3 2 3 4
ubuntu.polarhome.com 2 2 3 2 3 4
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found
unixware.polarhome.com UX:sh (/bin/sh): ERROR: /bin/sh: Syntax error at line 1: `arr=' unexpected
@ -423,6 +445,7 @@ solaris-x86.polarhome.com 1 2,1 2 3,1 2 3 4
solaris.polarhome.com 1 2,1 2 3,1 2 3 4
suse.polarhome.com 1 2,1 2 3,1 2 3 4
tru64.polarhome.com 1 2,1 2 3,1 2 3 4
ubuntu.polarhome.com 1 2,1 2 3,1 2 3 4
unixware.polarhome.com ,,
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found
### env_parset var1,var2,var3 seq ::: 2 3 4
@ -446,5 +469,6 @@ solaris-x86.polarhome.com 2,2 3,2 3 4
solaris.polarhome.com 1 2,1 2,1 2
suse.polarhome.com 2,2 3,2 3 4
tru64.polarhome.com 2,2 3,2 3 4
ubuntu.polarhome.com 2,2 3,2 3 4
unixware.polarhome.com 2,2 3,2 3 4
unixware.polarhome.com UX:sh (/bin/sh): ERROR: source: Not found

View file

@ -539,7 +539,7 @@ B D
seq 10 20 | parallel --tmux 'echo start {}; sleep {}; echo done {}'
See output with: tmux -S /tmp/parallel-tutorial-tmpdir/tmsXXXXX attach
tmux -S /tmp/tmsXXXXX attach
no current session
no sessions
parallel --delay 2.5 echo Starting {}\;date ::: 1 2 3
Starting 1
DATE OUTPUT
@ -549,8 +549,14 @@ Starting 3
DATE OUTPUT
parallel --timeout 4.1 sleep {}\; echo {} ::: 2 4 6 8
9
parallel: Warning: This job was killed because it timed out:
parallel: Warning: sleep 6; echo 6
parallel: Warning: This job was killed because it timed out:
parallel: Warning: sleep 8; echo 8
parallel --timeout 200% sleep {}\; echo {} ::: 2.1 2.2 3 7 2.3
9
parallel: Warning: This job was killed because it timed out:
parallel: Warning: sleep 7; echo 7
parallel --eta sleep ::: 1 3 2 2 1 3 3 2 1
Computers / CPU cores / Max jobs to run
@ -660,6 +666,8 @@ tried 1
export -f show_signals
echo | parallel --termseq TERM,200,TERM,100,TERM,50,KILL,25 \
-u --timeout 1 show_signals
parallel: Warning: This job was killed because it timed out:
parallel: Warning: show_signals ''
echo | parallel --termseq INT,200,TERM,100,KILL,25 \
-u --timeout 1 show_signals
/bin/bash: show_signals: command not found
@ -757,42 +765,42 @@ Unknown option: :::
Unknown option: green
env_parallel only works if it is a function. Do the below and restart your shell.
bash: Put this in ~/.bashrc: . /usr/local/bin/env_parallel.bash
E.g. by doing: echo '. /usr/local/bin/env_parallel.bash' >> ~/.bashrc
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 ~/.zshrc: . /usr/local/bin/env_parallel.zsh
E.g. by doing: echo '. /usr/local/bin/env_parallel.zsh' >> ~/.zshenv
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: Put this in ~/.config/fish/config.fish:
fish: Put this in $HOME/.config/fish/config.fish:
. (which env_parallel.fish)
E.g. by doing:
echo '. (which env_parallel.fish)' >> ~/.config/fish/config.fish
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
Supports: aliases, functions, variables, arrays
ksh: Put this in ~/.kshrc: source /usr/local/bin/env_parallel.ksh
E.g. by doing: echo 'source /usr/local/bin/env_parallel.ksh' >> ~/.kshrc
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 ~/.profile: source /usr/local/bin/env_parallel.pdksh
E.g. by doing: echo '. /usr/local/bin/env_parallel.pdksh' >> ~/.profile
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 ~/.profile: . /usr/local/bin/env_parallel.ash
E.g. by doing: echo '. /usr/local/bin/env_parallel.ash' >> ~/.profile
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 ~/.profile: . /usr/local/bin/env_parallel.dash
E.g. by doing: echo '. /usr/local/bin/env_parallel.dash' >> ~/.profile
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: Put this in ~/.cshrc: source /usr/local/bin/env_parallel.csh
E.g. by doing: echo 'source /usr/local/bin/env_parallel.csh' >> ~/.cshrc
csh: Put this in $HOME/.cshrc: source `which env_parallel.csh`
E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
Supports: aliases, variables, arrays with no special chars
tcsh: Put this in ~/.tcshrc: source /usr/local/bin/env_parallel.tcsh
E.g. by doing: echo 'source /usr/local/bin/env_parallel.tcsh' >> ~/.tcshrc
tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh`
E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc
Supports: aliases, variables, arrays with no special chars
To install in all shells run:
@ -841,6 +849,7 @@ KONSOLE_DBUS_WINDOW
KONSOLE_PROFILE_NAME
LANG
LANGUAGE
LC_ALL
LC_TIME
LESS
LESSCLOSE
@ -853,7 +862,6 @@ MAKE_TERMERR
MAKE_TERMOUT
MANDATORY_PATH
MFLAGS
MOZ_NO_REMOTE
ORACLE_HOME
ORACLE_SID
PARALLEL
@ -926,42 +934,42 @@ Unknown option: :::
Unknown option: bar
env_parallel only works if it is a function. Do the below and restart your shell.
bash: Put this in ~/.bashrc: . /usr/local/bin/env_parallel.bash
E.g. by doing: echo '. /usr/local/bin/env_parallel.bash' >> ~/.bashrc
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 ~/.zshrc: . /usr/local/bin/env_parallel.zsh
E.g. by doing: echo '. /usr/local/bin/env_parallel.zsh' >> ~/.zshenv
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: Put this in ~/.config/fish/config.fish:
fish: Put this in $HOME/.config/fish/config.fish:
. (which env_parallel.fish)
E.g. by doing:
echo '. (which env_parallel.fish)' >> ~/.config/fish/config.fish
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
Supports: aliases, functions, variables, arrays
ksh: Put this in ~/.kshrc: source /usr/local/bin/env_parallel.ksh
E.g. by doing: echo 'source /usr/local/bin/env_parallel.ksh' >> ~/.kshrc
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 ~/.profile: source /usr/local/bin/env_parallel.pdksh
E.g. by doing: echo '. /usr/local/bin/env_parallel.pdksh' >> ~/.profile
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 ~/.profile: . /usr/local/bin/env_parallel.ash
E.g. by doing: echo '. /usr/local/bin/env_parallel.ash' >> ~/.profile
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 ~/.profile: . /usr/local/bin/env_parallel.dash
E.g. by doing: echo '. /usr/local/bin/env_parallel.dash' >> ~/.profile
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: Put this in ~/.cshrc: source /usr/local/bin/env_parallel.csh
E.g. by doing: echo 'source /usr/local/bin/env_parallel.csh' >> ~/.cshrc
csh: Put this in $HOME/.cshrc: source `which env_parallel.csh`
E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
Supports: aliases, variables, arrays with no special chars
tcsh: Put this in ~/.tcshrc: source /usr/local/bin/env_parallel.tcsh
E.g. by doing: echo 'source /usr/local/bin/env_parallel.tcsh' >> ~/.tcshrc
tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh`
E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc
Supports: aliases, variables, arrays with no special chars
To install in all shells run:
@ -971,7 +979,7 @@ To install in all shells run:
For details: see man env_parallel
parallel -vv --pipepart --block 1M wc :::: num30000
<num30000 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 168894 | (wc)
<num30000 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 168894 |(wc)
30000 30000 168894
my_func3() {
echo in my_func $1 > $1.out
@ -983,18 +991,152 @@ ssh -l parallel lo -- mkdir -p ./.TMPWORKDIR && rsync --protocol 30 -rlDzR -essh
parset myvar1,myvar2 echo ::: a b
echo $myvar1
echo $myvar2
Unknown option: myvar1,myvar2
Unknown option: echo
Unknown option: :::
Unknown option: a
Unknown option: b
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
/bin/bash: parset: command not found
parset myarray seq {} 5 ::: 1 2 3
echo "${myarray[1]}"
Unknown option: myarray
Unknown option: seq
Unknown option: {}
Unknown option: 5
Unknown option: :::
Unknown option: 1
Unknown option: 2
Unknown option: 3
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
/bin/bash: parset: command not found
cmd=("echo '<<joe \"double space\" cartoon>>'" "pwd")
parset data ::: "${cmd[@]}"
echo "${data[0]}"
echo "${data[1]}"
Unknown option: data
Unknown option: :::
Unknown option: echo '<<joe "double space" cartoon>>'
Unknown option: pwd
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
/bin/bash: line 1: parset: command not found
parallel --sqlandworker csv:////%2Ftmp%2Flog.csv \
seq ::: 10 ::: 12 13 14
cat /tmp/log.csv
@ -1262,7 +1404,6 @@ The second finished running in the foreground
First started
First done
sem --id my_id -u 'echo Second started; sleep 10; echo Second done'
Second done
sem --jobs 3 --id my_id -u 'echo Start 1; sleep 5; echo 1 done' &&
sem --jobs 3 --id my_id -u 'echo Start 2; sleep 6; echo 2 done' &&
sem --jobs 3 --id my_id -u 'echo Start 3; sleep 7; echo 3 done' &&
@ -1283,8 +1424,8 @@ Start 4
Slow started
Forced running after 1 sec
Slow ended
Give up after 2 secs
parallel: Warning: Semaphore timed out. Stealing the semaphore.
parallel: Warning: Semaphore timed out. Exiting.
parallel --help
Usage:
@ -1317,15 +1458,15 @@ Academic 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:
O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
;login: The USENIX Magazine, February 2011:42-47.
O. Tange (2018): GNU Parallel 2018, Mar 2018, ISBN 9781387509881,
DOI https://doi.org/10.5281/zenodo.1146014
This helps funding further development; AND IT WON'T COST YOU A CENT.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
parallel --version
GNU parallel VERSION
Copyright (C) 2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017
Copyright (C) 2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018
Ole Tange and 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.
@ -1344,25 +1485,25 @@ Academic 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:
@article{Tange2011a,
title = {GNU Parallel - The Command-Line Power Tool},
author = {O. Tange},
address = {Frederiksberg, Denmark},
journal = {;login: The USENIX Magazine},
month = {Feb},
number = {1},
volume = {36},
url = {http://www.gnu.org/s/parallel},
year = {2011},
pages = {42-47},
doi = {http://dx.doi.org/10.5281/zenodo.16303}
@book{tange_ole_2018_1146014,
author = {Tange, Ole},
title = {GNU Parallel 2018},
publisher = {Ole Tange},
month = Mar,
year = 2018,
ISBN = {9781387509881},
doi = {10.5281/zenodo.1146014},
url = {https://doi.org/10.5281/zenodo.1146014}
}
(Feel free to use \nocite{Tange2011a})
(Feel free to use \nocite{tange_ole_2018_1146014})
This helps funding further development; AND IT WON'T COST YOU A CENT.
If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
More about funding GNU Parallel and the citation notice:
https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice
If you send a copy of your published article to tange@gnu.org, it will be
mentioned in the release notes of next version of GNU Parallel.