mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-24 06:57:55 +00:00
Released as 20200422 ('10years')
This commit is contained in:
parent
0c21f74a00
commit
e5fd1c0767
|
@ -36,7 +36,7 @@ run() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! perl -e 1; then
|
if ! perl -e 1; then
|
||||||
echo No perl installed. GNU Parallel depends on perl. Install perl and retry.
|
echo No perl installed. GNU Parallel depends on perl. Install perl and retry.
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ run() {
|
||||||
perl -ne '/.*(parallel-\d{8})/ and print $1."\n"' |
|
perl -ne '/.*(parallel-\d{8})/ and print $1."\n"' |
|
||||||
perl -e 'print ((reverse sort <>)[0])')
|
perl -e 'print ((reverse sort <>)[0])')
|
||||||
if test \! -e $latest.tar.bz2; then
|
if test \! -e $latest.tar.bz2; then
|
||||||
# Source tar does not exist
|
# Source tar does not exist
|
||||||
rm -f $latest.tar.bz2 $latest.tar.bz2.sig
|
rm -f $latest.tar.bz2 $latest.tar.bz2.sig
|
||||||
$get http://ftpmirror.gnu.org/parallel/$latest.tar.bz2 > $latest.tar.bz2
|
$get http://ftpmirror.gnu.org/parallel/$latest.tar.bz2 > $latest.tar.bz2
|
||||||
$get http://ftpmirror.gnu.org/parallel/$latest.tar.bz2.sig > $latest.tar.bz2.sig
|
$get http://ftpmirror.gnu.org/parallel/$latest.tar.bz2.sig > $latest.tar.bz2.sig
|
||||||
|
@ -56,30 +56,36 @@ run() {
|
||||||
# GnuPG installed
|
# GnuPG installed
|
||||||
# Setup .gnupg/gpg.conf if not already done
|
# Setup .gnupg/gpg.conf if not already done
|
||||||
echo | gpg 2>/dev/null >/dev/null
|
echo | gpg 2>/dev/null >/dev/null
|
||||||
keyserver1=keys.gnupg.net
|
if gpg --list-keys 0xFFFFFFF1 && gpg --list-keys 0x88888888 ; then
|
||||||
keyserver2=pool.sks-keyservers.net
|
echo Keys fetched
|
||||||
if gpg --keyserver $keyserver1 --recv-key 0xFFFFFFF1 ||
|
# OK
|
||||||
gpg --keyserver $keyserver2 --recv-key 0xFFFFFFF1 ; then
|
return 0
|
||||||
if gpg --keyserver $keyserver1 --recv-key 0x88888888 ||
|
else
|
||||||
gpg --keyserver $keyserver2 --recv-key 0x88888888; then
|
keyserver1=keys.gnupg.net
|
||||||
# OK
|
keyserver2=pool.sks-keyservers.net
|
||||||
return 0
|
if gpg --keyserver $keyserver1 --recv-key 0xFFFFFFF1 ||
|
||||||
|
gpg --keyserver $keyserver2 --recv-key 0xFFFFFFF1 ; then
|
||||||
|
if gpg --keyserver $keyserver1 --recv-key 0x88888888 ||
|
||||||
|
gpg --keyserver $keyserver2 --recv-key 0x88888888; then
|
||||||
|
# OK
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo
|
||||||
|
echo "Cannot fetch keyID 0x88888888, so the signature cannot be checked."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo
|
echo
|
||||||
echo "Cannot fetch keyID 0x88888888, so the signature cannot be checked."
|
echo "Cannot fetch keyID 0xFFFFFFF1, so the signature cannot be checked."
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
echo
|
|
||||||
echo "Cannot fetch keyID 0xFFFFFFF1, so the signature cannot be checked."
|
|
||||||
return 1
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# GnuPG not installed
|
# GnuPG not installed
|
||||||
echo
|
echo
|
||||||
echo "GnuPG (gpg) is not installed so the signature cannot be checked."
|
echo "GnuPG (gpg) is not installed so the signature cannot be checked."
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check signature - in case ftpmirror.gnu.org is compromised
|
# Check signature - in case ftpmirror.gnu.org is compromised
|
||||||
|
@ -96,7 +102,7 @@ run() {
|
||||||
echo "THIS IS BAD AND THE CODE WILL NOT BE INSTALLED."
|
echo "THIS IS BAD AND THE CODE WILL NOT BE INSTALLED."
|
||||||
echo
|
echo
|
||||||
echo "See http://git.savannah.gnu.org/cgit/parallel.git/tree/README for other installation methods."
|
echo "See http://git.savannah.gnu.org/cgit/parallel.git/tree/README for other installation methods."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# GnuPG not installed or public keys not downloaded
|
# GnuPG not installed or public keys not downloaded
|
||||||
|
@ -110,7 +116,7 @@ run() {
|
||||||
else
|
else
|
||||||
# Continue
|
# Continue
|
||||||
true
|
true
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
bzip2 -dc $latest.tar.bz2 | tar xf -
|
bzip2 -dc $latest.tar.bz2 | tar xf -
|
||||||
|
@ -127,7 +133,7 @@ run() {
|
||||||
chmod 755 src/*;
|
chmod 755 src/*;
|
||||||
cp src/parallel src/env_parallel* src/sem src/sql src/niceload src/parcat $HOME/bin;
|
cp src/parallel src/env_parallel* src/sem src/sql src/niceload src/parcat $HOME/bin;
|
||||||
echo
|
echo
|
||||||
echo GNU $latest copied to $HOME/bin
|
echo GNU $latest copied to $HOME/bin
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Is $HOME/bin already in $PATH?
|
# Is $HOME/bin already in $PATH?
|
||||||
|
@ -138,10 +144,10 @@ run() {
|
||||||
# Add $HOME/bin to $PATH for both bash and csh
|
# Add $HOME/bin to $PATH for both bash and csh
|
||||||
echo 'PATH=$PATH:$HOME/bin' >> $HOME/.bashrc
|
echo 'PATH=$PATH:$HOME/bin' >> $HOME/.bashrc
|
||||||
echo 'setenv PATH ${PATH}:${HOME}/bin' >> $HOME/.cshrc
|
echo 'setenv PATH ${PATH}:${HOME}/bin' >> $HOME/.cshrc
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Is $HOME/share/man already in $MANPATH?
|
# Is $HOME/share/man already in $MANPATH?
|
||||||
if echo $MANPATH | grep $HOME/share/man >/dev/null; then
|
if echo $MANPATH | grep $HOME/share/man >/dev/null; then
|
||||||
# $HOME/share/man is already in $MANPATH
|
# $HOME/share/man is already in $MANPATH
|
||||||
true
|
true
|
||||||
else
|
else
|
||||||
|
|
35
NEWS
35
NEWS
|
@ -1,3 +1,38 @@
|
||||||
|
20200422
|
||||||
|
|
||||||
|
This release celebrates GNU Parallel's 10 years as a GNU tool:
|
||||||
|
|
||||||
|
> commit ed2dfb1043768154d4e7678e01e10287155fa834
|
||||||
|
> Author: Ole Tange <ole@tange.dk>
|
||||||
|
> Date: Thu Apr 22 01:23:00 2010 +0200
|
||||||
|
>
|
||||||
|
> Name change: Parallel is now GNU Parallel.
|
||||||
|
> Basic structure for sshlogin and sshloginfile.
|
||||||
|
|
||||||
|
New in this release:
|
||||||
|
|
||||||
|
* parsort makes GNU sort run faster for files with more than 1M lines.
|
||||||
|
|
||||||
|
* Bug fixes and man page updates.
|
||||||
|
|
||||||
|
News about GNU Parallel:
|
||||||
|
|
||||||
|
* Several clusters have updated their documentation of GNU Parallel:
|
||||||
|
https://www.grid5000.fr/w/GNU_Parallel
|
||||||
|
https://research-it.berkeley.edu/virtual-training-running-jobs-parallel-savio
|
||||||
|
http://www.hpc.lsu.edu/training/archive/tutorials.php
|
||||||
|
|
||||||
|
* add_pho uses GNU Parallel: https://github.com/SeedlingsBabylab/add_pho
|
||||||
|
|
||||||
|
* GNU parallel使用笔记https://zhuanlan.zhihu.com/p/37340011
|
||||||
|
|
||||||
|
* Virtual Workshop: Running Jobs in Parallel on Savio
|
||||||
|
https://ais.berkeley.edu/events/virtual-workshop-running-jobs-parallel-savio/2020-04-20
|
||||||
|
|
||||||
|
* Free Concurrency with GNU Parallel
|
||||||
|
https://phili.pe/posts/free-concurrency-with-gnu-parallel/
|
||||||
|
|
||||||
|
|
||||||
20200322
|
20200322
|
||||||
|
|
||||||
* Bug fixes and man page updates.
|
* Bug fixes and man page updates.
|
||||||
|
|
20
README
20
README
|
@ -57,11 +57,11 @@ document.
|
||||||
|
|
||||||
Full installation of GNU Parallel is as simple as:
|
Full installation of GNU Parallel is as simple as:
|
||||||
|
|
||||||
wget https://ftpmirror.gnu.org/parallel/parallel-20200322.tar.bz2
|
wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2
|
||||||
wget https://ftpmirror.gnu.org/parallel/parallel-20200322.tar.bz2.sig
|
wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2.sig
|
||||||
gpg parallel-20200322.tar.bz2.sig
|
gpg parallel-20200422.tar.bz2.sig
|
||||||
bzip2 -dc parallel-20200322.tar.bz2 | tar xvf -
|
bzip2 -dc parallel-20200422.tar.bz2 | tar xvf -
|
||||||
cd parallel-20200322
|
cd parallel-20200422
|
||||||
./configure && make && sudo make install
|
./configure && make && sudo make install
|
||||||
|
|
||||||
|
|
||||||
|
@ -70,11 +70,11 @@ Full installation of GNU Parallel is as simple as:
|
||||||
If you are not root you can add ~/bin to your path and install in
|
If you are not root you can add ~/bin to your path and install in
|
||||||
~/bin and ~/share:
|
~/bin and ~/share:
|
||||||
|
|
||||||
wget https://ftpmirror.gnu.org/parallel/parallel-20200322.tar.bz2
|
wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2
|
||||||
wget https://ftpmirror.gnu.org/parallel/parallel-20200322.tar.bz2.sig
|
wget https://ftpmirror.gnu.org/parallel/parallel-20200422.tar.bz2.sig
|
||||||
gpg parallel-20200322.tar.bz2.sig
|
gpg parallel-20200422.tar.bz2.sig
|
||||||
bzip2 -dc parallel-20200322.tar.bz2 | tar xvf -
|
bzip2 -dc parallel-20200422.tar.bz2 | tar xvf -
|
||||||
cd parallel-20200322
|
cd parallel-20200422
|
||||||
./configure --prefix=$HOME && make && make install
|
./configure --prefix=$HOME && make && make install
|
||||||
|
|
||||||
Or if your system lacks 'make' you can simply copy src/parallel
|
Or if your system lacks 'make' you can simply copy src/parallel
|
||||||
|
|
20
configure
vendored
20
configure
vendored
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for parallel 20200322.
|
# Generated by GNU Autoconf 2.69 for parallel 20200422.
|
||||||
#
|
#
|
||||||
# Report bugs to <bug-parallel@gnu.org>.
|
# Report bugs to <bug-parallel@gnu.org>.
|
||||||
#
|
#
|
||||||
|
@ -579,8 +579,8 @@ MAKEFLAGS=
|
||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='parallel'
|
PACKAGE_NAME='parallel'
|
||||||
PACKAGE_TARNAME='parallel'
|
PACKAGE_TARNAME='parallel'
|
||||||
PACKAGE_VERSION='20200322'
|
PACKAGE_VERSION='20200422'
|
||||||
PACKAGE_STRING='parallel 20200322'
|
PACKAGE_STRING='parallel 20200422'
|
||||||
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
|
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
|
||||||
PACKAGE_URL=''
|
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.
|
# 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.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures parallel 20200322 to adapt to many kinds of systems.
|
\`configure' configures parallel 20200422 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
|
@ -1281,7 +1281,7 @@ fi
|
||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of parallel 20200322:";;
|
short | recursive ) echo "Configuration of parallel 20200422:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
|
@ -1357,7 +1357,7 @@ fi
|
||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
parallel configure 20200322
|
parallel configure 20200422
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
|
@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF
|
||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by parallel $as_me 20200322, which was
|
It was created by parallel $as_me 20200422, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
|
@ -2237,7 +2237,7 @@ fi
|
||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='parallel'
|
PACKAGE='parallel'
|
||||||
VERSION='20200322'
|
VERSION='20200422'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
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
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by parallel $as_me 20200322, which was
|
This file was extended by parallel $as_me 20200422, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
|
@ -2942,7 +2942,7 @@ _ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
parallel config.status 20200322
|
parallel config.status 20200422
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
AC_INIT([parallel], [20200322], [bug-parallel@gnu.org])
|
AC_INIT([parallel], [20200422], [bug-parallel@gnu.org])
|
||||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
|
|
13
doc/haikus
13
doc/haikus
|
@ -3,16 +3,13 @@ Quote of the month:
|
||||||
Who needs spark when GNU Parallel exists
|
Who needs spark when GNU Parallel exists
|
||||||
-- MatthijsB @MatthijsBrs@twitter
|
-- MatthijsB @MatthijsBrs@twitter
|
||||||
|
|
||||||
I wish more command line software had example pages as robust as GNU Parallel
|
|
||||||
-- Lucidbeaming @lucidbeaming
|
|
||||||
|
|
||||||
GNU parallel all the way!
|
GNU parallel all the way!
|
||||||
-- David Manouchehri @DaveManouchehri@twitter
|
-- David Manouchehri @DaveManouchehri@twitter
|
||||||
|
|
||||||
I found GNU Parallel and it's awesome.
|
I found GNU Parallel and it's awesome.
|
||||||
-- Teddy Choi @TeddyJChoi@twitter
|
-- Teddy Choi @TeddyJChoi@twitter
|
||||||
|
|
||||||
Well anyway, It was blazingly fast and astonished by performance. guess I'll never use xargs.
|
Well anyway, It was blazingly fast and astonished by performance. Guess I'll never use xargs.
|
||||||
-- (Not) Akaming @_Akamig@twitter
|
-- (Not) Akaming @_Akamig@twitter
|
||||||
|
|
||||||
Yeah, GNU parallel is a beast when used accordingly.
|
Yeah, GNU parallel is a beast when used accordingly.
|
||||||
|
@ -24,7 +21,7 @@ Quote of the month:
|
||||||
With multicore systems everywhere GNU Parallel is a must have tool.
|
With multicore systems everywhere GNU Parallel is a must have tool.
|
||||||
-- Neil H. Watson @neil_h_watson@twitter
|
-- Neil H. Watson @neil_h_watson@twitter
|
||||||
|
|
||||||
My new favourite command line tool is gnu parallel. After knowing it for a while I just recently came back to it for a refactor of a script and now I've changed like 4 different huge scripts into tiny parallel scripts that do their job literally 3 to 10 times faster and just [mind blown]
|
My new favourite command line tool is GNU Parallel. After knowing it for a while I just recently came back to it for a refactor of a script and now I've changed like 4 different huge scripts into tiny parallel scripts that do their job literally 3 to 10 times faster and just [mind blown]
|
||||||
-- Izzy @angry_izzy@twitter
|
-- Izzy @angry_izzy@twitter
|
||||||
|
|
||||||
I love so much @GnuParallel to parallelize my SQL requests on @PostgreSQL
|
I love so much @GnuParallel to parallelize my SQL requests on @PostgreSQL
|
||||||
|
@ -60,6 +57,12 @@ Quote of the month:
|
||||||
|
|
||||||
=== Used ===
|
=== Used ===
|
||||||
|
|
||||||
|
I wish more command line software had example pages as robust as GNU Parallel
|
||||||
|
-- Lucidbeaming @lucidbeaming
|
||||||
|
|
||||||
|
GNU parallel is straight up incredible.
|
||||||
|
-- Ben Johnson @biobenkj@twtter
|
||||||
|
|
||||||
GNU parallel has helped me kill a Hadoop cluster before.
|
GNU parallel has helped me kill a Hadoop cluster before.
|
||||||
-- Travis Campbell @hcoyote@twitter
|
-- Travis Campbell @hcoyote@twitter
|
||||||
|
|
||||||
|
|
|
@ -112,8 +112,9 @@ http://www.gnu.org/software/parallel/man.html
|
||||||
http://www.gnu.org/software/parallel/sql.html
|
http://www.gnu.org/software/parallel/sql.html
|
||||||
http://www.gnu.org/software/parallel/sem.html
|
http://www.gnu.org/software/parallel/sem.html
|
||||||
http://www.gnu.org/software/parallel/env_parallel.html
|
http://www.gnu.org/software/parallel/env_parallel.html
|
||||||
http://www.gnu.org/software/parallel/parset.html
|
|
||||||
http://www.gnu.org/software/parallel/parcat.html
|
http://www.gnu.org/software/parallel/parcat.html
|
||||||
|
http://www.gnu.org/software/parallel/parset.html
|
||||||
|
http://www.gnu.org/software/parallel/parsort.html
|
||||||
http://www.gnu.org/software/parallel/niceload.html
|
http://www.gnu.org/software/parallel/niceload.html
|
||||||
|
|
||||||
cp src/*.pdf src/*.html ../parallel-web/parallel
|
cp src/*.pdf src/*.html ../parallel-web/parallel
|
||||||
|
@ -210,34 +211,46 @@ from:tange@gnu.org
|
||||||
to:parallel@gnu.org, bug-parallel@gnu.org
|
to:parallel@gnu.org, bug-parallel@gnu.org
|
||||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||||
|
|
||||||
Subject: GNU Parallel 20200322 ('Corona/Locust') released <<[stable]>>
|
Subject: GNU Parallel 20200422 ('10years') released <<[stable]>>
|
||||||
|
|
||||||
GNU Parallel 20200322 ('Corona') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
GNU Parallel 20200422 ('10years') <<[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.>>
|
<<No new functionality was introduced so this is a good candidate for a stable release.>>
|
||||||
|
|
||||||
GNU Parallel is 10 years old next year on 2020-04-22. You are here by invited to a reception on Friday 2020-04-17.
|
This release celebrates GNU Parallel's 10 years as a GNU tool:
|
||||||
|
|
||||||
|
> commit ed2dfb1043768154d4e7678e01e10287155fa834
|
||||||
|
> Author: Ole Tange <ole@tange.dk>
|
||||||
|
> Date: Thu Apr 22 01:23:00 2010 +0200
|
||||||
|
>
|
||||||
|
> Name change: Parallel is now GNU Parallel.
|
||||||
|
> Basic structure for sshlogin and sshloginfile.
|
||||||
|
|
||||||
|
Unfortunately the physical celebrations has been cancelled due to COVID19.
|
||||||
|
|
||||||
See https://www.gnu.org/software/parallel/10-years-anniversary.html
|
|
||||||
|
|
||||||
Quote of the month:
|
Quote of the month:
|
||||||
|
|
||||||
GNU parallel is straight up incredible.
|
I wish more command line software had example pages as robust as GNU Parallel
|
||||||
-- Ben Johnson @biobenkj@twtter
|
-- Lucidbeaming @lucidbeaming
|
||||||
|
|
||||||
New in this release:
|
New in this release:
|
||||||
|
|
||||||
https://dev.to/saveriomiroddi/running-shell-commands-in-parallel-via-gnu-parallel-3a72
|
* parsort makes GNU sort run faster for files with more than 1M lines.
|
||||||
|
|
||||||
* Bug fixes and man page updates.
|
* Bug fixes and man page updates.
|
||||||
|
|
||||||
News about GNU Parallel:
|
News about GNU Parallel:
|
||||||
|
|
||||||
* GNU Parallel course in Copenhagen https://www.prosa.dk/nc/arrangementer/arrangement/gnu-parallel-med-ole-tange/
|
* Several clusters have updated their documentation of GNU Parallel: https://www.grid5000.fr/w/GNU_Parallel https://research-it.berkeley.edu/virtual-training-running-jobs-parallel-savio http://www.hpc.lsu.edu/training/archive/tutorials.php
|
||||||
|
|
||||||
* GNU Parallel course in Århus https://www.prosa.dk/nc/arrangementer/arrangement/gnu-parallel-og-parallelisering-i-unix-shellen/
|
* add_pho uses GNU Parallel: https://github.com/SeedlingsBabylab/add_pho
|
||||||
|
|
||||||
https://badshah.io/experiment/faster-nmap-scanning-with-the-help-of-gnu-parallel/
|
* GNU parallel使用笔记https://zhuanlan.zhihu.com/p/37340011
|
||||||
|
|
||||||
|
* Virtual Workshop: Running Jobs in Parallel on Savio https://ais.berkeley.edu/events/virtual-workshop-running-jobs-parallel-savio/2020-04-20
|
||||||
|
|
||||||
|
* Free Concurrency with GNU Parallel https://phili.pe/posts/free-concurrency-with-gnu-parallel/
|
||||||
|
|
||||||
Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html
|
Get the book: GNU Parallel 2018 http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html
|
||||||
|
|
||||||
|
|
|
@ -1,114 +0,0 @@
|
||||||
|
|
||||||
Summary: Shell tool for executing jobs in parallel
|
|
||||||
Name: parallel
|
|
||||||
Version: 20200322
|
|
||||||
Release: 1.3
|
|
||||||
License: GPL-3.0-or-later
|
|
||||||
Group: Productivity/File utilities
|
|
||||||
URL: ftp://ftp.gnu.org/gnu/parallel
|
|
||||||
Source0: %{name}_%{version}.tar.gz
|
|
||||||
BuildArch: noarch
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
|
|
||||||
|
|
||||||
%description
|
|
||||||
GNU Parallel is a shell tool for executing jobs in parallel using one
|
|
||||||
or more computers. A job can be a single command or a small script
|
|
||||||
that has to be run for each of the lines in the input. The typical
|
|
||||||
input is a list of files, a list of hosts, a list of users, a list of
|
|
||||||
URLs, or a list of tables. A job can also be a command that reads from
|
|
||||||
a pipe. GNU Parallel can then split the input and pipe it into
|
|
||||||
commands in parallel.
|
|
||||||
|
|
||||||
If you use xargs and tee today you will find GNU Parallel very easy to
|
|
||||||
use as GNU Parallel is written to have the same options as xargs. If
|
|
||||||
you write loops in shell, you will find GNU Parallel may be able to
|
|
||||||
replace most of the loops and make them run faster by running several
|
|
||||||
jobs in parallel.
|
|
||||||
|
|
||||||
GNU Parallel makes sure output from the commands is the same output as
|
|
||||||
you would get had you run the commands sequentially. This makes it
|
|
||||||
possible to use output from GNU Parallel as input for other programs.
|
|
||||||
|
|
||||||
For each line of input GNU Parallel will execute command with the line
|
|
||||||
as arguments. If no command is given, the line of input is
|
|
||||||
executed. Several lines will be run in parallel. GNU Parallel can
|
|
||||||
often be used as a substitute for xargs or cat | bash.
|
|
||||||
|
|
||||||
%prep
|
|
||||||
if [ "${RPM_BUILD_ROOT}x" == "x" ]; then
|
|
||||||
echo "RPM_BUILD_ROOT empty, bad idea!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ "${RPM_BUILD_ROOT}" == "/" ]; then
|
|
||||||
echo "RPM_BUILD_ROOT is set to "/", bad idea!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
%setup -q
|
|
||||||
|
|
||||||
%build
|
|
||||||
./configure
|
|
||||||
make
|
|
||||||
|
|
||||||
%install
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
make install prefix=$RPM_BUILD_ROOT%{_prefix} exec_prefix=$RPM_BUILD_ROOT%{_prefix} \
|
|
||||||
datarootdir=$RPM_BUILD_ROOT%{_prefix} docdir=$RPM_BUILD_ROOT%{_docdir} \
|
|
||||||
mandir=$RPM_BUILD_ROOT%{_mandir}
|
|
||||||
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel.html
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/env_parallel.html
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_tutorial.html
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_design.html
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_alternatives.html
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_book.html
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/niceload.html
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/sem.html
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/sql.html
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parcat.html
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parset.html
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel.texi
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/env_parallel.texi
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_tutorial.texi
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_design.texi
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_alternatives.texi
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_book.texi
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/niceload.texi
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/sem.texi
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/sql.texi
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parcat.texi
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parset.texi
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel.pdf
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/env_parallel.pdf
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_tutorial.pdf
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_design.pdf
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_alternatives.pdf
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_book.pdf
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/niceload.pdf
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/sem.pdf
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/sql.pdf
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parcat.pdf
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parset.pdf
|
|
||||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_cheat_bw.pdf
|
|
||||||
|
|
||||||
%clean
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
|
|
||||||
%files
|
|
||||||
%defattr(-,root,root,-)
|
|
||||||
/usr/bin/*
|
|
||||||
/usr/share/man/man1/*
|
|
||||||
/usr/share/man/man7/*
|
|
||||||
%doc README NEWS src/parallel.html src/env_parallel.html src/parallel_tutorial.html src/parallel_design.html src/parallel_alternatives.html src/parallel_book.html src/sem.html src/sql.html src/parcat.html src/parset.html src/niceload.html src/parallel.texi src/env_parallel.texi src/parallel_tutorial.texi src/parallel_design.texi src/parallel_alternatives.texi src/parallel_book.texi src/niceload.texi src/sem.texi src/sql.texi src/parcat.texi src/parset.texi src/parallel.pdf src/env_parallel.pdf src/parallel_tutorial.pdf src/parallel_design.pdf src/parallel_alternatives.pdf src/parallel_book.pdf src/niceload.pdf src/sem.pdf src/sql.pdf src/parcat.pdf src/parset.pdf src/parallel_cheat_bw.pdf
|
|
||||||
|
|
||||||
%changelog
|
|
||||||
* Sat Jan 22 2011 Ole Tange
|
|
||||||
- Upgrade to 20110122
|
|
||||||
* Wed Dec 22 2010 Ole Tange
|
|
||||||
- Upgrade to 20101222
|
|
||||||
* Wed Sep 22 2010 Ole Tange
|
|
||||||
- Upgrade to 20100922
|
|
||||||
* Mon Sep 06 2010 Ole Tange
|
|
||||||
- Upgrade to current git-version of source. Tested on build.opensuse.org
|
|
||||||
* Fri Aug 27 2010 Ole Tange
|
|
||||||
- Untested upgrade to current git-version of source.
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
bin_SCRIPTS = parallel sql niceload parcat parset env_parallel \
|
bin_SCRIPTS = parallel sql niceload parcat parset parsort \
|
||||||
env_parallel.ash env_parallel.bash env_parallel.csh \
|
env_parallel env_parallel.ash env_parallel.bash \
|
||||||
env_parallel.dash env_parallel.fish env_parallel.ksh \
|
env_parallel.csh env_parallel.dash env_parallel.fish \
|
||||||
env_parallel.mksh env_parallel.pdksh env_parallel.sh \
|
env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
|
||||||
env_parallel.tcsh env_parallel.zsh
|
env_parallel.sh env_parallel.tcsh env_parallel.zsh
|
||||||
|
|
||||||
install-exec-hook:
|
install-exec-hook:
|
||||||
rm $(DESTDIR)$(bindir)/sem || true
|
rm $(DESTDIR)$(bindir)/sem || true
|
||||||
|
@ -11,18 +11,18 @@ install-exec-hook:
|
||||||
if DOCUMENTATION
|
if DOCUMENTATION
|
||||||
man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
||||||
parallel_tutorial.7 parallel_book.7 parallel_design.7 \
|
parallel_tutorial.7 parallel_book.7 parallel_design.7 \
|
||||||
parallel_alternatives.7 parcat.1 parset.1
|
parallel_alternatives.7 parcat.1 parset.1 parsort.1
|
||||||
doc_DATA = parallel.html env_parallel.html sem.html sql.html \
|
doc_DATA = parallel.html env_parallel.html sem.html sql.html \
|
||||||
niceload.html parallel_tutorial.html parallel_book.html \
|
niceload.html parallel_tutorial.html parallel_book.html \
|
||||||
parallel_design.html parallel_alternatives.html parcat.html \
|
parallel_design.html parallel_alternatives.html parcat.html \
|
||||||
parset.html \
|
parset.html parsort.html \
|
||||||
parallel.texi env_parallel.texi sem.texi sql.texi \
|
parallel.texi env_parallel.texi sem.texi sql.texi \
|
||||||
niceload.texi parallel_tutorial.texi parallel_book.texi \
|
niceload.texi parallel_tutorial.texi parallel_book.texi \
|
||||||
parallel_design.texi parallel_alternatives.texi parcat.texi \
|
parallel_design.texi parallel_alternatives.texi parcat.texi \
|
||||||
parset.texi \
|
parset.texi parsort.texi \
|
||||||
parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
|
parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
|
||||||
parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \
|
parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \
|
||||||
parallel_alternatives.pdf parcat.pdf parset.pdf \
|
parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf \
|
||||||
parallel_cheat_bw.pdf
|
parallel_cheat_bw.pdf
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -94,6 +94,12 @@ parset.1: parset.pod
|
||||||
&& mv $(srcdir)/parset.1n $(srcdir)/parset.1 \
|
&& mv $(srcdir)/parset.1n $(srcdir)/parset.1 \
|
||||||
|| echo "Warning: pod2man not found. Using old parset.1"
|
|| echo "Warning: pod2man not found. Using old parset.1"
|
||||||
|
|
||||||
|
parsort.1: parsort
|
||||||
|
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
|
||||||
|
--section=1 $(srcdir)/parsort > $(srcdir)/parsort.1n \
|
||||||
|
&& mv $(srcdir)/parsort.1n $(srcdir)/parsort.1 \
|
||||||
|
|| echo "Warning: pod2man not found. Using old parsort.1"
|
||||||
|
|
||||||
parallel.html: parallel.pod
|
parallel.html: parallel.pod
|
||||||
pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \
|
pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \
|
||||||
&& mv $(srcdir)/parallel.htmln $(srcdir)/parallel.html \
|
&& mv $(srcdir)/parallel.htmln $(srcdir)/parallel.html \
|
||||||
|
@ -170,6 +176,13 @@ parset.html: parset.pod parcat.html
|
||||||
|| echo "Warning: pod2html not found. Using old parset.html"
|
|| echo "Warning: pod2html not found. Using old parset.html"
|
||||||
rm -f $(srcdir)/pod2htm*
|
rm -f $(srcdir)/pod2htm*
|
||||||
|
|
||||||
|
# Depending on parset.html to avoid stupid pod2html race condition
|
||||||
|
parsort.html: parsort parset.html
|
||||||
|
pod2html --title "GNU parsort" $(srcdir)/parsort > $(srcdir)/parsort.htmln \
|
||||||
|
&& mv $(srcdir)/parsort.htmln $(srcdir)/parsort.html \
|
||||||
|
|| echo "Warning: pod2html not found. Using old parsort.html"
|
||||||
|
rm -f $(srcdir)/pod2htm*
|
||||||
|
|
||||||
parallel.texi: parallel.pod
|
parallel.texi: parallel.pod
|
||||||
pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \
|
pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel.texi"
|
|| echo "Warning: pod2texi not found. Using old parallel.texi"
|
||||||
|
@ -214,6 +227,10 @@ parset.texi: parset.pod
|
||||||
pod2texi --output=$(srcdir)/parset.texi $(srcdir)/parset.pod \
|
pod2texi --output=$(srcdir)/parset.texi $(srcdir)/parset.pod \
|
||||||
|| echo "Warning: pod2texi not found. Using old parset.texi"
|
|| echo "Warning: pod2texi not found. Using old parset.texi"
|
||||||
|
|
||||||
|
parsort.texi: parsort
|
||||||
|
pod2texi --output=$(srcdir)/parsort.texi $(srcdir)/parsort \
|
||||||
|
|| echo "Warning: pod2texi not found. Using old parsort.texi"
|
||||||
|
|
||||||
parallel.pdf: parallel.pod
|
parallel.pdf: parallel.pod
|
||||||
pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \
|
pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel.pdf"
|
|| echo "Warning: pod2pdf not found. Using old parallel.pdf"
|
||||||
|
@ -258,6 +275,10 @@ parset.pdf: parset.pod
|
||||||
pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \
|
pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \
|
||||||
|| echo "Warning: pod2pdf not found. Using old parset.pdf"
|
|| echo "Warning: pod2pdf not found. Using old parset.pdf"
|
||||||
|
|
||||||
|
parsort.pdf: parsort
|
||||||
|
pod2pdf --output-file $(srcdir)/parsort.pdf $(srcdir)/parsort --title "GNU parsort" \
|
||||||
|
|| echo "Warning: pod2pdf not found. Using old parsort.pdf"
|
||||||
|
|
||||||
parallel_cheat_bw.pdf: parallel_cheat_bw.fodt
|
parallel_cheat_bw.pdf: parallel_cheat_bw.fodt
|
||||||
libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \
|
libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \
|
||||||
|| echo "Warning: libreoffice failed. Using old parallel_cheat_bw.pdf"
|
|| echo "Warning: libreoffice failed. Using old parallel_cheat_bw.pdf"
|
||||||
|
@ -267,25 +288,25 @@ sem: parallel
|
||||||
|
|
||||||
DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
||||||
parallel_tutorial.7 parallel_book.7 parallel_design.7 \
|
parallel_tutorial.7 parallel_book.7 parallel_design.7 \
|
||||||
parallel_alternatives.7 parcat.1 parset.1 \
|
parallel_alternatives.7 parcat.1 parset.1 parsort.1 \
|
||||||
parallel.html env_parallel.html sem.html sql.html \
|
parallel.html env_parallel.html sem.html sql.html \
|
||||||
niceload.html parallel_tutorial.html parallel_book.html \
|
niceload.html parallel_tutorial.html parallel_book.html \
|
||||||
parallel_design.html parallel_alternatives.html parcat.html \
|
parallel_design.html parallel_alternatives.html parcat.html \
|
||||||
parset.html \
|
parset.html parsort.html parallel.texi env_parallel.texi \
|
||||||
parallel.texi env_parallel.texi sem.texi sql.texi \
|
sem.texi sql.texi niceload.texi parallel_tutorial.texi \
|
||||||
niceload.texi parallel_tutorial.texi parallel_book.texi \
|
parallel_book.texi parallel_design.texi \
|
||||||
parallel_design.texi parallel_alternatives.texi parcat.texi \
|
parallel_alternatives.texi parcat.texi parset.texi \
|
||||||
parset.texi \
|
parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf \
|
||||||
parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
|
niceload.pdf parallel_tutorial.pdf parallel_book.pdf \
|
||||||
parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \
|
parallel_design.pdf parallel_alternatives.pdf parcat.pdf \
|
||||||
parallel_alternatives.pdf parcat.pdf parset.pdf \
|
parset.pdf parsort.pdf parallel_cheat_bw.pdf
|
||||||
parallel_cheat_bw.pdf
|
|
||||||
|
|
||||||
EXTRA_DIST = parallel sem sql niceload parcat parset env_parallel \
|
EXTRA_DIST = parallel sem sql niceload parcat parset parsort \
|
||||||
env_parallel.ash env_parallel.bash env_parallel.csh \
|
env_parallel env_parallel.ash env_parallel.bash \
|
||||||
env_parallel.dash env_parallel.fish env_parallel.ksh \
|
env_parallel.csh env_parallel.dash env_parallel.fish \
|
||||||
env_parallel.mksh env_parallel.pdksh env_parallel.sh \
|
env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
|
||||||
env_parallel.tcsh env_parallel.zsh parcat.pod parset.pod \
|
env_parallel.sh env_parallel.tcsh env_parallel.zsh parcat.pod \
|
||||||
sem.pod parallel.pod env_parallel.pod niceload.pod \
|
parset.pod sem.pod parallel.pod env_parallel.pod niceload.pod \
|
||||||
parallel_tutorial.pod parallel_book.pod parallel_design.pod \
|
parallel_tutorial.pod parallel_book.pod parallel_design.pod \
|
||||||
parallel_alternatives.pod parallel_cheat_bw.fodt $(DISTCLEANFILES)
|
parallel_alternatives.pod parallel_cheat_bw.fodt \
|
||||||
|
$(DISTCLEANFILES)
|
||||||
|
|
|
@ -229,53 +229,53 @@ target_alias = @target_alias@
|
||||||
top_build_prefix = @top_build_prefix@
|
top_build_prefix = @top_build_prefix@
|
||||||
top_builddir = @top_builddir@
|
top_builddir = @top_builddir@
|
||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
bin_SCRIPTS = parallel sql niceload parcat parset env_parallel \
|
bin_SCRIPTS = parallel sql niceload parcat parset parsort \
|
||||||
env_parallel.ash env_parallel.bash env_parallel.csh \
|
env_parallel env_parallel.ash env_parallel.bash \
|
||||||
env_parallel.dash env_parallel.fish env_parallel.ksh \
|
env_parallel.csh env_parallel.dash env_parallel.fish \
|
||||||
env_parallel.mksh env_parallel.pdksh env_parallel.sh \
|
env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
|
||||||
env_parallel.tcsh env_parallel.zsh
|
env_parallel.sh env_parallel.tcsh env_parallel.zsh
|
||||||
|
|
||||||
@DOCUMENTATION_TRUE@man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
@DOCUMENTATION_TRUE@man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
||||||
@DOCUMENTATION_TRUE@ parallel_tutorial.7 parallel_book.7 parallel_design.7 \
|
@DOCUMENTATION_TRUE@ parallel_tutorial.7 parallel_book.7 parallel_design.7 \
|
||||||
@DOCUMENTATION_TRUE@ parallel_alternatives.7 parcat.1 parset.1
|
@DOCUMENTATION_TRUE@ parallel_alternatives.7 parcat.1 parset.1 parsort.1
|
||||||
|
|
||||||
@DOCUMENTATION_TRUE@doc_DATA = parallel.html env_parallel.html sem.html sql.html \
|
@DOCUMENTATION_TRUE@doc_DATA = parallel.html env_parallel.html sem.html sql.html \
|
||||||
@DOCUMENTATION_TRUE@ niceload.html parallel_tutorial.html parallel_book.html \
|
@DOCUMENTATION_TRUE@ niceload.html parallel_tutorial.html parallel_book.html \
|
||||||
@DOCUMENTATION_TRUE@ parallel_design.html parallel_alternatives.html parcat.html \
|
@DOCUMENTATION_TRUE@ parallel_design.html parallel_alternatives.html parcat.html \
|
||||||
@DOCUMENTATION_TRUE@ parset.html \
|
@DOCUMENTATION_TRUE@ parset.html parsort.html \
|
||||||
@DOCUMENTATION_TRUE@ parallel.texi env_parallel.texi sem.texi sql.texi \
|
@DOCUMENTATION_TRUE@ parallel.texi env_parallel.texi sem.texi sql.texi \
|
||||||
@DOCUMENTATION_TRUE@ niceload.texi parallel_tutorial.texi parallel_book.texi \
|
@DOCUMENTATION_TRUE@ niceload.texi parallel_tutorial.texi parallel_book.texi \
|
||||||
@DOCUMENTATION_TRUE@ parallel_design.texi parallel_alternatives.texi parcat.texi \
|
@DOCUMENTATION_TRUE@ parallel_design.texi parallel_alternatives.texi parcat.texi \
|
||||||
@DOCUMENTATION_TRUE@ parset.texi \
|
@DOCUMENTATION_TRUE@ parset.texi parsort.texi \
|
||||||
@DOCUMENTATION_TRUE@ parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
|
@DOCUMENTATION_TRUE@ parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
|
||||||
@DOCUMENTATION_TRUE@ parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \
|
@DOCUMENTATION_TRUE@ parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \
|
||||||
@DOCUMENTATION_TRUE@ parallel_alternatives.pdf parcat.pdf parset.pdf \
|
@DOCUMENTATION_TRUE@ parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf \
|
||||||
@DOCUMENTATION_TRUE@ parallel_cheat_bw.pdf
|
@DOCUMENTATION_TRUE@ parallel_cheat_bw.pdf
|
||||||
|
|
||||||
DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
||||||
parallel_tutorial.7 parallel_book.7 parallel_design.7 \
|
parallel_tutorial.7 parallel_book.7 parallel_design.7 \
|
||||||
parallel_alternatives.7 parcat.1 parset.1 \
|
parallel_alternatives.7 parcat.1 parset.1 parsort.1 \
|
||||||
parallel.html env_parallel.html sem.html sql.html \
|
parallel.html env_parallel.html sem.html sql.html \
|
||||||
niceload.html parallel_tutorial.html parallel_book.html \
|
niceload.html parallel_tutorial.html parallel_book.html \
|
||||||
parallel_design.html parallel_alternatives.html parcat.html \
|
parallel_design.html parallel_alternatives.html parcat.html \
|
||||||
parset.html \
|
parset.html parsort.html parallel.texi env_parallel.texi \
|
||||||
parallel.texi env_parallel.texi sem.texi sql.texi \
|
sem.texi sql.texi niceload.texi parallel_tutorial.texi \
|
||||||
niceload.texi parallel_tutorial.texi parallel_book.texi \
|
parallel_book.texi parallel_design.texi \
|
||||||
parallel_design.texi parallel_alternatives.texi parcat.texi \
|
parallel_alternatives.texi parcat.texi parset.texi \
|
||||||
parset.texi \
|
parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf \
|
||||||
parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf \
|
niceload.pdf parallel_tutorial.pdf parallel_book.pdf \
|
||||||
parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf \
|
parallel_design.pdf parallel_alternatives.pdf parcat.pdf \
|
||||||
parallel_alternatives.pdf parcat.pdf parset.pdf \
|
parset.pdf parsort.pdf parallel_cheat_bw.pdf
|
||||||
parallel_cheat_bw.pdf
|
|
||||||
|
|
||||||
EXTRA_DIST = parallel sem sql niceload parcat parset env_parallel \
|
EXTRA_DIST = parallel sem sql niceload parcat parset parsort \
|
||||||
env_parallel.ash env_parallel.bash env_parallel.csh \
|
env_parallel env_parallel.ash env_parallel.bash \
|
||||||
env_parallel.dash env_parallel.fish env_parallel.ksh \
|
env_parallel.csh env_parallel.dash env_parallel.fish \
|
||||||
env_parallel.mksh env_parallel.pdksh env_parallel.sh \
|
env_parallel.ksh env_parallel.mksh env_parallel.pdksh \
|
||||||
env_parallel.tcsh env_parallel.zsh parcat.pod parset.pod \
|
env_parallel.sh env_parallel.tcsh env_parallel.zsh parcat.pod \
|
||||||
sem.pod parallel.pod env_parallel.pod niceload.pod \
|
parset.pod sem.pod parallel.pod env_parallel.pod niceload.pod \
|
||||||
parallel_tutorial.pod parallel_book.pod parallel_design.pod \
|
parallel_tutorial.pod parallel_book.pod parallel_design.pod \
|
||||||
parallel_alternatives.pod parallel_cheat_bw.fodt $(DISTCLEANFILES)
|
parallel_alternatives.pod parallel_cheat_bw.fodt \
|
||||||
|
$(DISTCLEANFILES)
|
||||||
|
|
||||||
all: all-am
|
all: all-am
|
||||||
|
|
||||||
|
@ -686,6 +686,12 @@ parset.1: parset.pod
|
||||||
&& mv $(srcdir)/parset.1n $(srcdir)/parset.1 \
|
&& mv $(srcdir)/parset.1n $(srcdir)/parset.1 \
|
||||||
|| echo "Warning: pod2man not found. Using old parset.1"
|
|| echo "Warning: pod2man not found. Using old parset.1"
|
||||||
|
|
||||||
|
parsort.1: parsort
|
||||||
|
pod2man --release='$(PACKAGE_VERSION)' --center='$(PACKAGE_NAME)' \
|
||||||
|
--section=1 $(srcdir)/parsort > $(srcdir)/parsort.1n \
|
||||||
|
&& mv $(srcdir)/parsort.1n $(srcdir)/parsort.1 \
|
||||||
|
|| echo "Warning: pod2man not found. Using old parsort.1"
|
||||||
|
|
||||||
parallel.html: parallel.pod
|
parallel.html: parallel.pod
|
||||||
pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \
|
pod2html --title "GNU Parallel" $(srcdir)/parallel.pod > $(srcdir)/parallel.htmln \
|
||||||
&& mv $(srcdir)/parallel.htmln $(srcdir)/parallel.html \
|
&& mv $(srcdir)/parallel.htmln $(srcdir)/parallel.html \
|
||||||
|
@ -762,6 +768,13 @@ parset.html: parset.pod parcat.html
|
||||||
|| echo "Warning: pod2html not found. Using old parset.html"
|
|| echo "Warning: pod2html not found. Using old parset.html"
|
||||||
rm -f $(srcdir)/pod2htm*
|
rm -f $(srcdir)/pod2htm*
|
||||||
|
|
||||||
|
# Depending on parset.html to avoid stupid pod2html race condition
|
||||||
|
parsort.html: parsort parset.html
|
||||||
|
pod2html --title "GNU parsort" $(srcdir)/parsort > $(srcdir)/parsort.htmln \
|
||||||
|
&& mv $(srcdir)/parsort.htmln $(srcdir)/parsort.html \
|
||||||
|
|| echo "Warning: pod2html not found. Using old parsort.html"
|
||||||
|
rm -f $(srcdir)/pod2htm*
|
||||||
|
|
||||||
parallel.texi: parallel.pod
|
parallel.texi: parallel.pod
|
||||||
pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \
|
pod2texi --output=$(srcdir)/parallel.texi $(srcdir)/parallel.pod \
|
||||||
|| echo "Warning: pod2texi not found. Using old parallel.texi"
|
|| echo "Warning: pod2texi not found. Using old parallel.texi"
|
||||||
|
@ -806,6 +819,10 @@ parset.texi: parset.pod
|
||||||
pod2texi --output=$(srcdir)/parset.texi $(srcdir)/parset.pod \
|
pod2texi --output=$(srcdir)/parset.texi $(srcdir)/parset.pod \
|
||||||
|| echo "Warning: pod2texi not found. Using old parset.texi"
|
|| echo "Warning: pod2texi not found. Using old parset.texi"
|
||||||
|
|
||||||
|
parsort.texi: parsort
|
||||||
|
pod2texi --output=$(srcdir)/parsort.texi $(srcdir)/parsort \
|
||||||
|
|| echo "Warning: pod2texi not found. Using old parsort.texi"
|
||||||
|
|
||||||
parallel.pdf: parallel.pod
|
parallel.pdf: parallel.pod
|
||||||
pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \
|
pod2pdf --output-file $(srcdir)/parallel.pdf $(srcdir)/parallel.pod --title "GNU Parallel" \
|
||||||
|| echo "Warning: pod2pdf not found. Using old parallel.pdf"
|
|| echo "Warning: pod2pdf not found. Using old parallel.pdf"
|
||||||
|
@ -850,6 +867,10 @@ parset.pdf: parset.pod
|
||||||
pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \
|
pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \
|
||||||
|| echo "Warning: pod2pdf not found. Using old parset.pdf"
|
|| echo "Warning: pod2pdf not found. Using old parset.pdf"
|
||||||
|
|
||||||
|
parsort.pdf: parsort
|
||||||
|
pod2pdf --output-file $(srcdir)/parsort.pdf $(srcdir)/parsort --title "GNU parsort" \
|
||||||
|
|| echo "Warning: pod2pdf not found. Using old parsort.pdf"
|
||||||
|
|
||||||
parallel_cheat_bw.pdf: parallel_cheat_bw.fodt
|
parallel_cheat_bw.pdf: parallel_cheat_bw.fodt
|
||||||
libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \
|
libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \
|
||||||
|| echo "Warning: libreoffice failed. Using old parallel_cheat_bw.pdf"
|
|| echo "Warning: libreoffice failed. Using old parallel_cheat_bw.pdf"
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
use strict;
|
use strict;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
$Global::progname="niceload";
|
$Global::progname="niceload";
|
||||||
$Global::version = 20200323;
|
$Global::version = 20200422;
|
||||||
Getopt::Long::Configure("bundling","require_order");
|
Getopt::Long::Configure("bundling","require_order");
|
||||||
get_options_from_array(\@ARGV) || die_usage();
|
get_options_from_array(\@ARGV) || die_usage();
|
||||||
if($opt::version) {
|
if($opt::version) {
|
||||||
|
|
34
src/parallel
34
src/parallel
|
@ -2150,7 +2150,7 @@ sub check_invalid_option_combinations() {
|
||||||
|
|
||||||
sub init_globals() {
|
sub init_globals() {
|
||||||
# Defaults:
|
# Defaults:
|
||||||
$Global::version = 20200323;
|
$Global::version = 20200422;
|
||||||
$Global::progname = 'parallel';
|
$Global::progname = 'parallel';
|
||||||
$::name = "GNU Parallel";
|
$::name = "GNU Parallel";
|
||||||
$Global::infinity = 2**31;
|
$Global::infinity = 2**31;
|
||||||
|
@ -5309,24 +5309,29 @@ sub qqx(@) {
|
||||||
# ssh with ssh-agent needs PATH SSH_AUTH_SOCK SSH_AGENT_PID
|
# ssh with ssh-agent needs PATH SSH_AUTH_SOCK SSH_AGENT_PID
|
||||||
# ssh with Kerberos needs KRB5CCNAME
|
# ssh with Kerberos needs KRB5CCNAME
|
||||||
# tmux needs LC_CTYPE
|
# tmux needs LC_CTYPE
|
||||||
my @keep = qw(PATH SSH_AUTH_SOCK SSH_AGENT_PID KRB5CCNAME LC_CTYPE);
|
# lsh needs LOGNAME HOME
|
||||||
|
my @keep = qw(PATH SSH_AUTH_SOCK SSH_AGENT_PID KRB5CCNAME LC_CTYPE HOME LOGNAME);
|
||||||
@env{@keep} = @ENV{@keep};
|
@env{@keep} = @ENV{@keep};
|
||||||
local %ENV;
|
local %ENV;
|
||||||
%ENV = %env;
|
%ENV = %env;
|
||||||
if($Global::debug) {
|
if($Global::debug) {
|
||||||
return qx{ @_ && true };
|
return qx{ @_ && true };
|
||||||
} else {
|
} else {
|
||||||
# CygWin does not respect 2>/dev/null
|
if($^O eq "cygwin") {
|
||||||
# so we do that by hand
|
# CygWin does not respect 2>/dev/null
|
||||||
open my $original_stderr, ">&", "STDERR" or
|
# so we do that by hand
|
||||||
::die_bug("Can't dup STDERR: $!");
|
open my $original_stderr, ">&", "STDERR" or
|
||||||
close STDERR;
|
::die_bug("Can't dup STDERR: $!");
|
||||||
open(STDERR, ">", "/dev/null");
|
close STDERR;
|
||||||
my @ret = qx{ @_ };
|
open(STDERR, ">", "/dev/null");
|
||||||
close STDERR;
|
my @ret = qx{ @_ };
|
||||||
open STDERR, ">&", $original_stderr or
|
close STDERR;
|
||||||
::die_bug("Can't dup STDERR: $!");
|
open STDERR, ">&", $original_stderr or
|
||||||
return wantarray ? @ret : join "",@ret;
|
::die_bug("Can't dup STDERR: $!");
|
||||||
|
return wantarray ? @ret : join "",@ret;
|
||||||
|
} else {
|
||||||
|
return qx{ ( @_ ) 2>/dev/null };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5578,7 +5583,6 @@ sub which(@) {
|
||||||
# Returns:
|
# Returns:
|
||||||
# @full_path = full paths to @programs. Nothing if not found
|
# @full_path = full paths to @programs. Nothing if not found
|
||||||
my @which;
|
my @which;
|
||||||
::debug("which", "@_ in $ENV{'PATH'}\n");
|
|
||||||
for my $prg (@_) {
|
for my $prg (@_) {
|
||||||
push(@which, grep { not -d $_ and -x $_ }
|
push(@which, grep { not -d $_ and -x $_ }
|
||||||
map { $_."/".$prg } split(":",$ENV{'PATH'}));
|
map { $_."/".$prg } split(":",$ENV{'PATH'}));
|
||||||
|
@ -5587,6 +5591,7 @@ sub which(@) {
|
||||||
push(@which, grep { not -d $_ and -x $_ } $prg);
|
push(@which, grep { not -d $_ and -x $_ } $prg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
::debug("which", "$which[0] in $ENV{'PATH'}\n");
|
||||||
return wantarray ? @which : $which[0];
|
return wantarray ? @which : $which[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7158,6 +7163,7 @@ sub ncpus($) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
my $ncpu;
|
my $ncpu;
|
||||||
|
::debug("init","echo|$sshcmd $serverlogin -- parallel --number-of-sockets");
|
||||||
if($opt::use_sockets_instead_of_threads
|
if($opt::use_sockets_instead_of_threads
|
||||||
or
|
or
|
||||||
$opt::use_cpus_instead_of_cores) {
|
$opt::use_cpus_instead_of_cores) {
|
||||||
|
|
|
@ -53,35 +53,52 @@ the line as arguments. If no I<command> is given, the line of input is
|
||||||
executed. Several lines will be run in parallel. GNU B<parallel> can
|
executed. Several lines will be run in parallel. GNU B<parallel> can
|
||||||
often be used as a substitute for B<xargs> or B<cat | bash>.
|
often be used as a substitute for B<xargs> or B<cat | bash>.
|
||||||
|
|
||||||
|
|
||||||
=head2 Reader's guide
|
=head2 Reader's guide
|
||||||
|
|
||||||
|
GNU B<parallel> includes the 4 types of documentation: Tutorial,
|
||||||
|
how-to, reference and explanation.
|
||||||
|
|
||||||
|
|
||||||
|
=head3 Tutorial
|
||||||
|
|
||||||
If you prefer reading a book buy B<GNU Parallel 2018> at
|
If you prefer reading a book buy B<GNU Parallel 2018> at
|
||||||
http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html
|
http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html
|
||||||
or download it at: https://doi.org/10.5281/zenodo.1146014
|
or download it at: https://doi.org/10.5281/zenodo.1146014 Read at
|
||||||
|
least chapter 1+2. It should take you less than 20 minutes.
|
||||||
|
|
||||||
Otherwise start by watching the intro videos for a quick introduction:
|
Otherwise start by watching the intro videos for a quick introduction:
|
||||||
http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
|
http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
|
||||||
|
|
||||||
If you need a one page printable cheat sheet you can find it on:
|
If you want to dive deeper: spend a couple of hours walking through
|
||||||
https://www.gnu.org/software/parallel/parallel_cheat.pdf
|
the tutorial (B<man parallel_tutorial>). Your command line will love
|
||||||
|
you for it.
|
||||||
|
|
||||||
|
|
||||||
|
=head3 How-to
|
||||||
|
|
||||||
You can find a lot of B<EXAMPLE>s of use after the list of B<OPTIONS>
|
You can find a lot of B<EXAMPLE>s of use after the list of B<OPTIONS>
|
||||||
in B<man parallel> (Use B<LESS=+/EXAMPLE: man parallel>). That will
|
in B<man parallel> (Use B<LESS=+/EXAMPLE: man parallel>). That will
|
||||||
give you an idea of what GNU B<parallel> is capable of, and you may
|
give you an idea of what GNU B<parallel> is capable of, and you may
|
||||||
find a solution you can simply adapt to your situation.
|
find a solution you can simply adapt to your situation.
|
||||||
|
|
||||||
If you want to dive even deeper: spend a couple of hours walking
|
|
||||||
through the tutorial (B<man parallel_tutorial>). Your command line
|
|
||||||
will love you for it.
|
|
||||||
|
|
||||||
Finally you may want to look at the rest of the manual (B<man
|
=head3 Reference
|
||||||
parallel>) if you have special needs not already covered.
|
|
||||||
|
If you need a one page printable cheat sheet you can find it on:
|
||||||
|
https://www.gnu.org/software/parallel/parallel_cheat.pdf
|
||||||
|
|
||||||
|
The man page is the reference for all options.
|
||||||
|
|
||||||
|
|
||||||
|
=head3 Design discussion
|
||||||
|
|
||||||
If you want to know the design decisions behind GNU B<parallel>, try:
|
If you want to know the design decisions behind GNU B<parallel>, try:
|
||||||
B<man parallel_design>. This is also a good intro if you intend to
|
B<man parallel_design>. This is also a good intro if you intend to
|
||||||
change GNU B<parallel>.
|
change GNU B<parallel>.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
=head1 OPTIONS
|
=head1 OPTIONS
|
||||||
|
|
||||||
=over 4
|
=over 4
|
||||||
|
@ -2333,7 +2350,8 @@ E.g.
|
||||||
sql:oracle://scott:tiger@ora.example.com/xe/parjob
|
sql:oracle://scott:tiger@ora.example.com/xe/parjob
|
||||||
postgresql://scott:tiger@pg.example.com/pgdb/parjob
|
postgresql://scott:tiger@pg.example.com/pgdb/parjob
|
||||||
pg:///parjob
|
pg:///parjob
|
||||||
sqlite3:///pardb/parjob
|
sqlite3:///pardb/parjob.sqlite
|
||||||
|
csv:///%2Ftmp%2Fmydir/jobtable
|
||||||
|
|
||||||
It can also be an alias from ~/.sql/aliases:
|
It can also be an alias from ~/.sql/aliases:
|
||||||
|
|
||||||
|
@ -4152,39 +4170,40 @@ the columns. To keep the spaces:
|
||||||
|
|
||||||
GNU B<parallel> can output to a database table and a CSV-file:
|
GNU B<parallel> can output to a database table and a CSV-file:
|
||||||
|
|
||||||
DBURL=csv:///%2Ftmp%2Fmy.csv
|
dburl=csv:///%2Ftmp%2Fmydir
|
||||||
DBTABLEURL=$DBURL/mytable
|
dbtableurl=$dburl/mytable.csv
|
||||||
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
|
parallel --sqlandworker $dbtableurl seq ::: {1..10}
|
||||||
|
|
||||||
It is rather slow and takes up a lot of CPU time because GNU
|
It is rather slow and takes up a lot of CPU time because GNU
|
||||||
B<parallel> parses the whole CSV file for each update.
|
B<parallel> parses the whole CSV file for each update.
|
||||||
|
|
||||||
A better approach is to use an SQLite-base and then convert that to CSV:
|
A better approach is to use an SQLite-base and then convert that to CSV:
|
||||||
|
|
||||||
DBURL=sqlite3:///%2Ftmp%2Fmy.sqlite
|
dburl=sqlite3:///%2Ftmp%2Fmy.sqlite
|
||||||
DBTABLEURL=$DBURL/mytable
|
dbtableurl=$dburl/mytable
|
||||||
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
|
parallel --sqlandworker $dbtableurl seq ::: {1..10}
|
||||||
sql $DBURL '.headers on' '.mode csv' 'SELECT * FROM mytable;'
|
sql $dburl '.headers on' '.mode csv' 'SELECT * FROM mytable;'
|
||||||
|
|
||||||
This takes around a second per job.
|
This takes around a second per job.
|
||||||
|
|
||||||
If you have access to a real database system, such as PostgreSQL, it
|
If you have access to a real database system, such as PostgreSQL, it
|
||||||
is even faster:
|
is even faster:
|
||||||
|
|
||||||
DBURL=pg://user:pass@host/mydb
|
dburl=pg://user:pass@host/mydb
|
||||||
DBTABLEURL=$DBURL/mytable
|
dbtableurl=$dburl/mytable
|
||||||
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
|
parallel --sqlandworker $dbtableurl seq ::: {1..10}
|
||||||
sql $DBURL \
|
sql $dburl \
|
||||||
"COPY (SELECT * FROM mytable) TO stdout DELIMITER ',' CSV HEADER;"
|
"COPY (SELECT * FROM mytable) TO stdout DELIMITER ',' CSV HEADER;"
|
||||||
|
|
||||||
Or MySQL:
|
Or MySQL:
|
||||||
|
|
||||||
DBURL=mysql://user:pass@host/mydb
|
dburl=mysql://user:pass@host/mydb
|
||||||
DBTABLEURL=$DBURL/mytable
|
dbtableurl=$dburl/mytable
|
||||||
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
|
parallel --sqlandworker $dbtableurl seq ::: {1..10}
|
||||||
sql -p -B $DBURL "SELECT * FROM mytable;" > mytable.tsv
|
sql -p -B $dburl "SELECT * FROM mytable;" > mytable.tsv
|
||||||
perl -pe 's/"/""/g; s/\t/","/g; s/^/"/; s/$/"/; s/\\\\/\\/g;
|
perl -pe 's/"/""/g; s/\t/","/g; s/^/"/; s/$/"/;
|
||||||
s/\\t/\t/g; s/\\n/\n/g;' mytable.tsv
|
%s=("\\" => "\\", "t" => "\t", "n" => "\n");
|
||||||
|
s/\\([\\tn])/$s{$1}/g;' mytable.tsv
|
||||||
|
|
||||||
|
|
||||||
=head1 EXAMPLE: Output to CSV-file for R
|
=head1 EXAMPLE: Output to CSV-file for R
|
||||||
|
|
|
@ -54,6 +54,7 @@ B<Outputs>
|
||||||
O7. Buffering on disk
|
O7. Buffering on disk
|
||||||
O8. Cleanup of file if killed
|
O8. Cleanup of file if killed
|
||||||
O9. Test if disk runs full during run
|
O9. Test if disk runs full during run
|
||||||
|
O10. Output of a line bigger than 4 GB
|
||||||
|
|
||||||
B<Execution>
|
B<Execution>
|
||||||
E1. Running jobs in parallel
|
E1. Running jobs in parallel
|
||||||
|
@ -91,7 +92,7 @@ BUGS).
|
||||||
parallel:
|
parallel:
|
||||||
I1 I2 I3 I4 I5 I6 I7
|
I1 I2 I3 I4 I5 I6 I7
|
||||||
M1 M2 M3 M4 M5 M6
|
M1 M2 M3 M4 M5 M6
|
||||||
O1 O2 O3 O4 O5 O6 O7 O8 O9
|
O1 O2 O3 O4 O5 O6 O7 O8 O9 O10
|
||||||
E1 E2 E3 E4 E5 E6 E7
|
E1 E2 E3 E4 E5 E6 E7
|
||||||
R1 R2 R3 R4 R5 R6 R7 R8 R9
|
R1 R2 R3 R4 R5 R6 R7 R8 R9
|
||||||
S1 S2
|
S1 S2
|
||||||
|
@ -2348,12 +2349,157 @@ You can then do:
|
||||||
https://github.com/lotabout/rargs (Last checked: 2020-01)
|
https://github.com/lotabout/rargs (Last checked: 2020-01)
|
||||||
|
|
||||||
|
|
||||||
|
=head2 DIFFERENCES BETWEEN threader AND GNU Parallel
|
||||||
|
|
||||||
|
Summary table (see legend above):
|
||||||
|
I1 - - - - - -
|
||||||
|
M1 - M3 - - M6
|
||||||
|
O1 - O3 - O5 - - N/A N/A
|
||||||
|
E1 - - E4 - - -
|
||||||
|
- - - - - - - - -
|
||||||
|
- -
|
||||||
|
|
||||||
|
Newline separates arguments, but newline at the end of file is treated
|
||||||
|
as an empty argument. So this runs 2 jobs:
|
||||||
|
|
||||||
|
echo two_jobs | threader -run 'echo "$THREADID"'
|
||||||
|
|
||||||
|
B<threader> ignores stderr, so any output to stderr is
|
||||||
|
lost. B<threader> buffers in RAM, so output bigger than the machine's
|
||||||
|
virtual memory will cause the machine to crash.
|
||||||
|
|
||||||
|
https://github.com/voodooEntity/threader (Last checked: 2020-04)
|
||||||
|
|
||||||
|
=head2 DIFFERENCES BETWEEN runp AND GNU Parallel
|
||||||
|
|
||||||
|
Summary table (see legend above):
|
||||||
|
I1 I2 - - - - -
|
||||||
|
M1 - (M3) - - M6
|
||||||
|
O1 O2 O3 - O5 O6 - N/A N/A -
|
||||||
|
E1 - - - - - -
|
||||||
|
- - - - - - - - -
|
||||||
|
- -
|
||||||
|
|
||||||
|
(M3): You can add a prefix and a postfix to the input, so it means you can
|
||||||
|
only insert the argument on the command line once.
|
||||||
|
|
||||||
|
B<runp> runs 10 jobs in parallel by default. B<runp> blocks if output
|
||||||
|
of a command is > 64 Kbytes. Quoting of input is needed. It adds
|
||||||
|
output to stderr (this can be prevented with -q)
|
||||||
|
|
||||||
|
=head3 Examples as GNU Parallel
|
||||||
|
|
||||||
|
base='https://images-api.nasa.gov/search'
|
||||||
|
query='jupiter'
|
||||||
|
desc='planet'
|
||||||
|
type='image'
|
||||||
|
url="$base?q=$query&description=$desc&media_type=$type"
|
||||||
|
|
||||||
|
# Download the images in parallel using runp
|
||||||
|
curl -s $url | jq -r .collection.items[].href | \
|
||||||
|
runp -p 'curl -s' | jq -r .[] | grep large | \
|
||||||
|
runp -p 'curl -s -L -O'
|
||||||
|
|
||||||
|
time curl -s $url | jq -r .collection.items[].href | \
|
||||||
|
runp -g 1 -q -p 'curl -s' | jq -r .[] | grep large | \
|
||||||
|
runp -g 1 -q -p 'curl -s -L -O'
|
||||||
|
|
||||||
|
# Download the images in parallel
|
||||||
|
curl -s $url | jq -r .collection.items[].href | \
|
||||||
|
parallel curl -s | jq -r .[] | grep large | \
|
||||||
|
parallel curl -s -L -O
|
||||||
|
|
||||||
|
time curl -s $url | jq -r .collection.items[].href | \
|
||||||
|
parallel -j 1 curl -s | jq -r .[] | grep large | \
|
||||||
|
parallel -j 1 curl -s -L -O
|
||||||
|
|
||||||
|
|
||||||
|
=head4 Run some test commands (read from file)
|
||||||
|
|
||||||
|
# Create a file containing commands to run in parallel.
|
||||||
|
cat << EOF > /tmp/test-commands.txt
|
||||||
|
sleep 5
|
||||||
|
sleep 3
|
||||||
|
blah # this will fail
|
||||||
|
ls $PWD # PWD shell variable is used here
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Run commands from the file.
|
||||||
|
runp /tmp/test-commands.txt > /dev/null
|
||||||
|
|
||||||
|
parallel -a /tmp/test-commands.txt > /dev/null
|
||||||
|
|
||||||
|
=head4 Ping several hosts and see packet loss (read from stdin)
|
||||||
|
|
||||||
|
# First copy this line and press Enter
|
||||||
|
runp -p 'ping -c 5 -W 2' -s '| grep loss'
|
||||||
|
localhost
|
||||||
|
1.1.1.1
|
||||||
|
8.8.8.8
|
||||||
|
# Press Enter and Ctrl-D when done entering the hosts
|
||||||
|
|
||||||
|
# First copy this line and press Enter
|
||||||
|
parallel ping -c 5 -W 2 {} '| grep loss'
|
||||||
|
localhost
|
||||||
|
1.1.1.1
|
||||||
|
8.8.8.8
|
||||||
|
# Press Enter and Ctrl-D when done entering the hosts
|
||||||
|
|
||||||
|
=head4 Get directories' sizes (read from stdin)
|
||||||
|
|
||||||
|
echo -e "$HOME\n/etc\n/tmp" | runp -q -p 'sudo du -sh'
|
||||||
|
|
||||||
|
echo -e "$HOME\n/etc\n/tmp" | parallel sudo du -sh
|
||||||
|
# or:
|
||||||
|
parallel sudo du -sh ::: "$HOME" /etc /tmp
|
||||||
|
|
||||||
|
=head4 Compress files
|
||||||
|
|
||||||
|
find . -iname '*.txt' | runp -p 'gzip --best'
|
||||||
|
|
||||||
|
find . -iname '*.txt' | parallel gzip --best
|
||||||
|
|
||||||
|
=head4 Measure HTTP request + response time
|
||||||
|
|
||||||
|
export CURL="curl -w 'time_total: %{time_total}\n'"
|
||||||
|
CURL="$CURL -o /dev/null -s https://golang.org/"
|
||||||
|
perl -wE 'for (1..10) { say $ENV{CURL} }' |
|
||||||
|
runp -q # Make 10 requests
|
||||||
|
|
||||||
|
perl -wE 'for (1..10) { say $ENV{CURL} }' | parallel
|
||||||
|
# or:
|
||||||
|
parallel -N0 "$CURL" ::: {1..10}
|
||||||
|
|
||||||
|
=head4 Find open TCP ports
|
||||||
|
|
||||||
|
cat << EOF > /tmp/host-port.txt
|
||||||
|
localhost 22
|
||||||
|
localhost 80
|
||||||
|
localhost 81
|
||||||
|
127.0.0.1 443
|
||||||
|
127.0.0.1 444
|
||||||
|
scanme.nmap.org 22
|
||||||
|
scanme.nmap.org 23
|
||||||
|
scanme.nmap.org 443
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat /tmp/host-port.txt | \
|
||||||
|
runp -q -p 'netcat -v -w2 -z' 2>&1 | egrep '(succeeded!|open)$'
|
||||||
|
|
||||||
|
# --colsep is needed to split the line
|
||||||
|
cat /tmp/host-port.txt | \
|
||||||
|
parallel --colsep ' ' netcat -v -w2 -z 2>&1 | egrep '(succeeded!|open)$'
|
||||||
|
# or use uq for unquoted:
|
||||||
|
cat /tmp/host-port.txt | \
|
||||||
|
parallel netcat -v -w2 -z {=uq=} 2>&1 | egrep '(succeeded!|open)$'
|
||||||
|
|
||||||
|
https://github.com/jreisinger/runp (Last checked: 2020-04)
|
||||||
|
|
||||||
|
|
||||||
=head2 Todo
|
=head2 Todo
|
||||||
|
|
||||||
https://pypi.org/project/papply/
|
https://pypi.org/project/papply/
|
||||||
|
|
||||||
https://github.com/jreisinger/runp
|
|
||||||
|
|
||||||
https://github.com/JeiKeiLim/simple_distribute_job
|
https://github.com/JeiKeiLim/simple_distribute_job
|
||||||
|
|
||||||
https://github.com/reggi/pkgrun
|
https://github.com/reggi/pkgrun
|
||||||
|
@ -2603,6 +2749,22 @@ Some tools become very slow if output lines have many words.
|
||||||
# Run 30 jobs in parallel
|
# Run 30 jobs in parallel
|
||||||
seq 30 | time $paralleltool -j0 ./mycommand > /dev/null
|
seq 30 | time $paralleltool -j0 ./mycommand > /dev/null
|
||||||
|
|
||||||
|
=head2 4GB: Output with a line > 4GB should be OK
|
||||||
|
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
paralleltool="parallel -j0"
|
||||||
|
|
||||||
|
cat <<-EOF > mycommand
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
perl -e '\$a="a"x1000_000; for(1..5000) { print \$a }'
|
||||||
|
EOF
|
||||||
|
chmod +x mycommand
|
||||||
|
|
||||||
|
# Run 1 job
|
||||||
|
seq 1 | $paralleltool ./mycommand | LC_ALL=C wc
|
||||||
|
|
||||||
|
|
||||||
=head1 AUTHOR
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
|
|
@ -2243,7 +2243,7 @@ the output each in their own column.
|
||||||
|
|
||||||
The simplest is to use a CSV file as the storage table:
|
The simplest is to use a CSV file as the storage table:
|
||||||
|
|
||||||
parallel --sqlandworker csv:////%2Ftmp%2Flog.csv \
|
parallel --sqlandworker csv:///%2Ftmp/log.csv \
|
||||||
seq ::: 10 ::: 12 13 14
|
seq ::: 10 ::: 12 13 14
|
||||||
cat /tmp/log.csv
|
cat /tmp/log.csv
|
||||||
|
|
||||||
|
@ -2274,7 +2274,7 @@ format correctly - even with fields containing newlines as above.
|
||||||
|
|
||||||
If the output is big you may want to put it into files using B<--results>:
|
If the output is big you may want to put it into files using B<--results>:
|
||||||
|
|
||||||
parallel --results outdir --sqlandworker csv:////%2Ftmp%2Flog2.csv \
|
parallel --results outdir --sqlandworker csv:///%2Ftmp/log2.csv \
|
||||||
seq ::: 10 ::: 12 13 14
|
seq ::: 10 ::: 12 13 14
|
||||||
cat /tmp/log2.csv
|
cat /tmp/log2.csv
|
||||||
|
|
||||||
|
@ -2303,7 +2303,7 @@ Example:
|
||||||
mysql://scott:tiger@my.example.com/mydatabase/mytable
|
mysql://scott:tiger@my.example.com/mydatabase/mytable
|
||||||
postgresql://scott:tiger@pg.example.com/mydatabase/mytable
|
postgresql://scott:tiger@pg.example.com/mydatabase/mytable
|
||||||
sqlite3:///%2Ftmp%2Fmydatabase/mytable
|
sqlite3:///%2Ftmp%2Fmydatabase/mytable
|
||||||
csv:////%2Ftmp%2Flog.csv
|
csv:///%2Ftmp/log.csv
|
||||||
|
|
||||||
To refer to B</tmp/mydatabase> with B<sqlite> or B<csv> you need to
|
To refer to B</tmp/mydatabase> with B<sqlite> or B<csv> you need to
|
||||||
encode the B</> as B<%2F>.
|
encode the B</> as B<%2F>.
|
||||||
|
|
2
src/sql
2
src/sql
|
@ -574,7 +574,7 @@ $Global::Initfile && unlink $Global::Initfile;
|
||||||
exit ($err);
|
exit ($err);
|
||||||
|
|
||||||
sub parse_options {
|
sub parse_options {
|
||||||
$Global::version = 20200323;
|
$Global::version = 20200422;
|
||||||
$Global::progname = 'sql';
|
$Global::progname = 'sql';
|
||||||
|
|
||||||
# This must be done first as this may exec myself
|
# This must be done first as this may exec myself
|
||||||
|
|
|
@ -5,13 +5,17 @@ unset TIMEOUT
|
||||||
env_parallel --session
|
env_parallel --session
|
||||||
|
|
||||||
host=$(parallel -j0 --halt now,success=1 ssh {} echo {} ::: android1 android2 2>/dev/null)
|
host=$(parallel -j0 --halt now,success=1 ssh {} echo {} ::: android1 android2 2>/dev/null)
|
||||||
echo $host >&2
|
if [ -z "$host" ] ; then
|
||||||
|
echo Error: no android host working
|
||||||
|
else
|
||||||
|
echo $host >&2
|
||||||
|
|
||||||
doit() {
|
doit() {
|
||||||
export PARALLEL_SSH='ssh -p2222'
|
export PARALLEL_SSH='ssh -p2222'
|
||||||
parallel -k echo ::: Basic usage works
|
parallel -k echo ::: Basic usage works
|
||||||
parallel -k -S localhost echo ::: Remote usage works
|
parallel -k -S localhost echo ::: Remote usage works
|
||||||
}
|
}
|
||||||
|
|
||||||
scp /usr/local/bin/parallel $host:/data/data/com.termux/files/usr/bin
|
scp /usr/local/bin/parallel $host:/data/data/com.termux/files/usr/bin
|
||||||
env_parallel -S $host doit ::: a
|
env_parallel -S $host doit ::: a
|
||||||
|
fi
|
||||||
|
|
|
@ -86,9 +86,12 @@ par_verbose_t() {
|
||||||
|
|
||||||
par_show_limits() {
|
par_show_limits() {
|
||||||
echo '### Test --show-limits'
|
echo '### Test --show-limits'
|
||||||
|
(
|
||||||
(echo b; echo c; echo f) | parallel -k --show-limits echo {}ar
|
(echo b; echo c; echo f) | parallel -k --show-limits echo {}ar
|
||||||
(echo b; echo c; echo f) | parallel -j1 -kX --show-limits -s 100 echo {}ar
|
(echo b; echo c; echo f) | parallel -j1 -kX --show-limits -s 100 echo {}ar
|
||||||
|
echo "### BUG: empty lines with --show-limit"
|
||||||
|
echo | stdout parallel --show-limits
|
||||||
|
) | perl -pe 's/131\d\d\d/131xxx/'
|
||||||
}
|
}
|
||||||
|
|
||||||
par_test_zero_args() {
|
par_test_zero_args() {
|
||||||
|
@ -746,7 +749,7 @@ par_unquote_replacement_string() {
|
||||||
|
|
||||||
par_delimiter_space() {
|
par_delimiter_space() {
|
||||||
echo '### Does space as delimiter work?'
|
echo '### Does space as delimiter work?'
|
||||||
parallel -d " " echo ::: "1 done"
|
parallel -k -d " " echo ::: "1 done"
|
||||||
}
|
}
|
||||||
|
|
||||||
par_recend_not_regexp() {
|
par_recend_not_regexp() {
|
||||||
|
|
|
@ -190,8 +190,9 @@ par_bug57364() {
|
||||||
j=32
|
j=32
|
||||||
set -e
|
set -e
|
||||||
for i in $(seq 1 50); do
|
for i in $(seq 1 50); do
|
||||||
# Clear cache.
|
# Clear cache (simple 'rm -rf' causes race condition)
|
||||||
rm -rf "${HOME}/.parallel/tmp"
|
mv "${HOME}/.parallel/tmp" "${HOME}/.parallel/tmp-$$" &&
|
||||||
|
rm -rf "${HOME}/.parallel/tmp-$$"
|
||||||
# Try to launch multiple parallel simultaneously.
|
# Try to launch multiple parallel simultaneously.
|
||||||
seq $j |
|
seq $j |
|
||||||
xargs -P $j -n 1 parallel true $i :::
|
xargs -P $j -n 1 parallel true $i :::
|
||||||
|
@ -311,13 +312,20 @@ par_no_newline_compress() {
|
||||||
|
|
||||||
par_max_length_len_128k() {
|
par_max_length_len_128k() {
|
||||||
echo "### BUG: The length for -X is not close to max (131072)"
|
echo "### BUG: The length for -X is not close to max (131072)"
|
||||||
|
(
|
||||||
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc
|
seq 1 60000 | perl -pe 's/$/.gif/' |
|
||||||
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo a{}b{}c |head -n 1 |wc
|
parallel -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} | head -n 1 | wc -c
|
||||||
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo |head -n 1 |wc
|
seq 1 60000 | perl -pe 's/$/.gif/' |
|
||||||
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo a{}b{}c {} |head -n 1 |wc
|
parallel -X echo a{}b{}c | head -n 1 | wc -c
|
||||||
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo {}aa{} |head -n 1 |wc
|
seq 1 60000 | perl -pe 's/$/.gif/' |
|
||||||
seq 1 60000 | perl -pe 's/$/.gif/' | parallel -X echo {} aa {} |head -n 1 |wc
|
parallel -X echo | head -n 1 | wc -c
|
||||||
|
seq 1 60000 | perl -pe 's/$/.gif/' |
|
||||||
|
parallel -X echo a{}b{}c {} | head -n 1 | wc -c
|
||||||
|
seq 1 60000 | perl -pe 's/$/.gif/' |
|
||||||
|
parallel -X echo {}aa{} | head -n 1 | wc -c
|
||||||
|
seq 1 60000 | perl -pe 's/$/.gif/' |
|
||||||
|
parallel -X echo {} aa {} | head -n 1 | wc -c
|
||||||
|
) | perl -pe 's/131\d\d\d/131xxx/g'
|
||||||
}
|
}
|
||||||
|
|
||||||
par_round_robin_blocks() {
|
par_round_robin_blocks() {
|
||||||
|
|
105
testsuite/tests-to-run/parallel-local-parsort.sh
Executable file
105
testsuite/tests-to-run/parallel-local-parsort.sh
Executable file
|
@ -0,0 +1,105 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
tmp=$(tempfile)
|
||||||
|
perl -pe 's/\n/\n\0/' >$tmp <<EOF
|
||||||
|
chr1 1 Sample 1
|
||||||
|
chr1 11 Sample 1
|
||||||
|
chr1 111 Sample 1
|
||||||
|
chr1 1111 Sample 1
|
||||||
|
chr1 11111 Sample 1
|
||||||
|
chr1 111111 Sample 1
|
||||||
|
chr2 1 Sample 1
|
||||||
|
chr2 22 Sample 1
|
||||||
|
chr2 111 Sample 1
|
||||||
|
chr2 2222 Sample 1
|
||||||
|
chr2 11111 Sample 1
|
||||||
|
chr2 111111 Sample 1
|
||||||
|
chr10 1 Sample 1
|
||||||
|
chr10 11 Sample 1
|
||||||
|
chr10 111 Sample 1
|
||||||
|
chr10 1111 Sample 1
|
||||||
|
chr10 11111 Sample 1
|
||||||
|
chr10 111111 Sample 1
|
||||||
|
chr1 1 Sample 2
|
||||||
|
chr1 11 Sample 2
|
||||||
|
chr1 111 Sample 2
|
||||||
|
chr1 1111 Sample 2
|
||||||
|
chr1 11111 Sample 2
|
||||||
|
chr1 111111 Sample 2
|
||||||
|
chr2 1 Sample 2
|
||||||
|
chr2 22 Sample 2
|
||||||
|
chr2 111 Sample 2
|
||||||
|
chr2 2222 Sample 2
|
||||||
|
chr2 11111 Sample 2
|
||||||
|
chr2 111111 Sample 2
|
||||||
|
chr10 1 Sample 2
|
||||||
|
chr10 11 Sample 2
|
||||||
|
chr10 111 Sample 2
|
||||||
|
chr10 1111 Sample 2
|
||||||
|
chr10 11111 Sample 2
|
||||||
|
chr10 111111 Sample 2
|
||||||
|
chr1 1 Sample 10
|
||||||
|
chr1 11 Sample 10
|
||||||
|
chr1 111 Sample 10
|
||||||
|
chr1 1111 Sample 10
|
||||||
|
chr1 11111 Sample 10
|
||||||
|
chr1 111111 Sample 10
|
||||||
|
chr2 1 Sample 10
|
||||||
|
chr2 22 Sample 10
|
||||||
|
chr2 111 Sample 10
|
||||||
|
chr2 2222 Sample 10
|
||||||
|
chr2 11111 Sample 10
|
||||||
|
chr2 111111 Sample 10
|
||||||
|
chr10 1 Sample 10
|
||||||
|
chr10 11 Sample 10
|
||||||
|
chr10 111 Sample 10
|
||||||
|
chr10 1111 Sample 10
|
||||||
|
chr10 11111 Sample 10
|
||||||
|
chr10 111111 Sample 10
|
||||||
|
EOF
|
||||||
|
export tmp
|
||||||
|
}
|
||||||
|
|
||||||
|
parsort_test() {
|
||||||
|
echo "### parsort $@"
|
||||||
|
parsort "$@" $tmp | md5sum
|
||||||
|
sort "$@" $tmp | md5sum
|
||||||
|
parsort "$@" < $tmp | md5sum
|
||||||
|
sort "$@" < $tmp | md5sum
|
||||||
|
}
|
||||||
|
export -f parsort_test
|
||||||
|
|
||||||
|
par_normal() { parsort_test; }
|
||||||
|
|
||||||
|
par_n() { parsort_test -n; }
|
||||||
|
|
||||||
|
par_r() { parsort_test -r; }
|
||||||
|
|
||||||
|
par_nr() { parsort_test -nr; }
|
||||||
|
|
||||||
|
par_z() { parsort_test -z; }
|
||||||
|
|
||||||
|
par_k2() { parsort_test -k2n; }
|
||||||
|
|
||||||
|
par_k2r() { parsort_test -k2nr; }
|
||||||
|
|
||||||
|
par_k3() { parsort_test -k3; }
|
||||||
|
|
||||||
|
par_k3r() { parsort_test -k3r; }
|
||||||
|
|
||||||
|
par_dummy() {
|
||||||
|
parsort_test --random-source=`which parallel` --batch-size=10 \
|
||||||
|
--compress-program=gzip --temporary-directory=/var/tmp \
|
||||||
|
--parallel=8 --unique
|
||||||
|
# TODO
|
||||||
|
# files0=$(tempfile)
|
||||||
|
# echo $tmp > $files0
|
||||||
|
# --files0-from=$files0
|
||||||
|
}
|
||||||
|
|
||||||
|
setup
|
||||||
|
|
||||||
|
export -f $(compgen -A function | grep par_)
|
||||||
|
compgen -A function | grep par_ | LC_ALL=C sort |
|
||||||
|
parallel --timeout 10000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|
|
@ -72,7 +72,9 @@ par_command_len_shellquote() {
|
||||||
}
|
}
|
||||||
export -f outer
|
export -f outer
|
||||||
|
|
||||||
parallel --tag -k outer ::: '-Slo -j10' ''
|
stdout parallel --tag -k outer ::: '-Slo -j10' '' |
|
||||||
|
perl -pe 's/131\d\d\d/131xxx/g';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export -f $(compgen -A function | grep par_)
|
export -f $(compgen -A function | grep par_)
|
||||||
|
|
|
@ -170,9 +170,6 @@ nice parallel -j1 -I :: -X echo 'a::b::^c::[.}c' ::: 1
|
||||||
echo "### BUG: The length for -X is not close to max (131072)"
|
echo "### BUG: The length for -X is not close to max (131072)"
|
||||||
seq 1 4000 | nice parallel -k -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc
|
seq 1 4000 | nice parallel -k -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc
|
||||||
|
|
||||||
echo "### BUG: empty lines with --show-limit"
|
|
||||||
echo | $NICEPAR --show-limits
|
|
||||||
|
|
||||||
echo '### Test -N'
|
echo '### Test -N'
|
||||||
seq 1 5 | $NICEPAR -kN3 echo {1} {2} {3}
|
seq 1 5 | $NICEPAR -kN3 echo {1} {2} {3}
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,9 @@ export PARALLEL_SSH="ssh -oLogLevel=quiet"
|
||||||
|
|
||||||
# select a running master (debian-ppc, suse, ubuntu, redhat, or debian)
|
# select a running master (debian-ppc, suse, ubuntu, redhat, or debian)
|
||||||
# 2019-06-25 debian has too little free memory (and swap)
|
# 2019-06-25 debian has too little free memory (and swap)
|
||||||
|
# 2020-04-22 debian-ppc has read-only disk
|
||||||
MASTER=$(parallel -j0 --delay 0.1 --halt now,success=1 $PARALLEL_SSH {} echo {} \
|
MASTER=$(parallel -j0 --delay 0.1 --halt now,success=1 $PARALLEL_SSH {} echo {} \
|
||||||
::: {debian-ppc,ubuntu,suse,redhat}.polarhome.com)
|
::: {ubuntu,suse,redhat}.polarhome.com)
|
||||||
|
|
||||||
parallel -j0 --delay 0.1 --retries $RETRIES \
|
parallel -j0 --delay 0.1 --retries $RETRIES \
|
||||||
rsync -L /usr/local/bin/{parallel,env_parallel,env_parallel.*[^~],parcat,stdout} \
|
rsync -L /usr/local/bin/{parallel,env_parallel,env_parallel.*[^~],parcat,stdout} \
|
||||||
|
|
|
@ -774,8 +774,8 @@ par_sem_quote ### sem --quote should not add empty argument
|
||||||
par_sem_quote echo
|
par_sem_quote echo
|
||||||
par_sem_quote
|
par_sem_quote
|
||||||
par_show_limits ### Test --show-limits
|
par_show_limits ### Test --show-limits
|
||||||
par_show_limits Maximal size of command: 131049
|
par_show_limits Maximal size of command: 131xxx
|
||||||
par_show_limits Maximal used size of command: 131049
|
par_show_limits Maximal used size of command: 131xxx
|
||||||
par_show_limits
|
par_show_limits
|
||||||
par_show_limits Execution of will continue now, and it will try to read its input
|
par_show_limits Execution of will continue now, and it will try to read its input
|
||||||
par_show_limits and run commands; if this is not what you wanted to happen, please
|
par_show_limits and run commands; if this is not what you wanted to happen, please
|
||||||
|
@ -783,13 +783,20 @@ par_show_limits press CTRL-D or CTRL-C
|
||||||
par_show_limits bar
|
par_show_limits bar
|
||||||
par_show_limits car
|
par_show_limits car
|
||||||
par_show_limits far
|
par_show_limits far
|
||||||
par_show_limits Maximal size of command: 131049
|
par_show_limits Maximal size of command: 131xxx
|
||||||
par_show_limits Maximal used size of command: 100
|
par_show_limits Maximal used size of command: 100
|
||||||
par_show_limits
|
par_show_limits
|
||||||
par_show_limits Execution of will continue now, and it will try to read its input
|
par_show_limits Execution of will continue now, and it will try to read its input
|
||||||
par_show_limits and run commands; if this is not what you wanted to happen, please
|
par_show_limits and run commands; if this is not what you wanted to happen, please
|
||||||
par_show_limits press CTRL-D or CTRL-C
|
par_show_limits press CTRL-D or CTRL-C
|
||||||
par_show_limits bar car far
|
par_show_limits bar car far
|
||||||
|
par_show_limits ### BUG: empty lines with --show-limit
|
||||||
|
par_show_limits Maximal size of command: 131xxx
|
||||||
|
par_show_limits Maximal used size of command: 131xxx
|
||||||
|
par_show_limits
|
||||||
|
par_show_limits Execution of will continue now, and it will try to read its input
|
||||||
|
par_show_limits and run commands; if this is not what you wanted to happen, please
|
||||||
|
par_show_limits press CTRL-D or CTRL-C
|
||||||
par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks
|
par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks
|
||||||
par_slow_pipe_regexp This should take a few ms, but took more than 2 hours
|
par_slow_pipe_regexp This should take a few ms, but took more than 2 hours
|
||||||
par_slow_pipe_regexp 980 981 5881
|
par_slow_pipe_regexp 980 981 5881
|
||||||
|
|
|
@ -209,16 +209,16 @@ par_test_build_and_install Making install in src
|
||||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
||||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
||||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin'
|
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin'
|
||||||
par_test_build_and_install /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.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin'
|
par_test_build_and_install /usr/bin/install -c parallel sql niceload parcat parset parsort env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin'
|
||||||
par_test_build_and_install make install-exec-hook
|
par_test_build_and_install make install-exec-hook
|
||||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
||||||
par_test_build_and_install rm /tmp/parallel-install/bin/sem || true
|
par_test_build_and_install rm /tmp/parallel-install/bin/sem || true
|
||||||
par_test_build_and_install ln -s parallel /tmp/parallel-install/bin/sem
|
par_test_build_and_install ln -s parallel /tmp/parallel-install/bin/sem
|
||||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
||||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
|
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
|
||||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel'
|
par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel'
|
||||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1'
|
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1'
|
||||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 '/tmp/parallel-install/share/man/man1'
|
par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 parsort.1 '/tmp/parallel-install/share/man/man1'
|
||||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7'
|
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7'
|
||||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7'
|
par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7'
|
||||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
||||||
|
@ -469,7 +469,7 @@ par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||||
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
|
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
|
||||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
||||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin'
|
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/bin'
|
||||||
par_test_build_and_install /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.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin'
|
par_test_build_and_install /usr/bin/install -c parallel sql niceload parcat parset parsort env_parallel env_parallel.ash env_parallel.bash env_parallel.csh env_parallel.dash env_parallel.fish env_parallel.ksh env_parallel.mksh env_parallel.pdksh env_parallel.sh env_parallel.tcsh env_parallel.zsh '/tmp/parallel-install/bin'
|
||||||
par_test_build_and_install make install-exec-hook
|
par_test_build_and_install make install-exec-hook
|
||||||
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
par_test_build_and_install make[0]: Entering directory '/tmp/parallel-00000000/src'
|
||||||
par_test_build_and_install rm /tmp/parallel-install/bin/sem || true
|
par_test_build_and_install rm /tmp/parallel-install/bin/sem || true
|
||||||
|
@ -630,7 +630,7 @@ par_test_build_and_install || echo "Warning: pod2pdf not found. Using old parset
|
||||||
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
par_test_build_and_install /bin/bash: pod2pdf: command not found
|
||||||
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
|
par_test_build_and_install Warning: pod2pdf not found. Using old parset.pdf
|
||||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
|
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/doc/parallel'
|
||||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel'
|
par_test_build_and_install /usr/bin/install -c -m 644 parallel.html env_parallel.html sem.html sql.html niceload.html parallel_tutorial.html parallel_book.html parallel_design.html parallel_alternatives.html parcat.html parset.html parsort.html parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi parallel_tutorial.texi parallel_book.texi parallel_design.texi parallel_alternatives.texi parcat.texi parset.texi parsort.texi parallel.pdf env_parallel.pdf sem.pdf sql.pdf niceload.pdf parallel_tutorial.pdf parallel_book.pdf parallel_design.pdf parallel_alternatives.pdf parcat.pdf parset.pdf parsort.pdf parallel_cheat_bw.pdf '/tmp/parallel-install/share/doc/parallel'
|
||||||
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
par_test_build_and_install pod2man --release='00000000' --center='parallel' \
|
||||||
par_test_build_and_install --section=1 ./parallel.pod > ./parallel.1n \
|
par_test_build_and_install --section=1 ./parallel.pod > ./parallel.1n \
|
||||||
par_test_build_and_install && mv ./parallel.1n ./parallel.1 \
|
par_test_build_and_install && mv ./parallel.1n ./parallel.1 \
|
||||||
|
@ -698,7 +698,7 @@ par_test_build_and_install || echo "Warning: pod2man not found. Using old parset
|
||||||
par_test_build_and_install /bin/bash: pod2man: command not found
|
par_test_build_and_install /bin/bash: pod2man: command not found
|
||||||
par_test_build_and_install Warning: pod2man not found. Using old parset.1
|
par_test_build_and_install Warning: pod2man not found. Using old parset.1
|
||||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1'
|
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man1'
|
||||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 '/tmp/parallel-install/share/man/man1'
|
par_test_build_and_install /usr/bin/install -c -m 644 parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 parcat.1 parset.1 parsort.1 '/tmp/parallel-install/share/man/man1'
|
||||||
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7'
|
par_test_build_and_install /bin/mkdir -p '/tmp/parallel-install/share/man/man7'
|
||||||
par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7'
|
par_test_build_and_install /usr/bin/install -c -m 644 parallel_tutorial.7 parallel_book.7 parallel_design.7 parallel_alternatives.7 '/tmp/parallel-install/share/man/man7'
|
||||||
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
par_test_build_and_install make[0]: Leaving directory '/tmp/parallel-00000000/src'
|
||||||
|
|
|
@ -1285,12 +1285,12 @@ par_macron
|
||||||
par_macron ¯<¯<¯>¯> -k /bin/bash: ¯: No such file or directory
|
par_macron ¯<¯<¯>¯> -k /bin/bash: ¯: No such file or directory
|
||||||
par_macron ¯<¯<¯>¯> -k /bin/bash: ¯: No such file or directory
|
par_macron ¯<¯<¯>¯> -k /bin/bash: ¯: No such file or directory
|
||||||
par_max_length_len_128k ### BUG: The length for -X is not close to max (131072)
|
par_max_length_len_128k ### BUG: The length for -X is not close to max (131072)
|
||||||
par_max_length_len_128k 1 8293 131004
|
par_max_length_len_128k 131xxx
|
||||||
par_max_length_len_128k 1 6662 131026
|
par_max_length_len_128k 131xxx
|
||||||
par_max_length_len_128k 1 14215 131044
|
par_max_length_len_128k 131xxx
|
||||||
par_max_length_len_128k 1 9266 131036
|
par_max_length_len_128k 131xxx
|
||||||
par_max_length_len_128k 1 7013 131033
|
par_max_length_len_128k 131xxx
|
||||||
par_max_length_len_128k 1 14807 131043
|
par_max_length_len_128k 131xxx
|
||||||
par_memfree ### test memfree - it should be killed by timeout
|
par_memfree ### test memfree - it should be killed by timeout
|
||||||
par_memfree Free mem: 1k
|
par_memfree Free mem: 1k
|
||||||
par_memfree parallel: Warning: This job was killed because it timed out:
|
par_memfree parallel: Warning: This job was killed because it timed out:
|
||||||
|
|
50
testsuite/wanted-results/parallel-local-parsort
Normal file
50
testsuite/wanted-results/parallel-local-parsort
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
par_dummy ### parsort --random-source=/usr/local/bin/parallel --batch-size=10 --compress-program=gzip --temporary-directory=/var/tmp --parallel=8 --unique
|
||||||
|
par_dummy b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_dummy b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_dummy b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_dummy b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_k2 ### parsort -k2n
|
||||||
|
par_k2 94cc818d752dbe2d9e7ccc381991a5b0 -
|
||||||
|
par_k2 94cc818d752dbe2d9e7ccc381991a5b0 -
|
||||||
|
par_k2 94cc818d752dbe2d9e7ccc381991a5b0 -
|
||||||
|
par_k2 94cc818d752dbe2d9e7ccc381991a5b0 -
|
||||||
|
par_k2r ### parsort -k2nr
|
||||||
|
par_k2r 357ca7c08b2ff002c9f3b71e4994e5d1 -
|
||||||
|
par_k2r 357ca7c08b2ff002c9f3b71e4994e5d1 -
|
||||||
|
par_k2r 357ca7c08b2ff002c9f3b71e4994e5d1 -
|
||||||
|
par_k2r 357ca7c08b2ff002c9f3b71e4994e5d1 -
|
||||||
|
par_k3 ### parsort -k3
|
||||||
|
par_k3 6af33d6da888ad377fe53b9ca4170b21 -
|
||||||
|
par_k3 6af33d6da888ad377fe53b9ca4170b21 -
|
||||||
|
par_k3 6af33d6da888ad377fe53b9ca4170b21 -
|
||||||
|
par_k3 6af33d6da888ad377fe53b9ca4170b21 -
|
||||||
|
par_k3r ### parsort -k3r
|
||||||
|
par_k3r f37c643ab666523d9075b8848a6aed9b -
|
||||||
|
par_k3r f37c643ab666523d9075b8848a6aed9b -
|
||||||
|
par_k3r f37c643ab666523d9075b8848a6aed9b -
|
||||||
|
par_k3r f37c643ab666523d9075b8848a6aed9b -
|
||||||
|
par_n ### parsort -n
|
||||||
|
par_n b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_n b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_n b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_n b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_normal ### parsort
|
||||||
|
par_normal b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_normal b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_normal b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_normal b6f9cd356e6ca6505ba55596b3bed255 -
|
||||||
|
par_nr ### parsort -nr
|
||||||
|
par_nr deb3b52408074435b24fda0e3f624799 -
|
||||||
|
par_nr deb3b52408074435b24fda0e3f624799 -
|
||||||
|
par_nr deb3b52408074435b24fda0e3f624799 -
|
||||||
|
par_nr deb3b52408074435b24fda0e3f624799 -
|
||||||
|
par_r ### parsort -r
|
||||||
|
par_r deb3b52408074435b24fda0e3f624799 -
|
||||||
|
par_r deb3b52408074435b24fda0e3f624799 -
|
||||||
|
par_r deb3b52408074435b24fda0e3f624799 -
|
||||||
|
par_r deb3b52408074435b24fda0e3f624799 -
|
||||||
|
par_z ### parsort -z
|
||||||
|
par_z 583c59e3574e550f6810d0ad20e7ab88 -
|
||||||
|
par_z 507d17cd3d746cdeeccdb8ad11860181 -
|
||||||
|
par_z 507d17cd3d746cdeeccdb8ad11860181 -
|
||||||
|
par_z 507d17cd3d746cdeeccdb8ad11860181 -
|
|
@ -6,9 +6,7 @@ par_pipe_retries 134362 134362 940534
|
||||||
par_pipe_retries localhost-:
|
par_pipe_retries localhost-:
|
||||||
par_pipe_retries parallel: Error: --retries cannot be combined with --roundrobin.
|
par_pipe_retries parallel: Error: --retries cannot be combined with --roundrobin.
|
||||||
par_lsh ### --ssh lsh
|
par_lsh ### --ssh lsh
|
||||||
par_lsh parallel: Warning: Could not figure out number of cpus on lo (). Using 1.
|
|
||||||
par_lsh OK
|
par_lsh OK
|
||||||
par_lsh parallel: Warning: Could not figure out number of cpus on lo (). Using 1.
|
|
||||||
par_lsh OK
|
par_lsh OK
|
||||||
par_input_loss_pipe ### bug #36595: silent loss of input with --pipe and --sshlogin
|
par_input_loss_pipe ### bug #36595: silent loss of input with --pipe and --sshlogin
|
||||||
par_input_loss_pipe 1 10000 48894
|
par_input_loss_pipe 1 10000 48894
|
||||||
|
@ -219,58 +217,58 @@ par_command_len_shellquote -Slo -j10 ' 10 7 1 1 41545
|
||||||
par_command_len_shellquote -Slo -j10 ' 10 8 0 0 0
|
par_command_len_shellquote -Slo -j10 ' 10 8 0 0 0
|
||||||
par_command_len_shellquote -Slo -j10 ' 10 9 0 0 0
|
par_command_len_shellquote -Slo -j10 ' 10 9 0 0 0
|
||||||
par_command_len_shellquote -Slo -j10 ' 10 10 0 0 0
|
par_command_len_shellquote -Slo -j10 ' 10 10 0 0 0
|
||||||
par_command_len_shellquote -Slo -j10 " 1 10 parallel: Error: Command line too long (295245 >= 131049) at input 0: "
|
par_command_len_shellquote -Slo -j10 " 1 10 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: "
|
||||||
par_command_len_shellquote -Slo -j10 " 2 9 parallel: Error: Command line too long (196830 >= 131049) at input 0: ""
|
par_command_len_shellquote -Slo -j10 " 2 9 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: ""
|
||||||
par_command_len_shellquote -Slo -j10 " 2 10 parallel: Error: Command line too long (590490 >= 131049) at input 0: ""
|
par_command_len_shellquote -Slo -j10 " 2 10 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: ""
|
||||||
par_command_len_shellquote -Slo -j10 " 3 9 parallel: Error: Command line too long (295245 >= 131049) at input 0: """
|
par_command_len_shellquote -Slo -j10 " 3 9 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: """
|
||||||
par_command_len_shellquote -Slo -j10 " 3 10 parallel: Error: Command line too long (885735 >= 131049) at input 0: """
|
par_command_len_shellquote -Slo -j10 " 3 10 parallel: Error: Command line too long (885735 >= 131xxx) at input 0: """
|
||||||
par_command_len_shellquote -Slo -j10 " 4 8 parallel: Error: Command line too long (131220 >= 131049) at input 0: """"
|
par_command_len_shellquote -Slo -j10 " 4 8 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: """"
|
||||||
par_command_len_shellquote -Slo -j10 " 4 9 parallel: Error: Command line too long (393660 >= 131049) at input 0: """"
|
par_command_len_shellquote -Slo -j10 " 4 9 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: """"
|
||||||
par_command_len_shellquote -Slo -j10 " 4 10 parallel: Error: Command line too long (1180980 >= 131049) at input 0: """"
|
par_command_len_shellquote -Slo -j10 " 4 10 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: """"
|
||||||
par_command_len_shellquote -Slo -j10 " 5 8 parallel: Error: Command line too long (164025 >= 131049) at input 0: """""
|
par_command_len_shellquote -Slo -j10 " 5 8 parallel: Error: Command line too long (164025 >= 131xxx) at input 0: """""
|
||||||
par_command_len_shellquote -Slo -j10 " 5 9 parallel: Error: Command line too long (492075 >= 131049) at input 0: """""
|
par_command_len_shellquote -Slo -j10 " 5 9 parallel: Error: Command line too long (492075 >= 131xxx) at input 0: """""
|
||||||
par_command_len_shellquote -Slo -j10 " 5 10 parallel: Error: Command line too long (1476225 >= 131049) at input 0: """""
|
par_command_len_shellquote -Slo -j10 " 5 10 parallel: Error: Command line too long (1476225 >= 131xxx) at input 0: """""
|
||||||
par_command_len_shellquote -Slo -j10 " 6 8 parallel: Error: Command line too long (196830 >= 131049) at input 0: """"""
|
par_command_len_shellquote -Slo -j10 " 6 8 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: """"""
|
||||||
par_command_len_shellquote -Slo -j10 " 6 9 parallel: Error: Command line too long (590490 >= 131049) at input 0: """"""
|
par_command_len_shellquote -Slo -j10 " 6 9 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: """"""
|
||||||
par_command_len_shellquote -Slo -j10 " 6 10 parallel: Error: Command line too long (1771470 >= 131049) at input 0: """"""
|
par_command_len_shellquote -Slo -j10 " 6 10 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: """"""
|
||||||
par_command_len_shellquote -Slo -j10 " 7 8 parallel: Error: Command line too long (229635 >= 131049) at input 0: """""""
|
par_command_len_shellquote -Slo -j10 " 7 8 parallel: Error: Command line too long (229635 >= 131xxx) at input 0: """""""
|
||||||
par_command_len_shellquote -Slo -j10 " 7 9 parallel: Error: Command line too long (688905 >= 131049) at input 0: """""""
|
par_command_len_shellquote -Slo -j10 " 7 9 parallel: Error: Command line too long (688905 >= 131xxx) at input 0: """""""
|
||||||
par_command_len_shellquote -Slo -j10 " 7 10 parallel: Error: Command line too long (2066715 >= 131049) at input 0: """""""
|
par_command_len_shellquote -Slo -j10 " 7 10 parallel: Error: Command line too long (2066715 >= 131xxx) at input 0: """""""
|
||||||
par_command_len_shellquote -Slo -j10 " 8 8 parallel: Error: Command line too long (262440 >= 131049) at input 0: """"""""
|
par_command_len_shellquote -Slo -j10 " 8 8 parallel: Error: Command line too long (262440 >= 131xxx) at input 0: """"""""
|
||||||
par_command_len_shellquote -Slo -j10 " 8 9 parallel: Error: Command line too long (787320 >= 131049) at input 0: """"""""
|
par_command_len_shellquote -Slo -j10 " 8 9 parallel: Error: Command line too long (787320 >= 131xxx) at input 0: """"""""
|
||||||
par_command_len_shellquote -Slo -j10 " 8 10 parallel: Error: Command line too long (2361960 >= 131049) at input 0: """"""""
|
par_command_len_shellquote -Slo -j10 " 8 10 parallel: Error: Command line too long (2361960 >= 131xxx) at input 0: """"""""
|
||||||
par_command_len_shellquote -Slo -j10 " 9 8 parallel: Error: Command line too long (295245 >= 131049) at input 0: """""""""
|
par_command_len_shellquote -Slo -j10 " 9 8 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: """""""""
|
||||||
par_command_len_shellquote -Slo -j10 " 9 9 parallel: Error: Command line too long (885735 >= 131049) at input 0: """""""""
|
par_command_len_shellquote -Slo -j10 " 9 9 parallel: Error: Command line too long (885735 >= 131xxx) at input 0: """""""""
|
||||||
par_command_len_shellquote -Slo -j10 " 9 10 parallel: Error: Command line too long (2657205 >= 131049) at input 0: """""""""
|
par_command_len_shellquote -Slo -j10 " 9 10 parallel: Error: Command line too long (2657205 >= 131xxx) at input 0: """""""""
|
||||||
par_command_len_shellquote -Slo -j10 " 10 8 parallel: Error: Command line too long (328050 >= 131049) at input 0: """"""""""
|
par_command_len_shellquote -Slo -j10 " 10 8 parallel: Error: Command line too long (328050 >= 131xxx) at input 0: """"""""""
|
||||||
par_command_len_shellquote -Slo -j10 " 10 9 parallel: Error: Command line too long (984150 >= 131049) at input 0: """"""""""
|
par_command_len_shellquote -Slo -j10 " 10 9 parallel: Error: Command line too long (984150 >= 131xxx) at input 0: """"""""""
|
||||||
par_command_len_shellquote -Slo -j10 " 10 10 parallel: Error: Command line too long (2952450 >= 131049) at input 0: """"""""""
|
par_command_len_shellquote -Slo -j10 " 10 10 parallel: Error: Command line too long (2952450 >= 131xxx) at input 0: """"""""""
|
||||||
par_command_len_shellquote -Slo -j10 ' 1 10 parallel: Error: Command line too long (295245 >= 131049) at input 0: '
|
par_command_len_shellquote -Slo -j10 ' 1 10 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: '
|
||||||
par_command_len_shellquote -Slo -j10 ' 2 9 parallel: Error: Command line too long (196830 >= 131049) at input 0: ''
|
par_command_len_shellquote -Slo -j10 ' 2 9 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: ''
|
||||||
par_command_len_shellquote -Slo -j10 ' 2 10 parallel: Error: Command line too long (590490 >= 131049) at input 0: ''
|
par_command_len_shellquote -Slo -j10 ' 2 10 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: ''
|
||||||
par_command_len_shellquote -Slo -j10 ' 3 9 parallel: Error: Command line too long (295245 >= 131049) at input 0: '''
|
par_command_len_shellquote -Slo -j10 ' 3 9 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: '''
|
||||||
par_command_len_shellquote -Slo -j10 ' 3 10 parallel: Error: Command line too long (885735 >= 131049) at input 0: '''
|
par_command_len_shellquote -Slo -j10 ' 3 10 parallel: Error: Command line too long (885735 >= 131xxx) at input 0: '''
|
||||||
par_command_len_shellquote -Slo -j10 ' 4 8 parallel: Error: Command line too long (131220 >= 131049) at input 0: ''''
|
par_command_len_shellquote -Slo -j10 ' 4 8 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: ''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 4 9 parallel: Error: Command line too long (393660 >= 131049) at input 0: ''''
|
par_command_len_shellquote -Slo -j10 ' 4 9 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: ''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 4 10 parallel: Error: Command line too long (1180980 >= 131049) at input 0: ''''
|
par_command_len_shellquote -Slo -j10 ' 4 10 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: ''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 5 8 parallel: Error: Command line too long (164025 >= 131049) at input 0: '''''
|
par_command_len_shellquote -Slo -j10 ' 5 8 parallel: Error: Command line too long (164025 >= 131xxx) at input 0: '''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 5 9 parallel: Error: Command line too long (492075 >= 131049) at input 0: '''''
|
par_command_len_shellquote -Slo -j10 ' 5 9 parallel: Error: Command line too long (492075 >= 131xxx) at input 0: '''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 5 10 parallel: Error: Command line too long (1476225 >= 131049) at input 0: '''''
|
par_command_len_shellquote -Slo -j10 ' 5 10 parallel: Error: Command line too long (1476225 >= 131xxx) at input 0: '''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 6 8 parallel: Error: Command line too long (196830 >= 131049) at input 0: ''''''
|
par_command_len_shellquote -Slo -j10 ' 6 8 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: ''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 6 9 parallel: Error: Command line too long (590490 >= 131049) at input 0: ''''''
|
par_command_len_shellquote -Slo -j10 ' 6 9 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: ''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 6 10 parallel: Error: Command line too long (1771470 >= 131049) at input 0: ''''''
|
par_command_len_shellquote -Slo -j10 ' 6 10 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: ''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 7 8 parallel: Error: Command line too long (229635 >= 131049) at input 0: '''''''
|
par_command_len_shellquote -Slo -j10 ' 7 8 parallel: Error: Command line too long (229635 >= 131xxx) at input 0: '''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 7 9 parallel: Error: Command line too long (688905 >= 131049) at input 0: '''''''
|
par_command_len_shellquote -Slo -j10 ' 7 9 parallel: Error: Command line too long (688905 >= 131xxx) at input 0: '''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 7 10 parallel: Error: Command line too long (2066715 >= 131049) at input 0: '''''''
|
par_command_len_shellquote -Slo -j10 ' 7 10 parallel: Error: Command line too long (2066715 >= 131xxx) at input 0: '''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 8 8 parallel: Error: Command line too long (262440 >= 131049) at input 0: ''''''''
|
par_command_len_shellquote -Slo -j10 ' 8 8 parallel: Error: Command line too long (262440 >= 131xxx) at input 0: ''''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 8 9 parallel: Error: Command line too long (787320 >= 131049) at input 0: ''''''''
|
par_command_len_shellquote -Slo -j10 ' 8 9 parallel: Error: Command line too long (787320 >= 131xxx) at input 0: ''''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 8 10 parallel: Error: Command line too long (2361960 >= 131049) at input 0: ''''''''
|
par_command_len_shellquote -Slo -j10 ' 8 10 parallel: Error: Command line too long (2361960 >= 131xxx) at input 0: ''''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 9 8 parallel: Error: Command line too long (295245 >= 131049) at input 0: '''''''''
|
par_command_len_shellquote -Slo -j10 ' 9 8 parallel: Error: Command line too long (295245 >= 131xxx) at input 0: '''''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 9 9 parallel: Error: Command line too long (885735 >= 131049) at input 0: '''''''''
|
par_command_len_shellquote -Slo -j10 ' 9 9 parallel: Error: Command line too long (885735 >= 131xxx) at input 0: '''''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 9 10 parallel: Error: Command line too long (2657205 >= 131049) at input 0: '''''''''
|
par_command_len_shellquote -Slo -j10 ' 9 10 parallel: Error: Command line too long (2657205 >= 131xxx) at input 0: '''''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 10 8 parallel: Error: Command line too long (328050 >= 131049) at input 0: ''''''''''
|
par_command_len_shellquote -Slo -j10 ' 10 8 parallel: Error: Command line too long (328050 >= 131xxx) at input 0: ''''''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 10 9 parallel: Error: Command line too long (984150 >= 131049) at input 0: ''''''''''
|
par_command_len_shellquote -Slo -j10 ' 10 9 parallel: Error: Command line too long (984150 >= 131xxx) at input 0: ''''''''''
|
||||||
par_command_len_shellquote -Slo -j10 ' 10 10 parallel: Error: Command line too long (2952450 >= 131049) at input 0: ''''''''''
|
par_command_len_shellquote -Slo -j10 ' 10 10 parallel: Error: Command line too long (2952450 >= 131xxx) at input 0: ''''''''''
|
||||||
par_command_len_shellquote " 1 1 1 2 6
|
par_command_len_shellquote " 1 1 1 2 6
|
||||||
par_command_len_shellquote " 1 2 1 2 12
|
par_command_len_shellquote " 1 2 1 2 12
|
||||||
par_command_len_shellquote " 1 3 1 2 30
|
par_command_len_shellquote " 1 3 1 2 30
|
||||||
|
@ -471,74 +469,74 @@ par_command_len_shellquote ' 10 7 0 0 0
|
||||||
par_command_len_shellquote ' 10 8 0 0 0
|
par_command_len_shellquote ' 10 8 0 0 0
|
||||||
par_command_len_shellquote ' 10 9 0 0 0
|
par_command_len_shellquote ' 10 9 0 0 0
|
||||||
par_command_len_shellquote ' 10 10 0 0 0
|
par_command_len_shellquote ' 10 10 0 0 0
|
||||||
par_command_len_shellquote " 1 9 parallel: Error: Command line too long (196830 >= 131049) at input 0: "
|
par_command_len_shellquote " 1 9 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: "
|
||||||
par_command_len_shellquote " 1 10 parallel: Error: Command line too long (590490 >= 131049) at input 0: "
|
par_command_len_shellquote " 1 10 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: "
|
||||||
par_command_len_shellquote " 2 8 parallel: Error: Command line too long (131220 >= 131049) at input 0: ""
|
par_command_len_shellquote " 2 8 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: ""
|
||||||
par_command_len_shellquote " 2 9 parallel: Error: Command line too long (393660 >= 131049) at input 0: ""
|
par_command_len_shellquote " 2 9 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: ""
|
||||||
par_command_len_shellquote " 2 10 parallel: Error: Command line too long (1180980 >= 131049) at input 0: ""
|
par_command_len_shellquote " 2 10 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: ""
|
||||||
par_command_len_shellquote " 3 8 parallel: Error: Command line too long (196830 >= 131049) at input 0: """
|
par_command_len_shellquote " 3 8 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: """
|
||||||
par_command_len_shellquote " 3 9 parallel: Error: Command line too long (590490 >= 131049) at input 0: """
|
par_command_len_shellquote " 3 9 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: """
|
||||||
par_command_len_shellquote " 3 10 parallel: Error: Command line too long (1771470 >= 131049) at input 0: """
|
par_command_len_shellquote " 3 10 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: """
|
||||||
par_command_len_shellquote " 4 8 parallel: Error: Command line too long (262440 >= 131049) at input 0: """"
|
par_command_len_shellquote " 4 8 parallel: Error: Command line too long (262440 >= 131xxx) at input 0: """"
|
||||||
par_command_len_shellquote " 4 9 parallel: Error: Command line too long (787320 >= 131049) at input 0: """"
|
par_command_len_shellquote " 4 9 parallel: Error: Command line too long (787320 >= 131xxx) at input 0: """"
|
||||||
par_command_len_shellquote " 4 10 parallel: Error: Command line too long (2361960 >= 131049) at input 0: """"
|
par_command_len_shellquote " 4 10 parallel: Error: Command line too long (2361960 >= 131xxx) at input 0: """"
|
||||||
par_command_len_shellquote " 5 8 parallel: Error: Command line too long (328050 >= 131049) at input 0: """""
|
par_command_len_shellquote " 5 8 parallel: Error: Command line too long (328050 >= 131xxx) at input 0: """""
|
||||||
par_command_len_shellquote " 5 9 parallel: Error: Command line too long (984150 >= 131049) at input 0: """""
|
par_command_len_shellquote " 5 9 parallel: Error: Command line too long (984150 >= 131xxx) at input 0: """""
|
||||||
par_command_len_shellquote " 5 10 parallel: Error: Command line too long (2952450 >= 131049) at input 0: """""
|
par_command_len_shellquote " 5 10 parallel: Error: Command line too long (2952450 >= 131xxx) at input 0: """""
|
||||||
par_command_len_shellquote " 6 7 parallel: Error: Command line too long (131220 >= 131049) at input 0: """"""
|
par_command_len_shellquote " 6 7 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: """"""
|
||||||
par_command_len_shellquote " 6 8 parallel: Error: Command line too long (393660 >= 131049) at input 0: """"""
|
par_command_len_shellquote " 6 8 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: """"""
|
||||||
par_command_len_shellquote " 6 9 parallel: Error: Command line too long (1180980 >= 131049) at input 0: """"""
|
par_command_len_shellquote " 6 9 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: """"""
|
||||||
par_command_len_shellquote " 6 10 parallel: Error: Command line too long (3542940 >= 131049) at input 0: """"""
|
par_command_len_shellquote " 6 10 parallel: Error: Command line too long (3542940 >= 131xxx) at input 0: """"""
|
||||||
par_command_len_shellquote " 7 7 parallel: Error: Command line too long (153090 >= 131049) at input 0: """""""
|
par_command_len_shellquote " 7 7 parallel: Error: Command line too long (153090 >= 131xxx) at input 0: """""""
|
||||||
par_command_len_shellquote " 7 8 parallel: Error: Command line too long (459270 >= 131049) at input 0: """""""
|
par_command_len_shellquote " 7 8 parallel: Error: Command line too long (459270 >= 131xxx) at input 0: """""""
|
||||||
par_command_len_shellquote " 7 9 parallel: Error: Command line too long (1377810 >= 131049) at input 0: """""""
|
par_command_len_shellquote " 7 9 parallel: Error: Command line too long (1377810 >= 131xxx) at input 0: """""""
|
||||||
par_command_len_shellquote " 7 10 parallel: Error: Command line too long (4133430 >= 131049) at input 0: """""""
|
par_command_len_shellquote " 7 10 parallel: Error: Command line too long (4133430 >= 131xxx) at input 0: """""""
|
||||||
par_command_len_shellquote " 8 7 parallel: Error: Command line too long (174960 >= 131049) at input 0: """"""""
|
par_command_len_shellquote " 8 7 parallel: Error: Command line too long (174960 >= 131xxx) at input 0: """"""""
|
||||||
par_command_len_shellquote " 8 8 parallel: Error: Command line too long (524880 >= 131049) at input 0: """"""""
|
par_command_len_shellquote " 8 8 parallel: Error: Command line too long (524880 >= 131xxx) at input 0: """"""""
|
||||||
par_command_len_shellquote " 8 9 parallel: Error: Command line too long (1574640 >= 131049) at input 0: """"""""
|
par_command_len_shellquote " 8 9 parallel: Error: Command line too long (1574640 >= 131xxx) at input 0: """"""""
|
||||||
par_command_len_shellquote " 8 10 parallel: Error: Command line too long (4723920 >= 131049) at input 0: """"""""
|
par_command_len_shellquote " 8 10 parallel: Error: Command line too long (4723920 >= 131xxx) at input 0: """"""""
|
||||||
par_command_len_shellquote " 9 7 parallel: Error: Command line too long (196830 >= 131049) at input 0: """""""""
|
par_command_len_shellquote " 9 7 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: """""""""
|
||||||
par_command_len_shellquote " 9 8 parallel: Error: Command line too long (590490 >= 131049) at input 0: """""""""
|
par_command_len_shellquote " 9 8 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: """""""""
|
||||||
par_command_len_shellquote " 9 9 parallel: Error: Command line too long (1771470 >= 131049) at input 0: """""""""
|
par_command_len_shellquote " 9 9 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: """""""""
|
||||||
par_command_len_shellquote " 9 10 parallel: Error: Command line too long (5314410 >= 131049) at input 0: """""""""
|
par_command_len_shellquote " 9 10 parallel: Error: Command line too long (5314410 >= 131xxx) at input 0: """""""""
|
||||||
par_command_len_shellquote " 10 7 parallel: Error: Command line too long (218700 >= 131049) at input 0: """"""""""
|
par_command_len_shellquote " 10 7 parallel: Error: Command line too long (218700 >= 131xxx) at input 0: """"""""""
|
||||||
par_command_len_shellquote " 10 8 parallel: Error: Command line too long (656100 >= 131049) at input 0: """"""""""
|
par_command_len_shellquote " 10 8 parallel: Error: Command line too long (656100 >= 131xxx) at input 0: """"""""""
|
||||||
par_command_len_shellquote " 10 9 parallel: Error: Command line too long (1968300 >= 131049) at input 0: """"""""""
|
par_command_len_shellquote " 10 9 parallel: Error: Command line too long (1968300 >= 131xxx) at input 0: """"""""""
|
||||||
par_command_len_shellquote " 10 10 parallel: Error: Command line too long (5904900 >= 131049) at input 0: """"""""""
|
par_command_len_shellquote " 10 10 parallel: Error: Command line too long (5904900 >= 131xxx) at input 0: """"""""""
|
||||||
par_command_len_shellquote ' 1 9 parallel: Error: Command line too long (196830 >= 131049) at input 0: '
|
par_command_len_shellquote ' 1 9 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: '
|
||||||
par_command_len_shellquote ' 1 10 parallel: Error: Command line too long (590490 >= 131049) at input 0: '
|
par_command_len_shellquote ' 1 10 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: '
|
||||||
par_command_len_shellquote ' 2 8 parallel: Error: Command line too long (131220 >= 131049) at input 0: ''
|
par_command_len_shellquote ' 2 8 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: ''
|
||||||
par_command_len_shellquote ' 2 9 parallel: Error: Command line too long (393660 >= 131049) at input 0: ''
|
par_command_len_shellquote ' 2 9 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: ''
|
||||||
par_command_len_shellquote ' 2 10 parallel: Error: Command line too long (1180980 >= 131049) at input 0: ''
|
par_command_len_shellquote ' 2 10 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: ''
|
||||||
par_command_len_shellquote ' 3 8 parallel: Error: Command line too long (196830 >= 131049) at input 0: '''
|
par_command_len_shellquote ' 3 8 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: '''
|
||||||
par_command_len_shellquote ' 3 9 parallel: Error: Command line too long (590490 >= 131049) at input 0: '''
|
par_command_len_shellquote ' 3 9 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: '''
|
||||||
par_command_len_shellquote ' 3 10 parallel: Error: Command line too long (1771470 >= 131049) at input 0: '''
|
par_command_len_shellquote ' 3 10 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: '''
|
||||||
par_command_len_shellquote ' 4 8 parallel: Error: Command line too long (262440 >= 131049) at input 0: ''''
|
par_command_len_shellquote ' 4 8 parallel: Error: Command line too long (262440 >= 131xxx) at input 0: ''''
|
||||||
par_command_len_shellquote ' 4 9 parallel: Error: Command line too long (787320 >= 131049) at input 0: ''''
|
par_command_len_shellquote ' 4 9 parallel: Error: Command line too long (787320 >= 131xxx) at input 0: ''''
|
||||||
par_command_len_shellquote ' 4 10 parallel: Error: Command line too long (2361960 >= 131049) at input 0: ''''
|
par_command_len_shellquote ' 4 10 parallel: Error: Command line too long (2361960 >= 131xxx) at input 0: ''''
|
||||||
par_command_len_shellquote ' 5 8 parallel: Error: Command line too long (328050 >= 131049) at input 0: '''''
|
par_command_len_shellquote ' 5 8 parallel: Error: Command line too long (328050 >= 131xxx) at input 0: '''''
|
||||||
par_command_len_shellquote ' 5 9 parallel: Error: Command line too long (984150 >= 131049) at input 0: '''''
|
par_command_len_shellquote ' 5 9 parallel: Error: Command line too long (984150 >= 131xxx) at input 0: '''''
|
||||||
par_command_len_shellquote ' 5 10 parallel: Error: Command line too long (2952450 >= 131049) at input 0: '''''
|
par_command_len_shellquote ' 5 10 parallel: Error: Command line too long (2952450 >= 131xxx) at input 0: '''''
|
||||||
par_command_len_shellquote ' 6 7 parallel: Error: Command line too long (131220 >= 131049) at input 0: ''''''
|
par_command_len_shellquote ' 6 7 parallel: Error: Command line too long (131xxx >= 131xxx) at input 0: ''''''
|
||||||
par_command_len_shellquote ' 6 8 parallel: Error: Command line too long (393660 >= 131049) at input 0: ''''''
|
par_command_len_shellquote ' 6 8 parallel: Error: Command line too long (393660 >= 131xxx) at input 0: ''''''
|
||||||
par_command_len_shellquote ' 6 9 parallel: Error: Command line too long (1180980 >= 131049) at input 0: ''''''
|
par_command_len_shellquote ' 6 9 parallel: Error: Command line too long (1180980 >= 131xxx) at input 0: ''''''
|
||||||
par_command_len_shellquote ' 6 10 parallel: Error: Command line too long (3542940 >= 131049) at input 0: ''''''
|
par_command_len_shellquote ' 6 10 parallel: Error: Command line too long (3542940 >= 131xxx) at input 0: ''''''
|
||||||
par_command_len_shellquote ' 7 7 parallel: Error: Command line too long (153090 >= 131049) at input 0: '''''''
|
par_command_len_shellquote ' 7 7 parallel: Error: Command line too long (153090 >= 131xxx) at input 0: '''''''
|
||||||
par_command_len_shellquote ' 7 8 parallel: Error: Command line too long (459270 >= 131049) at input 0: '''''''
|
par_command_len_shellquote ' 7 8 parallel: Error: Command line too long (459270 >= 131xxx) at input 0: '''''''
|
||||||
par_command_len_shellquote ' 7 9 parallel: Error: Command line too long (1377810 >= 131049) at input 0: '''''''
|
par_command_len_shellquote ' 7 9 parallel: Error: Command line too long (1377810 >= 131xxx) at input 0: '''''''
|
||||||
par_command_len_shellquote ' 7 10 parallel: Error: Command line too long (4133430 >= 131049) at input 0: '''''''
|
par_command_len_shellquote ' 7 10 parallel: Error: Command line too long (4133430 >= 131xxx) at input 0: '''''''
|
||||||
par_command_len_shellquote ' 8 7 parallel: Error: Command line too long (174960 >= 131049) at input 0: ''''''''
|
par_command_len_shellquote ' 8 7 parallel: Error: Command line too long (174960 >= 131xxx) at input 0: ''''''''
|
||||||
par_command_len_shellquote ' 8 8 parallel: Error: Command line too long (524880 >= 131049) at input 0: ''''''''
|
par_command_len_shellquote ' 8 8 parallel: Error: Command line too long (524880 >= 131xxx) at input 0: ''''''''
|
||||||
par_command_len_shellquote ' 8 9 parallel: Error: Command line too long (1574640 >= 131049) at input 0: ''''''''
|
par_command_len_shellquote ' 8 9 parallel: Error: Command line too long (1574640 >= 131xxx) at input 0: ''''''''
|
||||||
par_command_len_shellquote ' 8 10 parallel: Error: Command line too long (4723920 >= 131049) at input 0: ''''''''
|
par_command_len_shellquote ' 8 10 parallel: Error: Command line too long (4723920 >= 131xxx) at input 0: ''''''''
|
||||||
par_command_len_shellquote ' 9 7 parallel: Error: Command line too long (196830 >= 131049) at input 0: '''''''''
|
par_command_len_shellquote ' 9 7 parallel: Error: Command line too long (196830 >= 131xxx) at input 0: '''''''''
|
||||||
par_command_len_shellquote ' 9 8 parallel: Error: Command line too long (590490 >= 131049) at input 0: '''''''''
|
par_command_len_shellquote ' 9 8 parallel: Error: Command line too long (590490 >= 131xxx) at input 0: '''''''''
|
||||||
par_command_len_shellquote ' 9 9 parallel: Error: Command line too long (1771470 >= 131049) at input 0: '''''''''
|
par_command_len_shellquote ' 9 9 parallel: Error: Command line too long (1771470 >= 131xxx) at input 0: '''''''''
|
||||||
par_command_len_shellquote ' 9 10 parallel: Error: Command line too long (5314410 >= 131049) at input 0: '''''''''
|
par_command_len_shellquote ' 9 10 parallel: Error: Command line too long (5314410 >= 131xxx) at input 0: '''''''''
|
||||||
par_command_len_shellquote ' 10 7 parallel: Error: Command line too long (218700 >= 131049) at input 0: ''''''''''
|
par_command_len_shellquote ' 10 7 parallel: Error: Command line too long (218700 >= 131xxx) at input 0: ''''''''''
|
||||||
par_command_len_shellquote ' 10 8 parallel: Error: Command line too long (656100 >= 131049) at input 0: ''''''''''
|
par_command_len_shellquote ' 10 8 parallel: Error: Command line too long (656100 >= 131xxx) at input 0: ''''''''''
|
||||||
par_command_len_shellquote ' 10 9 parallel: Error: Command line too long (1968300 >= 131049) at input 0: ''''''''''
|
par_command_len_shellquote ' 10 9 parallel: Error: Command line too long (1968300 >= 131xxx) at input 0: ''''''''''
|
||||||
par_command_len_shellquote ' 10 10 parallel: Error: Command line too long (5904900 >= 131049) at input 0: ''''''''''
|
par_command_len_shellquote ' 10 10 parallel: Error: Command line too long (5904900 >= 131xxx) at input 0: ''''''''''
|
||||||
par_basefile_cleanup ### bug #46520: --basefile cleans up without --cleanup
|
par_basefile_cleanup ### bug #46520: --basefile cleans up without --cleanup
|
||||||
par_basefile_cleanup bug_46520
|
par_basefile_cleanup bug_46520
|
||||||
par_basefile_cleanup bug_46520
|
par_basefile_cleanup bug_46520
|
||||||
|
|
|
@ -391,15 +391,6 @@ echo "### BUG: The length for -X is not close to max (131072)"
|
||||||
### BUG: The length for -X is not close to max (131072)
|
### BUG: The length for -X is not close to max (131072)
|
||||||
seq 1 4000 | nice parallel -k -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc
|
seq 1 4000 | nice parallel -k -X echo {.} aa {}{.} {}{}d{} {}dd{}d{.} |head -n 1 |wc
|
||||||
1 12817 131016
|
1 12817 131016
|
||||||
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
|
|
||||||
|
|
||||||
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
|
|
||||||
press CTRL-D or CTRL-C
|
|
||||||
echo '### Test -N'
|
echo '### Test -N'
|
||||||
### Test -N
|
### Test -N
|
||||||
seq 1 5 | $NICEPAR -kN3 echo {1} {2} {3}
|
seq 1 5 | $NICEPAR -kN3 echo {1} {2} {3}
|
||||||
|
|
|
@ -1073,7 +1073,7 @@ tcsh: Unsupported
|
||||||
To install in all shells run:
|
To install in all shells run:
|
||||||
parset --install
|
parset --install
|
||||||
For details: see man parset
|
For details: see man parset
|
||||||
parallel --sqlandworker csv:////%2Ftmp%2Flog.csv \
|
parallel --sqlandworker csv:///%2Ftmp/log.csv \
|
||||||
seq ::: 10 ::: 12 13 14
|
seq ::: 10 ::: 12 13 14
|
||||||
cat /tmp/log.csv
|
cat /tmp/log.csv
|
||||||
99
|
99
|
||||||
|
@ -1087,7 +1087,7 @@ Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,_Signal,Command,V1,V2,Stdout,
|
||||||
3,:,000000000.000,0.000,0,15,0,0,"seq 10 14",10,14,"10
|
3,:,000000000.000,0.000,0,15,0,0,"seq 10 14",10,14,"10
|
||||||
99
|
99
|
||||||
",
|
",
|
||||||
parallel --results outdir --sqlandworker csv:////%2Ftmp%2Flog2.csv \
|
parallel --results outdir --sqlandworker csv:///%2Ftmp/log2.csv \
|
||||||
seq ::: 10 ::: 12 13 14
|
seq ::: 10 ::: 12 13 14
|
||||||
cat /tmp/log2.csv
|
cat /tmp/log2.csv
|
||||||
99
|
99
|
||||||
|
@ -1098,9 +1098,9 @@ Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,_Signal,Command,V1,V2,Stdout,
|
||||||
vendor://[[user][:password]@][host][:port]/[database[/table]
|
vendor://[[user][:password]@][host][:port]/[database[/table]
|
||||||
/bin/bash: vendor://[[user][:password]@][host][:port]/[database[/table]: No such file or directory
|
/bin/bash: vendor://[[user][:password]@][host][:port]/[database[/table]: No such file or directory
|
||||||
sqlite3:///%2Ftmp%2Fmydatabase/mytable
|
sqlite3:///%2Ftmp%2Fmydatabase/mytable
|
||||||
csv:////%2Ftmp%2Flog.csv
|
csv:///%2Ftmp/log.csv
|
||||||
/bin/bash: sqlite3:///%2Ftmp%2Fmydatabase/mytable: No such file or directory
|
/bin/bash: sqlite3:///%2Ftmp%2Fmydatabase/mytable: No such file or directory
|
||||||
/bin/bash: line 1: csv:////%2Ftmp%2Flog.csv: No such file or directory
|
/bin/bash: line 1: csv:///%2Ftmp/log.csv: No such file or directory
|
||||||
DBURL=sqlite3:///%2Ftmp%2Fmydatabase
|
DBURL=sqlite3:///%2Ftmp%2Fmydatabase
|
||||||
DBURLTABLE=$DBURL/mytable
|
DBURLTABLE=$DBURL/mytable
|
||||||
parallel --sqlandworker $DBURLTABLE echo ::: foo bar ::: baz quuz
|
parallel --sqlandworker $DBURLTABLE echo ::: foo bar ::: baz quuz
|
||||||
|
|
Loading…
Reference in a new issue