mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-24 23:17:55 +00:00
Released as 20191122 ('QuantumSupremacy')
This commit is contained in:
parent
7bab1b45bc
commit
21fb3b6e60
14
NEWS
14
NEWS
|
@ -1,3 +1,17 @@
|
|||
20191122
|
||||
|
||||
* GNU Parallel was presented at Driving IT. Slides:
|
||||
cloud.prosa.dk/s/drivingit
|
||||
|
||||
* Restarting supervisord processes in parallel
|
||||
https://blog.naderman.de/2019/11/14/restarting-supervisord-processes-in-parallel/
|
||||
|
||||
* Using GNU Parallel to Create Archives Faster
|
||||
https://www.reddit.com/r/DataHoarder/comments/dsgmhc/parallel_archiving_techniques/
|
||||
|
||||
* Bug fixes and man page updates.
|
||||
|
||||
|
||||
20191022
|
||||
|
||||
* --tee will use --output-error=warn-nopipe if supported by tee.
|
||||
|
|
35
README
35
README
|
@ -24,6 +24,9 @@ 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.
|
||||
|
||||
See the cheat sheet for examples that cover most of the daily usage:
|
||||
www.gnu.org/s/parallel/parallel_cheat.pdf
|
||||
|
||||
|
||||
= 10 seconds installation =
|
||||
|
||||
|
@ -54,11 +57,11 @@ document.
|
|||
|
||||
Full installation of GNU Parallel is as simple as:
|
||||
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20191022.tar.bz2
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20191022.tar.bz2.sig
|
||||
gpg parallel-20191022.tar.bz2.sig
|
||||
bzip2 -dc parallel-20191022.tar.bz2 | tar xvf -
|
||||
cd parallel-20191022
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20191122.tar.bz2
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20191122.tar.bz2.sig
|
||||
gpg parallel-20191122.tar.bz2.sig
|
||||
bzip2 -dc parallel-20191122.tar.bz2 | tar xvf -
|
||||
cd parallel-20191122
|
||||
./configure && make && sudo make install
|
||||
|
||||
|
||||
|
@ -67,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
|
||||
~/bin and ~/share:
|
||||
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20191022.tar.bz2
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20191022.tar.bz2.sig
|
||||
gpg parallel-20191022.tar.bz2.sig
|
||||
bzip2 -dc parallel-20191022.tar.bz2 | tar xvf -
|
||||
cd parallel-20191022
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20191122.tar.bz2
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20191122.tar.bz2.sig
|
||||
gpg parallel-20191122.tar.bz2.sig
|
||||
bzip2 -dc parallel-20191122.tar.bz2 | tar xvf -
|
||||
cd parallel-20191122
|
||||
./configure --prefix=$HOME && make && make install
|
||||
|
||||
Or if your system lacks 'make' you can simply copy src/parallel
|
||||
|
@ -89,6 +92,18 @@ system is old or Microsoft Windows):
|
|||
mv parallel sem dir-in-your-$PATH/bin/
|
||||
|
||||
|
||||
= Installation on compute servers =
|
||||
|
||||
If you are developing your script to run on a remote server, that does
|
||||
not have GNU Parallel installed, but you have it installed on you
|
||||
development machine, the use can use `parallel --embed`.
|
||||
|
||||
parallel --embed > newscript.sh
|
||||
|
||||
Just edit the last lines of newscript.sh and copy it to the compute
|
||||
server.
|
||||
|
||||
|
||||
= Test the installation =
|
||||
|
||||
After this you should be able to do:
|
||||
|
|
20
configure
vendored
20
configure
vendored
|
@ -1,6 +1,6 @@
|
|||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for parallel 20191022.
|
||||
# Generated by GNU Autoconf 2.69 for parallel 20191122.
|
||||
#
|
||||
# Report bugs to <bug-parallel@gnu.org>.
|
||||
#
|
||||
|
@ -579,8 +579,8 @@ MAKEFLAGS=
|
|||
# Identity of this package.
|
||||
PACKAGE_NAME='parallel'
|
||||
PACKAGE_TARNAME='parallel'
|
||||
PACKAGE_VERSION='20191022'
|
||||
PACKAGE_STRING='parallel 20191022'
|
||||
PACKAGE_VERSION='20191122'
|
||||
PACKAGE_STRING='parallel 20191122'
|
||||
PACKAGE_BUGREPORT='bug-parallel@gnu.org'
|
||||
PACKAGE_URL=''
|
||||
|
||||
|
@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then
|
|||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures parallel 20191022 to adapt to many kinds of systems.
|
||||
\`configure' configures parallel 20191122 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
|
@ -1281,7 +1281,7 @@ fi
|
|||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of parallel 20191022:";;
|
||||
short | recursive ) echo "Configuration of parallel 20191122:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
|
@ -1357,7 +1357,7 @@ fi
|
|||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
parallel configure 20191022
|
||||
parallel configure 20191122
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
|
@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF
|
|||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by parallel $as_me 20191022, which was
|
||||
It was created by parallel $as_me 20191122, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
|
@ -2237,7 +2237,7 @@ fi
|
|||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='parallel'
|
||||
VERSION='20191022'
|
||||
VERSION='20191122'
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
|
@ -2880,7 +2880,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by parallel $as_me 20191022, which was
|
||||
This file was extended by parallel $as_me 20191122, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
|
@ -2942,7 +2942,7 @@ _ACEOF
|
|||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
parallel config.status 20191022
|
||||
parallel config.status 20191122
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
AC_INIT([parallel], [20191022], [bug-parallel@gnu.org])
|
||||
AC_INIT([parallel], [20191122], [bug-parallel@gnu.org])
|
||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_FILES([
|
||||
|
|
|
@ -12,9 +12,6 @@ GNU parallel has helped me kill a Hadoop cluster before.
|
|||
GNU Parallel is awesome
|
||||
-- Gaurav Jain @gauravjain49@twitter
|
||||
|
||||
[L]earning about parallel was amazing for me, it gives us many beautiful solutions.
|
||||
-- SergioAraujo@stackoverflow
|
||||
|
||||
With multicore systems everywhere GNU Parallel is a must have tool.
|
||||
-- Neil H. Watson @neil_h_watson@twitter
|
||||
|
||||
|
@ -58,6 +55,10 @@ GNU parallel has helped me kill a Hadoop cluster before.
|
|||
|
||||
|
||||
=== Used ===
|
||||
[L]earning about parallel was amazing for me, it gives us many beautiful solutions.
|
||||
-- SergioAraujo@stackoverflow
|
||||
|
||||
|
||||
I've said it before: The command line program GNU Parallel is a godsend.
|
||||
-- Jo Chr. Oterhals @oterhals
|
||||
|
||||
|
|
|
@ -209,9 +209,9 @@ from:tange@gnu.org
|
|||
to:parallel@gnu.org, bug-parallel@gnu.org
|
||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||
|
||||
Subject: GNU Parallel 20191122 ('Berlin/Morales') released <<[stable]>>
|
||||
Subject: GNU Parallel 20191122 ('Quantum Supremacy') released <<[stable]>>
|
||||
|
||||
GNU Parallel 20191122 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
||||
GNU Parallel 20191122 ('Quantum Supremacy') <<[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.>>
|
||||
|
||||
|
@ -224,11 +224,11 @@ Quote of the month:
|
|||
|
||||
New in this release:
|
||||
|
||||
* GNU Parallel was presented at Driving IT. Slides:
|
||||
* GNU Parallel was presented at Driving IT. Slides: cloud.prosa.dk/s/drivingit
|
||||
|
||||
https://blog.naderman.de/2019/11/14/restarting-supervisord-processes-in-parallel/
|
||||
* Restarting supervisord processes in parallel https://blog.naderman.de/2019/11/14/restarting-supervisord-processes-in-parallel/
|
||||
|
||||
* https://www.reddit.com/r/DataHoarder/comments/dsgmhc/parallel_archiving_techniques/
|
||||
* Using GNU Parallel to Create Archives Faster https://www.reddit.com/r/DataHoarder/comments/dsgmhc/parallel_archiving_techniques/
|
||||
|
||||
* Bug fixes and man page updates.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<directory name="parallel" rev="244" srcmd5="0bc3563ade8042405b36915c03015124" vrev="1">
|
||||
<entry md5="457471b4306f1a2b356691444247a717" mtime="1571685322" name="parallel-20191022.tar.bz2" size="2080451" />
|
||||
<entry md5="c8e6f66a12226dfda64fb14b8cdc7159" mtime="1571685322" name="parallel.spec" size="4751" />
|
||||
<entry md5="04f57f67c60bc39a33adbe69b11cb257" mtime="1571685322" name="parallel_20191022.dsc" size="556" />
|
||||
<entry md5="5a61e4a88a27b355ce12f58023d8a26a" mtime="1571685323" name="parallel_20191022.tar.gz" size="2257704" />
|
||||
<directory name="parallel" rev="249" srcmd5="55f61ae48d885e5fee7483aa06d5e94e" vrev="5">
|
||||
<entry md5="d1b5fdb9a5a1e8c036a075145fe99b9e" mtime="1574501414" name="parallel-20191122.tar.bz2" size="2046514" />
|
||||
<entry md5="e8aa083aa14c9c749148482c1c111403" mtime="1574501420" name="parallel.spec" size="4701" />
|
||||
<entry md5="8a94dce54ceb80ea0349ce06f69531a8" mtime="1574473244" name="parallel_20191122.dsc" size="556" />
|
||||
<entry md5="8032b789c1faf4b70425aaaaf7db5995" mtime="1574473244" name="parallel_20191122.tar.gz" size="2234606" />
|
||||
</directory>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Summary: Shell tool for executing jobs in parallel
|
||||
Name: parallel
|
||||
Version: 20191022
|
||||
Version: 20191122
|
||||
Release: 1.3
|
||||
License: GPL-3.0-or-later
|
||||
Group: Productivity/File utilities
|
||||
|
@ -88,7 +88,7 @@ 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.pdf
|
||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_cheat_bw.pdf
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
@ -98,7 +98,7 @@ rm -rf $RPM_BUILD_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.pdf
|
||||
%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
|
||||
|
@ -111,6 +111,4 @@ rm -rf $RPM_BUILD_ROOT
|
|||
- 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.
|
||||
* Sat Aug 08 2010 Markus Ammer
|
||||
- Initial package setup.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Summary: Shell tool for executing jobs in parallel
|
||||
Name: parallel
|
||||
Version: 20191022
|
||||
Version: 20191122
|
||||
Release: 1.3
|
||||
License: GPL-3.0-or-later
|
||||
Group: Productivity/File utilities
|
||||
|
@ -88,7 +88,7 @@ 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.pdf
|
||||
rm $RPM_BUILD_ROOT%{_docdir}/parallel_cheat_bw.pdf
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
@ -98,7 +98,7 @@ rm -rf $RPM_BUILD_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.pdf
|
||||
%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
|
||||
|
@ -111,6 +111,4 @@ rm -rf $RPM_BUILD_ROOT
|
|||
- 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.
|
||||
* Sat Aug 08 2010 Markus Ammer
|
||||
- Initial package setup.
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ doc_DATA = parallel.html env_parallel.html sem.html sql.html \
|
|||
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.pdf
|
||||
parallel_cheat_bw.pdf
|
||||
endif
|
||||
|
||||
# Build documentation file if the tool to build exists.
|
||||
|
@ -258,9 +258,9 @@ parset.pdf: parset.pod
|
|||
pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \
|
||||
|| echo "Warning: pod2pdf not found. Using old parset.pdf"
|
||||
|
||||
parallel_cheat.pdf: parallel_cheat.fodt
|
||||
libreoffice --headless --convert-to pdf parallel_cheat.fodt \
|
||||
|| echo "Warning: libreoffice failed. Using old parallel_cheat.pdf"
|
||||
parallel_cheat_bw.pdf: parallel_cheat_bw.fodt
|
||||
libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \
|
||||
|| echo "Warning: libreoffice failed. Using old parallel_cheat_bw.pdf"
|
||||
|
||||
sem: parallel
|
||||
ln -fs parallel sem
|
||||
|
@ -279,7 +279,7 @@ DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
|||
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.pdf
|
||||
parallel_cheat_bw.pdf
|
||||
|
||||
EXTRA_DIST = parallel sem sql niceload parcat parset env_parallel \
|
||||
env_parallel.ash env_parallel.bash env_parallel.csh \
|
||||
|
@ -288,4 +288,4 @@ EXTRA_DIST = parallel sem sql niceload parcat parset env_parallel \
|
|||
env_parallel.tcsh env_parallel.zsh parcat.pod parset.pod \
|
||||
sem.pod parallel.pod env_parallel.pod niceload.pod \
|
||||
parallel_tutorial.pod parallel_book.pod parallel_design.pod \
|
||||
parallel_alternatives.pod parallel_cheat.fodt $(DISTCLEANFILES)
|
||||
parallel_alternatives.pod parallel_cheat_bw.fodt $(DISTCLEANFILES)
|
||||
|
|
|
@ -250,7 +250,7 @@ bin_SCRIPTS = parallel sql niceload parcat parset env_parallel \
|
|||
@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_alternatives.pdf parcat.pdf parset.pdf \
|
||||
@DOCUMENTATION_TRUE@ parallel_cheat.pdf
|
||||
@DOCUMENTATION_TRUE@ parallel_cheat_bw.pdf
|
||||
|
||||
DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
||||
parallel_tutorial.7 parallel_book.7 parallel_design.7 \
|
||||
|
@ -266,7 +266,7 @@ DISTCLEANFILES = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \
|
|||
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.pdf
|
||||
parallel_cheat_bw.pdf
|
||||
|
||||
EXTRA_DIST = parallel sem sql niceload parcat parset env_parallel \
|
||||
env_parallel.ash env_parallel.bash env_parallel.csh \
|
||||
|
@ -275,7 +275,7 @@ EXTRA_DIST = parallel sem sql niceload parcat parset env_parallel \
|
|||
env_parallel.tcsh env_parallel.zsh parcat.pod parset.pod \
|
||||
sem.pod parallel.pod env_parallel.pod niceload.pod \
|
||||
parallel_tutorial.pod parallel_book.pod parallel_design.pod \
|
||||
parallel_alternatives.pod parallel_cheat.fodt $(DISTCLEANFILES)
|
||||
parallel_alternatives.pod parallel_cheat_bw.fodt $(DISTCLEANFILES)
|
||||
|
||||
all: all-am
|
||||
|
||||
|
@ -850,9 +850,9 @@ parset.pdf: parset.pod
|
|||
pod2pdf --output-file $(srcdir)/parset.pdf $(srcdir)/parset.pod --title "GNU parset" \
|
||||
|| echo "Warning: pod2pdf not found. Using old parset.pdf"
|
||||
|
||||
parallel_cheat.pdf: parallel_cheat.fodt
|
||||
libreoffice --headless --convert-to pdf parallel_cheat.fodt \
|
||||
|| echo "Warning: libreoffice failed. Using old parallel_cheat.pdf"
|
||||
parallel_cheat_bw.pdf: parallel_cheat_bw.fodt
|
||||
libreoffice --headless --convert-to pdf parallel_cheat_bw.fodt \
|
||||
|| echo "Warning: libreoffice failed. Using old parallel_cheat_bw.pdf"
|
||||
|
||||
sem: parallel
|
||||
ln -fs parallel sem
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
use strict;
|
||||
use Getopt::Long;
|
||||
$Global::progname="niceload";
|
||||
$Global::version = 20191023;
|
||||
$Global::version = 20191122;
|
||||
Getopt::Long::Configure("bundling","require_order");
|
||||
get_options_from_array(\@ARGV) || die_usage();
|
||||
if($opt::version) {
|
||||
|
|
|
@ -2071,7 +2071,7 @@ sub check_invalid_option_combinations() {
|
|||
|
||||
sub init_globals() {
|
||||
# Defaults:
|
||||
$Global::version = 20191023;
|
||||
$Global::version = 20191122;
|
||||
$Global::progname = 'parallel';
|
||||
$::name = "GNU Parallel";
|
||||
$Global::infinity = 2**31;
|
||||
|
|
2
src/sql
2
src/sql
|
@ -574,7 +574,7 @@ $Global::Initfile && unlink $Global::Initfile;
|
|||
exit ($err);
|
||||
|
||||
sub parse_options {
|
||||
$Global::version = 20191023;
|
||||
$Global::version = 20191122;
|
||||
$Global::progname = 'sql';
|
||||
|
||||
# This must be done first as this may exec myself
|
||||
|
|
17
testsuite/tests-to-run/parallel-android.sh
Executable file
17
testsuite/tests-to-run/parallel-android.sh
Executable file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
|
||||
unset TIMEOUT
|
||||
. `which env_parallel.bash`
|
||||
env_parallel --session
|
||||
|
||||
host=$(parallel -j0 --halt now,success=1 ssh {} echo {} ::: android1 android2 2>/dev/null)
|
||||
echo $host >&2
|
||||
|
||||
doit() {
|
||||
export PARALLEL_SSH='ssh -p2222'
|
||||
parallel -k echo ::: Basic usage works
|
||||
parallel -k -S localhost echo ::: Remote usage works
|
||||
}
|
||||
|
||||
scp /usr/local/bin/parallel $host:/data/data/com.termux/files/usr/bin
|
||||
env_parallel -S $host doit ::: a
|
|
@ -185,7 +185,7 @@ par_too_long_line_X() {
|
|||
|
||||
par_test_cpu_detection() {
|
||||
# Xeon 8 core server in Germany
|
||||
cpuinfo1="
|
||||
cpu1="
|
||||
processor : 0
|
||||
vendor_id : GenuineIntel
|
||||
cpu family : 6
|
||||
|
@ -387,7 +387,7 @@ address sizes : 38 bits physical, 48 bits virtual
|
|||
power management:
|
||||
";
|
||||
# Core i7-3632QM Acer laptop
|
||||
cpuinfo2="
|
||||
cpu2="
|
||||
processor : 0
|
||||
vendor_id : GenuineIntel
|
||||
cpu family : 6
|
||||
|
@ -605,7 +605,7 @@ address sizes : 36 bits physical, 48 bits virtual
|
|||
power management:
|
||||
";
|
||||
# Core i5-2410M laptop firewall
|
||||
cpuinfo3="
|
||||
cpu3="
|
||||
processor : 0
|
||||
vendor_id : GenuineIntel
|
||||
cpu family : 6
|
||||
|
@ -715,7 +715,7 @@ address sizes : 36 bits physical, 48 bits virtual
|
|||
power management:
|
||||
";
|
||||
#
|
||||
cpuinfo4="
|
||||
cpu4="
|
||||
processor : 0
|
||||
vendor_id : AuthenticAMD
|
||||
cpu family : 15
|
||||
|
@ -758,7 +758,7 @@ bogomips : 3616.94
|
|||
clflush size : 64
|
||||
power management: ts fid vid ttp
|
||||
";
|
||||
cpuinfo5="
|
||||
cpu5="
|
||||
processor : 0
|
||||
vendor_id : GenuineIntel
|
||||
cpu family : 6
|
||||
|
@ -2008,7 +2008,7 @@ address sizes : 46 bits physical, 48 bits virtual
|
|||
power management:
|
||||
";
|
||||
# HP Laptop Compaq 6530b
|
||||
cpuinfo6="
|
||||
cpu6="
|
||||
processor : 0
|
||||
vendor_id : GenuineIntel
|
||||
cpu family : 6
|
||||
|
@ -2065,7 +2065,7 @@ power management:
|
|||
|
||||
";
|
||||
# Huawei P Smart Octa-core (4x2.36 GHz Cortex-A53 & 4x1.7 GHz Cortex-A53)
|
||||
cpuinfo7="
|
||||
cpu7="
|
||||
processor : 0
|
||||
BogoMIPS : 3.84
|
||||
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32
|
||||
|
@ -2138,6 +2138,22 @@ CPU variant : 0x0
|
|||
CPU part : 0xd03
|
||||
CPU revision : 4
|
||||
|
||||
";
|
||||
# x96 quad-core Android
|
||||
cpu8="
|
||||
Processor : AArch64 Processor rev 4 (aarch64)
|
||||
processor : 0
|
||||
processor : 2
|
||||
processor : 3
|
||||
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 wp half thumb fastmult vfp edsp neon vfpv3 tlsi vfpv4 idiva idivt
|
||||
CPU implementer : 0x41
|
||||
CPU architecture: 8
|
||||
CPU variant : 0x0
|
||||
CPU part : 0xd03
|
||||
CPU revision : 4
|
||||
|
||||
Hardware : Amlogic
|
||||
Serial : 210a82004906ca55455227aefac9be20
|
||||
";
|
||||
test_one() {
|
||||
export PARALLEL_CPUINFO="$1"
|
||||
|
@ -2148,8 +2164,8 @@ CPU revision : 4
|
|||
}
|
||||
export -f test_one
|
||||
parallel -j0 -0 -k --tagstring {2} test_one {1} \
|
||||
::: "$cpuinfo1" "$cpuinfo2" "$cpuinfo3" "$cpuinfo4" "$cpuinfo5" "$cpuinfo6" "$cpuinfo7" \
|
||||
:::+ "2-8-8-8" "1-4-8-4" "1-2-4-2" "1-2-2-2" "2-24-48-24" "1-2-2-2" "1-8-8-8"
|
||||
::: "$cpu1" "$cpu2" "$cpu3" "$cpu4" "$cpu5" "$cpu6" "$cpu7" "$cpu8" \
|
||||
:::+ 2-8-8-8 1-4-8-4 1-2-4-2 1-2-2-2 2-24-48-24 1-2-2-2 1-8-8-8 1-4-4-4
|
||||
}
|
||||
|
||||
par_null_resume() {
|
||||
|
|
|
@ -7,11 +7,9 @@
|
|||
par_tee_with_premature_close() {
|
||||
echo '--tee --pipe should send all data to all commands'
|
||||
echo 'even if a command closes stdin before reading everything'
|
||||
seq 1000000 |
|
||||
parallel -k --tee --pipe \
|
||||
::: 'sleep 1' 'sleep 2;wc' 'sleep 2;head' 'sleep 2;tail'
|
||||
|
||||
# tee without --output-error=warn-nopipe support
|
||||
echo 'tee with --output-error=warn-nopipe support'
|
||||
seq 1000000 | parallel -k --tee --pipe ::: wc head tail 'sleep 1'
|
||||
echo 'tee without --output-error=warn-nopipe support'
|
||||
cat > tmp/tee <<-EOF
|
||||
#!/usr/bin/perl
|
||||
|
||||
|
@ -25,9 +23,8 @@ par_tee_with_premature_close() {
|
|||
# This gives incomplete output due to:
|
||||
# * tee not supporting --output-error=warn-nopipe
|
||||
# * sleep closes stdin before EOF
|
||||
seq 1000000 |
|
||||
parallel -k --tee --pipe \
|
||||
::: 'sleep 1' 'sleep 2;wc' 'sleep 2;head' 'sleep 2;tail'
|
||||
# Depending on tee it may provide partial output or no output
|
||||
seq 1000000 | parallel -k --tee --pipe ::: wc head tail 'sleep 1'
|
||||
echo
|
||||
}
|
||||
|
||||
|
|
|
@ -82,6 +82,8 @@ perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' ../../src/
|
|||
s{rsync error: some files/attrs were not transferred .*\n}{};
|
||||
s{.* GtkDialog .*\n}{};
|
||||
s{tried 1}{};
|
||||
s/^\s*\n//;
|
||||
s/^Second done\n//;
|
||||
' |
|
||||
perl -ne '/GTK2_RC_FILES/ and next;
|
||||
/GTK_RC_FILES/ and next;
|
||||
|
|
6
testsuite/wanted-results/parallel-android
Normal file
6
testsuite/wanted-results/parallel-android
Normal file
|
@ -0,0 +1,6 @@
|
|||
Basic
|
||||
usage
|
||||
works
|
||||
Remote
|
||||
usage
|
||||
works
|
|
@ -409,7 +409,7 @@ 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 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 /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.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 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 /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 /bin/mkdir -p '/tmp/parallel-install/share/man/man7'
|
||||
|
@ -823,7 +823,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 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 /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.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 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 pod2man --release='00000000' --center='parallel' \
|
||||
par_test_build_and_install --section=1 ./parallel.pod > ./parallel.1n \
|
||||
par_test_build_and_install && mv ./parallel.1n ./parallel.1 \
|
||||
|
|
|
@ -564,6 +564,7 @@ par_test_cpu_detection 1-2-2-2 1 2 2 2
|
|||
par_test_cpu_detection 2-24-48-24 2 24 48 24
|
||||
par_test_cpu_detection 1-2-2-2 1 2 2 2
|
||||
par_test_cpu_detection 1-8-8-8 1 8 8 8
|
||||
par_test_cpu_detection 1-4-4-4 1 4 4 4
|
||||
par_too_long_line_X bug #54869: Long lines break
|
||||
par_too_long_line_X 1 29302 131012
|
||||
par_too_long_line_X 1 12698 63490
|
||||
|
|
|
@ -1363,6 +1363,7 @@ par_sqlworker_hostname <hostname>
|
|||
par_sqlworker_hostname <hostname>
|
||||
par_tee_with_premature_close --tee --pipe should send all data to all commands
|
||||
par_tee_with_premature_close even if a command closes stdin before reading everything
|
||||
par_tee_with_premature_close tee with --output-error=warn-nopipe support
|
||||
par_tee_with_premature_close 1000000 1000000 6888896
|
||||
par_tee_with_premature_close 1
|
||||
par_tee_with_premature_close 2
|
||||
|
@ -1384,7 +1385,8 @@ par_tee_with_premature_close 999997
|
|||
par_tee_with_premature_close 999998
|
||||
par_tee_with_premature_close 999999
|
||||
par_tee_with_premature_close 1000000
|
||||
par_tee_with_premature_close 12773 12774 65536
|
||||
par_tee_with_premature_close tee without --output-error=warn-nopipe support
|
||||
par_tee_with_premature_close 1859 1860 8192
|
||||
par_tee_with_premature_close 1
|
||||
par_tee_with_premature_close 2
|
||||
par_tee_with_premature_close 3
|
||||
|
@ -1395,16 +1397,16 @@ par_tee_with_premature_close 7
|
|||
par_tee_with_premature_close 8
|
||||
par_tee_with_premature_close 9
|
||||
par_tee_with_premature_close 10
|
||||
par_tee_with_premature_close 12765
|
||||
par_tee_with_premature_close 12766
|
||||
par_tee_with_premature_close 12767
|
||||
par_tee_with_premature_close 12768
|
||||
par_tee_with_premature_close 12769
|
||||
par_tee_with_premature_close 12770
|
||||
par_tee_with_premature_close 12771
|
||||
par_tee_with_premature_close 12772
|
||||
par_tee_with_premature_close 12773
|
||||
par_tee_with_premature_close 1277
|
||||
par_tee_with_premature_close 1851
|
||||
par_tee_with_premature_close 1852
|
||||
par_tee_with_premature_close 1853
|
||||
par_tee_with_premature_close 1854
|
||||
par_tee_with_premature_close 1855
|
||||
par_tee_with_premature_close 1856
|
||||
par_tee_with_premature_close 1857
|
||||
par_tee_with_premature_close 1858
|
||||
par_tee_with_premature_close 1859
|
||||
par_tee_with_premature_close 1860
|
||||
par_test_X_with_multiple_source ### Test {} multiple times in different commands
|
||||
par_test_X_with_multiple_source echo 1 2 3 4 5 6 7 8 9 10 ; echo 1 2 3 4 5 6 7 8 9 10
|
||||
par_test_X_with_multiple_source 1 2 3 4 5 6 7 8 9 10
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
$ bash install.sh
|
||||
/bin/bash: -c: line 0: syntax error near unexpected token `)'
|
||||
/bin/bash: -c: line 0: ` fetch -o - http://pi.dk/3 ) > install.sh'
|
||||
|
||||
parallel -k echo ::: A B C > abc-file
|
||||
parallel -k echo ::: D E F > def-file
|
||||
perl -e 'printf "A\0B\0C\0"' > abc0-file
|
||||
|
@ -28,7 +27,6 @@ sleep .3
|
|||
/bin/bash: -c: line 0: syntax error near unexpected token `)'
|
||||
/bin/bash: -c: line 0: ` perl -e 'for(1..10){print "$_\n"}') > num_%header'
|
||||
perl -e 'print "HHHHAAABBBCCC"' > fixedlen
|
||||
|
||||
parallel echo ::: A B C
|
||||
A
|
||||
B
|
||||
|
@ -319,25 +317,20 @@ myval
|
|||
cAaAdef
|
||||
echo ${myvar:2:3}
|
||||
parallel --plus echo {:2:3} ::: "$myvar"
|
||||
|
||||
echo ${myvar#bc}
|
||||
parallel --plus echo {#bc} ::: "$myvar"
|
||||
echo ${myvar#abc}
|
||||
parallel --plus echo {#abc} ::: "$myvar"
|
||||
|
||||
echo ${myvar%de}
|
||||
parallel --plus echo {%de} ::: "$myvar"
|
||||
echo ${myvar%def}
|
||||
parallel --plus echo {%def} ::: "$myvar"
|
||||
|
||||
echo ${myvar/def/ghi}
|
||||
parallel --plus echo {/def/ghi} ::: "$myvar"
|
||||
|
||||
echo ${myvar^a}
|
||||
parallel --plus echo {^a} ::: "$myvar"
|
||||
echo ${myvar^^a}
|
||||
parallel --plus echo {^^a} ::: "$myvar"
|
||||
|
||||
myvar=AbcAaAdef
|
||||
echo ${myvar,A}
|
||||
parallel --plus echo '{,A}' ::: "$myvar"
|
||||
|
@ -374,7 +367,6 @@ foo
|
|||
perl -e 'print "@ARGV\n"' A
|
||||
A
|
||||
parallel perl -e 'print "@ARGV\n"' ::: This wont work
|
||||
|
||||
Warning: Input is read from the terminal. You either know what you
|
||||
Warning: are doing (in which case: YOU ARE AWESOME!) or you forgot
|
||||
Warning: ::: or :::: or to pipe data into parallel. If so
|
||||
|
@ -384,7 +376,6 @@ A
|
|||
/bin/bash: line 1: Warning:: command not found
|
||||
/bin/bash: -c: line 2: syntax error near unexpected token `('
|
||||
/bin/bash: -c: line 2: ` Warning: are doing (in which case: YOU ARE AWESOME!) or you forgot'
|
||||
|
||||
parallel --trim r echo pre-{}-post ::: ' A '
|
||||
pre- A-post
|
||||
parallel --trim l echo pre-{}-post ::: ' A '
|
||||
|
@ -544,7 +535,6 @@ B D
|
|||
parallel --use-cpus-instead-of-cores -N0 sleep 1 :::: num8
|
||||
parallel --shuf echo ::: 1 2 3 ::: a b c ::: A B C
|
||||
123 abc ABC
|
||||
|
||||
seq 10 20 | parallel --tmux 'echo start {}; sleep {}; echo done {}'
|
||||
See output with: tmux -S /tmp/parallel-tutorial-tmpdir/tmsXXXXX attach
|
||||
tmux -S /tmp/tmsXXXXX attach
|
||||
|
@ -567,19 +557,13 @@ parallel: Warning: sleep 8; echo 8
|
|||
parallel: Warning: This job was killed because it timed out:
|
||||
parallel: Warning: sleep 7; echo 7
|
||||
parallel --eta sleep ::: 1 3 2 2 1 3 3 2 1
|
||||
|
||||
Computers / CPU cores / Max jobs to run
|
||||
1:local / 8 / 8
|
||||
|
||||
Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
|
||||
|
||||
parallel --progress sleep ::: 1 3 2 2 1 3 3 2 1
|
||||
|
||||
Computers / CPU cores / Max jobs to run
|
||||
1:local / 8 / 8
|
||||
|
||||
Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
|
||||
|
||||
seq 1000 | parallel -j10 --bar '(echo -n {};sleep 0.1)' \
|
||||
2> >(zenity --timeout=15 --progress --auto-kill --auto-close)
|
||||
parallel --joblog /tmp/log exit ::: 1 2 3 0
|
||||
|
@ -662,7 +646,6 @@ echo X; exit X
|
|||
completed 1
|
||||
completed 2
|
||||
completed 0
|
||||
|
||||
tried 0
|
||||
show_signals() {
|
||||
perl -e 'for(keys %SIG) {
|
||||
|
@ -770,55 +753,41 @@ Unknown option: myecho $myvar
|
|||
Unknown option: :::
|
||||
Unknown option: green
|
||||
env_parallel only works if it is a function. Do the below and restart your shell.
|
||||
|
||||
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
|
||||
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
|
||||
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
|
||||
Supports: functions, variables, arrays
|
||||
|
||||
fish: Put this in $HOME/.config/fish/config.fish:
|
||||
. (which env_parallel.fish)
|
||||
E.g. by doing:
|
||||
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
|
||||
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
|
||||
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
|
||||
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
ash: Put this in $HOME/.profile: . `which env_parallel.ash`
|
||||
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
|
||||
Supports: aliases, variables
|
||||
|
||||
dash: Put this in $HOME/.profile: . `which env_parallel.dash`
|
||||
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
|
||||
Supports: aliases, variables
|
||||
|
||||
csh: Put this in $HOME/.cshrc: source `which env_parallel.csh`
|
||||
E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
|
||||
Supports: aliases, variables, arrays with no special chars
|
||||
|
||||
tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh`
|
||||
E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc
|
||||
Supports: aliases, variables, arrays with no special chars
|
||||
|
||||
To install in all shells run:
|
||||
|
||||
env_parallel --install
|
||||
|
||||
For details: see man env_parallel
|
||||
|
||||
MYVAR='foo bar'
|
||||
export MYVAR
|
||||
parallel --env MYVAR -S $SERVER1 echo '$MYVAR' ::: baz
|
||||
|
@ -928,7 +897,6 @@ mysqlrootpass
|
|||
VAR=foo
|
||||
export VAR
|
||||
parallel --env _ -S $SERVER1 'echo $VAR; my_func2' ::: bar
|
||||
|
||||
/bin/bash: my_func2: command not found
|
||||
NOT='not exported var'
|
||||
alias myecho=echo
|
||||
|
@ -944,55 +912,41 @@ Unknown option: echo $NOT; not_ex
|
|||
Unknown option: :::
|
||||
Unknown option: bar
|
||||
env_parallel only works if it is a function. Do the below and restart your shell.
|
||||
|
||||
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
|
||||
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
|
||||
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
|
||||
Supports: functions, variables, arrays
|
||||
|
||||
fish: Put this in $HOME/.config/fish/config.fish:
|
||||
. (which env_parallel.fish)
|
||||
E.g. by doing:
|
||||
echo '. (which env_parallel.fish)' >> $HOME/.config/fish/config.fish
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
|
||||
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
|
||||
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
|
||||
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
ash: Put this in $HOME/.profile: . `which env_parallel.ash`
|
||||
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
|
||||
Supports: aliases, variables
|
||||
|
||||
dash: Put this in $HOME/.profile: . `which env_parallel.dash`
|
||||
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
|
||||
Supports: aliases, variables
|
||||
|
||||
csh: Put this in $HOME/.cshrc: source `which env_parallel.csh`
|
||||
E.g. by doing: echo 'source `which env_parallel.csh`' >> $HOME/.cshrc
|
||||
Supports: aliases, variables, arrays with no special chars
|
||||
|
||||
tcsh: Put this in $HOME/.tcshrc: source `which env_parallel.tcsh`
|
||||
E.g. by doing: echo 'source `which env_parallel.tcsh`' >> $HOME/.tcshrc
|
||||
Supports: aliases, variables, arrays with no special chars
|
||||
|
||||
To install in all shells run:
|
||||
|
||||
env_parallel --install
|
||||
|
||||
For details: see man env_parallel
|
||||
|
||||
parallel -vv --pipepart --block 1M wc :::: num30000
|
||||
<num30000 perl -e 'while(@ARGV){sysseek(STDIN,shift,0)||die;$left=shift;while($read=sysread(STDIN,$buf,$left>131072?131072:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 0 168894 |(wc)
|
||||
30000 30000 168894
|
||||
|
@ -1013,49 +967,34 @@ Unknown option: a
|
|||
Unknown option: b
|
||||
parset only works if it is a function. The function is defined as part
|
||||
of env_parallel.
|
||||
|
||||
Do the below and restart your shell.
|
||||
|
||||
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
|
||||
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
|
||||
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
|
||||
Supports: functions, variables, arrays
|
||||
|
||||
fish: Unsupported
|
||||
|
||||
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
|
||||
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
|
||||
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
|
||||
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
ash: Put this in $HOME/.profile: . `which env_parallel.ash`
|
||||
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
|
||||
Supports: aliases, variables
|
||||
|
||||
dash: Put this in $HOME/.profile: . `which env_parallel.dash`
|
||||
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
|
||||
Supports: aliases, variables
|
||||
|
||||
csh: Unsupported
|
||||
|
||||
tcsh: Unsupported
|
||||
|
||||
To install in all shells run:
|
||||
|
||||
parset --install
|
||||
|
||||
For details: see man parset
|
||||
|
||||
parset myarray seq {} 5 ::: 1 2 3
|
||||
echo "${myarray[1]}"
|
||||
Unknown option: myarray
|
||||
|
@ -1068,49 +1007,34 @@ Unknown option: 2
|
|||
Unknown option: 3
|
||||
parset only works if it is a function. The function is defined as part
|
||||
of env_parallel.
|
||||
|
||||
Do the below and restart your shell.
|
||||
|
||||
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
|
||||
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
|
||||
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
|
||||
Supports: functions, variables, arrays
|
||||
|
||||
fish: Unsupported
|
||||
|
||||
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
|
||||
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
|
||||
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
|
||||
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
ash: Put this in $HOME/.profile: . `which env_parallel.ash`
|
||||
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
|
||||
Supports: aliases, variables
|
||||
|
||||
dash: Put this in $HOME/.profile: . `which env_parallel.dash`
|
||||
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
|
||||
Supports: aliases, variables
|
||||
|
||||
csh: Unsupported
|
||||
|
||||
tcsh: Unsupported
|
||||
|
||||
To install in all shells run:
|
||||
|
||||
parset --install
|
||||
|
||||
For details: see man parset
|
||||
|
||||
cmd=("echo '<<joe \"double space\" cartoon>>'" "pwd")
|
||||
parset data ::: "${cmd[@]}"
|
||||
echo "${data[0]}"
|
||||
|
@ -1121,49 +1045,34 @@ Unknown option: echo '<<joe "double space" cartoon>>'
|
|||
Unknown option: pwd
|
||||
parset only works if it is a function. The function is defined as part
|
||||
of env_parallel.
|
||||
|
||||
Do the below and restart your shell.
|
||||
|
||||
bash: Put this in $HOME/.bashrc: . `which env_parallel.bash`
|
||||
E.g. by doing: echo '. `which env_parallel.bash`' >> $HOME/.bashrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
zsh: Put this in $HOME/.zshrc: . `which env_parallel.zsh`
|
||||
E.g. by doing: echo '. `which env_parallel.zsh`' >> $HOME/.zshenv
|
||||
Supports: functions, variables, arrays
|
||||
|
||||
fish: Unsupported
|
||||
|
||||
ksh: Put this in $HOME/.kshrc: source `which env_parallel.ksh`
|
||||
E.g. by doing: echo 'source `which env_parallel.ksh`' >> $HOME/.kshrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
mksh: Put this in $HOME/.mkshrc: source `which env_parallel.mksh`
|
||||
E.g. by doing: echo 'source `which env_parallel.mksh`' >> $HOME/.mkshrc
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
pdksh: Put this in $HOME/.profile: source `which env_parallel.pdksh`
|
||||
E.g. by doing: echo '. `which env_parallel.pdksh`' >> $HOME/.profile
|
||||
Supports: aliases, functions, variables, arrays
|
||||
|
||||
ash: Put this in $HOME/.profile: . `which env_parallel.ash`
|
||||
E.g. by doing: echo '. `which env_parallel.ash`' >> $HOME/.profile
|
||||
Supports: aliases, variables
|
||||
|
||||
dash: Put this in $HOME/.profile: . `which env_parallel.dash`
|
||||
E.g. by doing: echo '. `which env_parallel.dash`' >> $HOME/.profile
|
||||
Supports: aliases, variables
|
||||
|
||||
csh: Unsupported
|
||||
|
||||
tcsh: Unsupported
|
||||
|
||||
To install in all shells run:
|
||||
|
||||
parset --install
|
||||
|
||||
For details: see man parset
|
||||
|
||||
parallel --sqlandworker csv:////%2Ftmp%2Flog.csv \
|
||||
seq ::: 10 ::: 12 13 14
|
||||
cat /tmp/log.csv
|
||||
|
@ -1202,7 +1111,6 @@ bar quuz
|
|||
sql $DBURL 'SELECT * FROM mytable ORDER BY Seq;'
|
||||
Error:
|
||||
SELECT * FROM mytable ORDER BY Seq; is not a valid DBURL
|
||||
|
||||
sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command]
|
||||
parallel --sqlmaster $DBURLTABLE echo ::: foo bar ::: baz quuz
|
||||
parallel: Error: echo is not a valid DBURL
|
||||
|
@ -1319,45 +1227,36 @@ Error: no such file "@ARGV\n"
|
|||
perl_echo foo bar
|
||||
/bin/bash: perl_echo: command not found
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/perl
|
||||
|
||||
print "Arguments @ARGV\n";
|
||||
Error: no such file "Arguments @ARGV\n"
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/python
|
||||
|
||||
print 'Arguments', str(sys.argv)
|
||||
/bin/bash: -c: line 3: syntax error near unexpected token `('
|
||||
/bin/bash: -c: line 3: ` print 'Arguments', str(sys.argv)'
|
||||
#!/usr/bin/parallel --shebang-wrap /bin/bash
|
||||
|
||||
echo Arguments "$@"
|
||||
Arguments
|
||||
#!/usr/bin/parallel --shebang-wrap /bin/csh
|
||||
|
||||
echo Arguments "$argv"
|
||||
Arguments
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/tclsh
|
||||
|
||||
puts "Arguments $argv"
|
||||
/bin/bash: line 2: puts: command not found
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/Rscript --vanilla --slave
|
||||
|
||||
args <- commandArgs(trailingOnly = TRUE)
|
||||
print(paste("Arguments ",args))
|
||||
/bin/bash: -c: line 2: syntax error near unexpected token `('
|
||||
/bin/bash: -c: line 2: ` args <- commandArgs(trailingOnly = TRUE)'
|
||||
#!/usr/bin/parallel --shebang-wrap ARG={} /usr/bin/gnuplot
|
||||
|
||||
print "Arguments ", system('echo $ARG')
|
||||
/bin/bash: -c: line 2: syntax error near unexpected token `('
|
||||
/bin/bash: -c: line 2: ` print "Arguments ", system('echo $ARG')'
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/ruby
|
||||
|
||||
print "Arguments "
|
||||
puts ARGV
|
||||
Error: no such file "Arguments "
|
||||
/bin/bash: line 3: puts: command not found
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/octave
|
||||
|
||||
printf ("Arguments");
|
||||
arg_list = argv ();
|
||||
for i = 1:nargin
|
||||
|
@ -1367,7 +1266,6 @@ Error: no such file "Arguments "
|
|||
/bin/bash: -c: line 2: syntax error near unexpected token `"Arguments"'
|
||||
/bin/bash: -c: line 2: ` printf ("Arguments");'
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/clisp
|
||||
|
||||
(format t "~&~S~&" 'Arguments)
|
||||
(format t "~&~S~&" *args*)
|
||||
/bin/bash: -c: line 2: unexpected EOF while looking for matching `''
|
||||
|
@ -1391,7 +1289,6 @@ Arguments
|
|||
/bin/bash: -c: line 0: syntax error near unexpected token `('
|
||||
/bin/bash: -c: line 0: ` var myArgs = process.argv.slice(2);'
|
||||
#!/usr/bin/parallel --shebang-wrap /usr/bin/lua
|
||||
|
||||
io.write "Arguments"
|
||||
for a = 1, #arg do
|
||||
io.write(" ")
|
||||
|
@ -1402,7 +1299,6 @@ Arguments
|
|||
/bin/bash: -c: line 3: syntax error near unexpected token `='
|
||||
/bin/bash: -c: line 3: ` for a = 1, #arg do'
|
||||
#!/usr/bin/parallel --shebang-wrap ARGV={} /usr/bin/csharp
|
||||
|
||||
var argv = Environment.GetEnvironmentVariable("ARGV");
|
||||
print("Arguments "+argv);
|
||||
/bin/bash: -c: line 2: syntax error near unexpected token `('
|
||||
|
@ -1427,7 +1323,6 @@ The second finished running in the foreground
|
|||
First started
|
||||
First done
|
||||
sem --id my_id -u 'echo Second started; sleep 10; echo Second done'
|
||||
Second done
|
||||
sem --jobs 3 --id my_id -u 'echo Start 1; sleep 5; echo 1 done' &&
|
||||
sem --jobs 3 --id my_id -u 'echo Start 2; sleep 6; echo 2 done' &&
|
||||
sem --jobs 3 --id my_id -u 'echo Start 3; sleep 7; echo 3 done' &&
|
||||
|
@ -1452,11 +1347,9 @@ parallel: Warning: Semaphore timed out. Stealing the semaphore.
|
|||
parallel: Warning: Semaphore timed out. Exiting.
|
||||
parallel --help
|
||||
Usage:
|
||||
|
||||
parallel [options] [command [arguments]] < list_of_arguments
|
||||
parallel [options] [command [arguments]] (::: arguments|:::: argfile(s))...
|
||||
cat ... | parallel --pipe [options] [command [arguments]]
|
||||
|
||||
-j n Run n jobs in parallel
|
||||
-k Keep same order
|
||||
-X Multiple arguments with context replace
|
||||
|
@ -1465,38 +1358,29 @@ cat ... | parallel --pipe [options] [command [arguments]]
|
|||
{3} {3.} {3/} {3/.} {=3 perl code =} Positional replacement strings
|
||||
With --plus: {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = {..}.{+..} =
|
||||
{+/}/{/..}.{+..} = {...}.{+...} = {+/}/{/...}.{+...}
|
||||
|
||||
-S sshlogin Example: foo@server.example.com
|
||||
--slf .. Use ~/.parallel/sshloginfile as the list of sshlogins
|
||||
--trc {}.bar Shorthand for --transfer --return {}.bar --cleanup
|
||||
--onall Run the given command with argument on all sshlogins
|
||||
--nonall Run the given command with no arguments on all sshlogins
|
||||
|
||||
--pipe Split stdin (standard input) to multiple jobs.
|
||||
--recend str Record end separator for --pipe.
|
||||
--recstart str Record start separator for --pipe.
|
||||
|
||||
See 'man parallel' for details
|
||||
|
||||
Academic tradition requires you to cite works you base your article on.
|
||||
If you use programs that use GNU Parallel to process data for an article in a
|
||||
scientific publication, please cite:
|
||||
|
||||
O. Tange (2018): GNU Parallel 2018, Mar 2018, ISBN 9781387509881,
|
||||
DOI https://doi.org/10.5281/zenodo.1146014
|
||||
|
||||
This helps funding further development; AND IT WON'T COST YOU A CENT.
|
||||
If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
|
||||
|
||||
parallel --version
|
||||
GNU parallel VERSION
|
||||
Copyright (C) 2007-2019 Ole Tange and Free Software Foundation, Inc.
|
||||
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
|
||||
This is free software: you are free to change and redistribute it.
|
||||
GNU parallel comes with no warranty.
|
||||
|
||||
Web site: http://www.gnu.org/software/parallel
|
||||
|
||||
When using programs that use GNU Parallel to process data for publication
|
||||
please cite as described in 'parallel --citation'.
|
||||
parallel --minversion VERSION && \
|
||||
|
@ -1507,7 +1391,6 @@ Your version is at least VERSION.
|
|||
Academic tradition requires you to cite works you base your article on.
|
||||
If you use programs that use GNU Parallel to process data for an article in a
|
||||
scientific publication, please cite:
|
||||
|
||||
@book{tange_ole_2018_1146014,
|
||||
author = {Tange, Ole},
|
||||
title = {GNU Parallel 2018},
|
||||
|
@ -1518,20 +1401,15 @@ scientific publication, please cite:
|
|||
doi = {10.5281/zenodo.1146014},
|
||||
url = {https://doi.org/10.5281/zenodo.1146014}
|
||||
}
|
||||
|
||||
(Feel free to use \nocite{tange_ole_2018_1146014})
|
||||
|
||||
This helps funding further development; AND IT WON'T COST YOU A CENT.
|
||||
If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
|
||||
|
||||
More about funding GNU Parallel and the citation notice:
|
||||
https://lists.gnu.org/archive/html/parallel/2013-11/msg00006.html
|
||||
https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice
|
||||
https://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt
|
||||
|
||||
If you send a copy of your published article to tange@gnu.org, it will be
|
||||
mentioned in the release notes of next version of GNU Parallel.
|
||||
|
||||
parallel --number-of-cpus
|
||||
parallel --number-of-cores
|
||||
9
|
||||
|
|
Loading…
Reference in a new issue