mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-21 21:47:54 +00:00
Released as 20190322 ('FridayforFuture')
This commit is contained in:
parent
0fa1bbff20
commit
dbc36fb062
23
NEWS
23
NEWS
|
@ -1,3 +1,26 @@
|
|||
20190322
|
||||
|
||||
* SIGTERM is changed to SIGHUP, so sending SIGHUP will make GNU
|
||||
Parallel start no more jobs, but wait for running jobs to finish.
|
||||
|
||||
* SIGTERM SIGTERM is changed to SIGTERM, so sending SIGTERM will make
|
||||
GNU Parallel kill all running jobs.
|
||||
|
||||
* GNU Parallel now includes a cheat sheet: parallel_cheat.pdf
|
||||
|
||||
* High Throughput Computing on RMACC Summit and Beyond
|
||||
https://calendar.colorado.edu/event/high_throughput_computing_on_rmacc_summit_and_beyond#.XH2NBhB7mV4
|
||||
|
||||
* GNU Parallel Cheat Sheet by cpriest
|
||||
https://www.cheatography.com/cpriest/cheat-sheets/gnu-parallel/
|
||||
|
||||
* Use Multiple CPU Cores(Parallelize) with Single Threaded Linux
|
||||
Commands
|
||||
http://xensoft.com/use-multiple-cpu-cores-parallelize-with-single-threaded-linux-commands/
|
||||
|
||||
* Bug fixes and man page updates.
|
||||
|
||||
|
||||
20190222
|
||||
|
||||
* --shard makes it possible to send input to a the same jobslot based
|
||||
|
|
12
README
12
README
|
@ -44,9 +44,9 @@ document.
|
|||
|
||||
Full installation of GNU Parallel is as simple as:
|
||||
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20190222.tar.bz2
|
||||
bzip2 -dc parallel-20190222.tar.bz2 | tar xvf -
|
||||
cd parallel-20190222
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20190322.tar.bz2
|
||||
bzip2 -dc parallel-20190322.tar.bz2 | tar xvf -
|
||||
cd parallel-20190322
|
||||
./configure && make && sudo make install
|
||||
|
||||
|
||||
|
@ -55,9 +55,9 @@ Full installation of GNU Parallel is as simple as:
|
|||
If you are not root you can add ~/bin to your path and install in
|
||||
~/bin and ~/share:
|
||||
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20190222.tar.bz2
|
||||
bzip2 -dc parallel-20190222.tar.bz2 | tar xvf -
|
||||
cd parallel-20190222
|
||||
wget https://ftpmirror.gnu.org/parallel/parallel-20190322.tar.bz2
|
||||
bzip2 -dc parallel-20190322.tar.bz2 | tar xvf -
|
||||
cd parallel-20190322
|
||||
./configure --prefix=$HOME && make && make install
|
||||
|
||||
Or if your system lacks 'make' you can simply copy src/parallel
|
||||
|
|
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 20190310.
|
||||
# Generated by GNU Autoconf 2.69 for parallel 20190322.
|
||||
#
|
||||
# Report bugs to <bug-parallel@gnu.org>.
|
||||
#
|
||||
|
@ -579,8 +579,8 @@ MAKEFLAGS=
|
|||
# Identity of this package.
|
||||
PACKAGE_NAME='parallel'
|
||||
PACKAGE_TARNAME='parallel'
|
||||
PACKAGE_VERSION='20190310'
|
||||
PACKAGE_STRING='parallel 20190310'
|
||||
PACKAGE_VERSION='20190322'
|
||||
PACKAGE_STRING='parallel 20190322'
|
||||
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 20190310 to adapt to many kinds of systems.
|
||||
\`configure' configures parallel 20190322 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 20190310:";;
|
||||
short | recursive ) echo "Configuration of parallel 20190322:";;
|
||||
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 20190310
|
||||
parallel configure 20190322
|
||||
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 20190310, which was
|
||||
It was created by parallel $as_me 20190322, 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='20190310'
|
||||
VERSION='20190322'
|
||||
|
||||
|
||||
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 20190310, which was
|
||||
This file was extended by parallel $as_me 20190322, 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 20190310
|
||||
parallel config.status 20190322
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
AC_INIT([parallel], [20190310], [bug-parallel@gnu.org])
|
||||
AC_INIT([parallel], [20190322], [bug-parallel@gnu.org])
|
||||
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
AC_CONFIG_FILES([
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
Quote of the month:
|
||||
|
||||
There are so many things to love about GNU parallel. You could honestly teach a whole parallel computing course with it and never have to leave it for a real language.
|
||||
-- Aubrey Bailey @DNAvinci@twitter
|
||||
|
||||
Parallel is a life send, what an awesome piece of software.
|
||||
-- Blaze9@reddit.com
|
||||
|
||||
|
@ -34,6 +31,10 @@ It's the MapReduce of our generation!
|
|||
|
||||
|
||||
=== Used ===
|
||||
There are so many things to love about GNU parallel. You could honestly teach a whole parallel computing course with it and never have to leave it for a real language.
|
||||
-- Aubrey Bailey @DNAvinci@twitter
|
||||
|
||||
|
||||
With GNU Parallel you sure can!
|
||||
I like getting things done
|
||||
|
||||
|
|
301
doc/promo
301
doc/promo
|
@ -1,3 +1,304 @@
|
|||
=head1 GNU Parallel 10 year anniversery - 2020-04-22
|
||||
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
|
||||
Wow. It has been 10 years since my parallel program was officially
|
||||
renamed GNU Parallel. It has been quite a ride.
|
||||
|
||||
So it is a probably a good time to take stock.
|
||||
|
||||
|
||||
=head2 The design
|
||||
|
||||
The user interface of GNU Parallel has changed very little during the
|
||||
last 10 years. In total around 10 things have changed in a way that
|
||||
was not backwards compatible - most of them corner cases that very few
|
||||
use.
|
||||
|
||||
|
||||
=head2 Videos
|
||||
|
||||
In 2010 one of the competitors was PPSS. My colleague, Hans Schou,
|
||||
saw louwrentius' video showing off PPSS
|
||||
(https://www.youtube.com/watch?v=32PwsARbePw) and nudged me to make my
|
||||
own videos and most of the information in those still applies to the
|
||||
newest version.
|
||||
|
||||
|
||||
=head2 Complete rewrite
|
||||
|
||||
Before GNU Parallel was a GNU tool, it started as a wrapper around
|
||||
`make -j`. But GNU Parallel grew, and was no longer just a small
|
||||
hack. To make the code easier to maintain it was rewritten to object
|
||||
orientation.
|
||||
|
||||
This would not have been possible if the test suite had not been so
|
||||
thorough: It made it much easier to see if
|
||||
|
||||
|
||||
=head2 --tollef
|
||||
|
||||
Tollef's parallel from moreutils was a headache: Before Tollef's
|
||||
parallel was adopted by moreutils I tried getting Parallel adopted in
|
||||
moreutils. So it was a bit of a disappointment seeing another program
|
||||
called exactly the same included some months later.
|
||||
|
||||
--tollef was added to make GNU Parallel compatible with Tollef's
|
||||
parallel, so that if you depended on Tollef's parallel, then you could
|
||||
drop in GNU Parallel as a replacement.
|
||||
|
||||
I honestly don't think anyone used this. Ever. But it silenced the
|
||||
argument that GNU Parallel would break existing usage.
|
||||
|
||||
Unfortunately distributions enabled --tollef by default and did not
|
||||
stress this to the user. So users experienced no end of frustration
|
||||
when the examples from GNU Parallel's man page did not work.
|
||||
|
||||
moreutils is now generally packaged with Tollef's parallel split off
|
||||
into a separate package, and the frustration seems to be lower today.
|
||||
|
||||
|
||||
=head2 GNU Paralel on NASA Pleiades supercomputer
|
||||
|
||||
In 2013 I stumbled on a happy surprise: NASA seemed to have installed
|
||||
GNU Parallel on their Pleiades supercomputer.
|
||||
|
||||
https://web.archive.org/web/20130221072030/https://www.nas.nasa.gov/hecc/support/kb/using-gnu-parallel-to-package-multiple-jobs-in-a-single-pbs-job_303.html
|
||||
|
||||
"""On Pleiades, a copy of GNU parallel is available under /usr/bin."""
|
||||
|
||||
Pleiades was 16th on top500.org in 2013.
|
||||
|
||||
I have the feeling that GNU Parallel is also used on some of the
|
||||
bigger supercomputers, but I have found no confirmation of that.
|
||||
|
||||
|
||||
=head2 GNU Parallel on Termux and OpenWRT
|
||||
|
||||
At the other end of the system size is Termux on Android and OpenWRT
|
||||
for accesspoints. GNU Parallel runs on both of them, and while I can
|
||||
see why you might run GNU Parallel on an access point I still do not
|
||||
know why you would do it on an Android device.
|
||||
|
||||
It is still cool that it can be done at all.
|
||||
|
||||
|
||||
=head2 Attack on funding
|
||||
|
||||
A sad chapter is the attack on the funding of GNU Parallel.
|
||||
|
||||
You would think such an attack would come from non-free competitors, but
|
||||
this attack was from packagers that packaged GNU Parallel for Debian
|
||||
and SuSE.
|
||||
|
||||
GNU Parallel is funded by me having a job. It is easier to get a well
|
||||
paid job that will allow for maintaining GNU Parallel if GNU Parallel
|
||||
is cited, because that proves the tool is useful for serious work.
|
||||
|
||||
I saw GNU Parallel being used in scientific articles, which was great,
|
||||
but without being cited, which was not ideal. So we discussed on the
|
||||
email list how to make users aware that citing is how GNU Parallel is
|
||||
financed and why this is important.
|
||||
|
||||
So it was decided to make a notice similar to a do-show-this-again box
|
||||
known from e.g. Firefox. The notice could be silenced in less than 10
|
||||
seconds.
|
||||
|
||||
Unfortunately in a misguided act of short term gain in popularity SuSE
|
||||
and Debian did a disservice to free software and disabled this notice
|
||||
in the version they currently distribute.
|
||||
|
||||
As GNU Parallel is free software they are allowed to fork the
|
||||
software, but only if they make sure the forked version cannot be
|
||||
mistaken for GNU Parallel. We have court cases showing this is the
|
||||
case, but still Debian and SuSE refuse to back down, so the problem
|
||||
still not resolved.
|
||||
|
||||
If you would like to see GNU Parallel maintained in the future, please
|
||||
help by raising this issue with SuSE and Debian. Their current stance
|
||||
hurts free software by making it harder to justify spending time on
|
||||
maintaining GNU Parallel. Not having GNU Parallel distributed by
|
||||
Debian and SuSE is actually preferable to the current situation,
|
||||
though, the best outcome would be if they distributed the non-modified
|
||||
version.
|
||||
|
||||
For users who are unwiling to spend the 10 seconds on silencing the
|
||||
notice there is an easy solution: "Don't like it? Don't use it." A
|
||||
considerable amount of time has been spent on mapping the
|
||||
alternatives, so there is really no excuse. See `man
|
||||
parallel_alternatives`.
|
||||
|
||||
|
||||
=head2 The GNU Parallel 2018 book
|
||||
|
||||
Hans Schou teased me by calling the man page "the book". In 2018 I
|
||||
took the consequence of that and wrote a book. The book is available
|
||||
online (https://doi.org/10.5281/zenodo.1146014) and in print
|
||||
(http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html).
|
||||
|
||||
|
||||
=head2 Cheatsheet
|
||||
|
||||
A lot of hours has been put into documentation, but the problem with
|
||||
having a lot of documentation is that is can make some people think
|
||||
the program is hard to use giving rise to the myth that "You have to
|
||||
read a full book to be able to use GNU Parallel".
|
||||
|
||||
Several people noted that GNU Parallel was missing a cheat sheet. So
|
||||
in 2019 a one page cheat sheet was included in the package.
|
||||
|
||||
=head2 Why all the options?
|
||||
|
||||
Instead of crappy wrapper scripts.
|
||||
|
||||
=head2 Convenience options --nice --basefile --transfer --return
|
||||
--cleanup --tmux --group --compress --cat --fifo --workdir --tag
|
||||
|
||||
|
||||
=head2 The May 1st incident
|
||||
|
||||
I was at a May 1st event for computer professionals where I sat at a
|
||||
long table opposite a guy. At some point the discussion turned to
|
||||
parallelism.
|
||||
|
||||
"I have found the brilliant program," he said. "It does everything if
|
||||
you want to parallelize."
|
||||
|
||||
The more he explained the more certain was I that I knew this program
|
||||
quite intimately.
|
||||
|
||||
"And it is written by a Dane," he said excited.
|
||||
|
||||
"Oh. Are you aware that the author is sitting on my side of the table?"
|
||||
|
||||
We were the only ones sitting at the table, but we had had a few
|
||||
beers, so it took a while before it dawned to him, who I was.
|
||||
|
||||
|
||||
|
||||
=head2 Underappreciated functionality
|
||||
|
||||
=head3 env_parallel
|
||||
|
||||
When I was shown you could encode variables into a single variable and
|
||||
move that to a remote system I was intrigued. But why stop at
|
||||
variables? Why not include aliases, functions, and arrays?
|
||||
|
||||
env_parallel started out as a technical challenge: How much can be
|
||||
copied transparently?
|
||||
|
||||
But it quickly got a more practical side: Why should you not be able
|
||||
to use the variables, aliases and functions defined on the local
|
||||
system just because you want to run jobs on a remote system?
|
||||
|
||||
|
||||
=head3 parset
|
||||
|
||||
Some of GNU Parallel functionality is inspired by other people
|
||||
problems: How could this problem be solved in general?
|
||||
|
||||
parset is one of those. It was inpired by a user who needed the output
|
||||
from different jobs to be stored in different variables. The jobs were
|
||||
slow and could be run in parallel. So while the running of the jobs
|
||||
were clearly a task for GNU Parallel, the storing in variables was not
|
||||
so clear.
|
||||
|
||||
It was fairly easy to code something that would work if the output was
|
||||
a single line with no spaces, but GNU Parallel tries hard not to set
|
||||
artifical limits: It is much preferable to a bit slower if the outcome
|
||||
is predictable - whether the output is a single word or some binary
|
||||
data.
|
||||
|
||||
|
||||
=head3 --embed
|
||||
|
||||
Some of the functionality is inspired by other tools. --embed is one
|
||||
of those.
|
||||
|
||||
--embed was inspired by Lesser Parallel that in turn was inspired by
|
||||
GNU Parallel. The major feature of Lesser Parallel is to be embedded
|
||||
in any bash script. The developer will embed the code into his own
|
||||
bash script and distribute this script.
|
||||
|
||||
So with --embed the users of the script will not have to install GNU
|
||||
Parallel to run it.
|
||||
|
||||
|
||||
=head3 --pipepart with --fifo
|
||||
|
||||
=head3 --bar
|
||||
|
||||
I see people using --bar too rarely. It is one of the easiest ways to
|
||||
get a visual representation of when all the jobs are expected done.
|
||||
|
||||
|
||||
=head3 Combining ::: with :::+
|
||||
|
||||
|
||||
=head3 --rpl with dynamic replacement strings
|
||||
|
||||
=head3 --results with replacement strings
|
||||
|
||||
=head3 --tagstring with replacement strings
|
||||
|
||||
|
||||
=head2 Feedback
|
||||
|
||||
Best ever
|
||||
|
||||
|
||||
=head2 Live strong
|
||||
|
||||
On average there has been a new release of GNU Parallel every month
|
||||
since 2010-04-24.
|
||||
|
||||
In the autumn of 2010 Henrik Sandklef teased me that he knew when the
|
||||
next release would be. GNU Parallel just happened to have been
|
||||
released twice in the 22nd, so he assumed the next release would also
|
||||
be on the 22nd. And why not? A few releases were not in line with
|
||||
this, but since 2011 there has been a release every month around the
|
||||
22nd.
|
||||
|
||||
The fixed release cycle means there has been more than 100 releases
|
||||
making GNU Parallel in the top 5 of GNU tools with the most releases.
|
||||
|
||||
|
||||
=head3 Naming releases
|
||||
|
||||
At the presenatation at FOSDEM (20110205) I found it might be fun to
|
||||
give each release code name, so this release was named FOSDEM. After
|
||||
the Japan release a naming convention started to emerge. And since
|
||||
then each release has had a name related to an event in the past
|
||||
month.
|
||||
|
||||
I will be honest: Some releases were easier to name than others.
|
||||
|
||||
Since the events are not always happy events, the names have now and
|
||||
then stirred a bit of controversy. But if you want happier names, go
|
||||
make a happier world :)
|
||||
|
||||
=head3 Competitors
|
||||
|
||||
Apart from xargs no competitor has had the strength to live for 10
|
||||
years. And even xargs has not had a steady release cycle with a new
|
||||
release every month.
|
||||
|
||||
|
||||
=head2 The next 10 years
|
||||
|
||||
Parallization has come to stay, and there are a lot of competitors to
|
||||
GNU Parallel that do specialized tasks better. But I have a feeling
|
||||
that there is room for a generalized tool like GNU Parallel also in 10
|
||||
years.
|
||||
|
||||
|
||||
|
||||
=head1 top photos
|
||||
|
||||
http://www.flickr.com/photos/dexxus/5499821986/in/photostream/
|
||||
|
|
|
@ -207,25 +207,27 @@ from:tange@gnu.org
|
|||
to:parallel@gnu.org, bug-parallel@gnu.org
|
||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||
|
||||
Subject: GNU Parallel 20190322 (climatestrike FridayforFuture
|
||||
Christchurch 'Max 8' fly i etiopien 737Max 8 indien pakistan Kashmir') released <<[stable]>>
|
||||
Subject: GNU Parallel 20190322 ('FridayforFuture') released <<[stable]>>
|
||||
|
||||
GNU Parallel 20190322 ('') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
|
||||
GNU Parallel 20190322 ('FridayforFuture') <<[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.>>
|
||||
The change in signalling makes this release experimental for users that send SIGTERM to GNU Parallel.
|
||||
|
||||
Quote of the month:
|
||||
|
||||
<<>>
|
||||
There are so many things to love about GNU parallel. You could honestly teach a whole parallel computing course with it and never have to leave it for a real language.
|
||||
-- Aubrey Bailey @DNAvinci@twitter
|
||||
|
||||
|
||||
New in this release:
|
||||
|
||||
* GNU Parallel now includes a cheat sheet: parallel_cheat.pdf
|
||||
|
||||
https://calendar.colorado.edu/event/high_throughput_computing_on_rmacc_summit_and_beyond#.XH2NBhB7mV4
|
||||
* High Throughput Computing on RMACC Summit and Beyond https://calendar.colorado.edu/event/high_throughput_computing_on_rmacc_summit_and_beyond#.XH2NBhB7mV4
|
||||
|
||||
https://www.cheatography.com/cpriest/cheat-sheets/gnu-parallel/
|
||||
* GNU Parallel Cheat Sheet by cpriest https://www.cheatography.com/cpriest/cheat-sheets/gnu-parallel/
|
||||
|
||||
* Use Multiple CPU Cores(Parallelize) with Single Threaded Linux Commands http://xensoft.com/use-multiple-cpu-cores-parallelize-with-single-threaded-linux-commands/
|
||||
|
||||
* Bug fixes and man page updates.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<directory name="parallel" rev="232" srcmd5="45591c7f6bfc52dfd9aa690a14a31a4c" vrev="2">
|
||||
<entry md5="58a492714cee48a39d785e4efb597a83" mtime="1550870169" name="parallel-20190222.tar.bz2" size="1836447" />
|
||||
<entry md5="dc24d3784e8be2bcd01dafbd7ee3b918" mtime="1550870135" name="parallel.spec" size="4667" />
|
||||
<entry md5="9090ce7615a2d675f6b5d238ba5ffe41" mtime="1550870135" name="parallel_20190222.dsc" size="556" />
|
||||
<entry md5="847f864bd968638882ddfc0d43bd2115" mtime="1550870136" name="parallel_20190222.tar.gz" size="2032210" />
|
||||
<directory name="parallel" rev="235" srcmd5="b56edf537125f4d80264c18ceb6f0a1d" vrev="3">
|
||||
<entry md5="bb69a30ebf19d93dda7b349d3ec6f09a" mtime="1553206993" name="parallel-20190322.tar.bz2" size="2010002" />
|
||||
<entry md5="f1e16853c46c9fdd844562fbaf845aa4" mtime="1553206994" name="parallel.spec" size="4738" />
|
||||
<entry md5="38056b999a4b5c6b32dc85be7359e4da" mtime="1553206501" name="parallel_20190322.dsc" size="556" />
|
||||
<entry md5="f787b5e843add718eafeb06163e7e496" mtime="1553206502" name="parallel_20190322.tar.gz" size="2193783" />
|
||||
</directory>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Summary: Shell tool for executing jobs in parallel
|
||||
Name: parallel
|
||||
Version: 20190222
|
||||
Version: 20190322
|
||||
Release: 1.2
|
||||
License: GPL
|
||||
Group: Productivity/File utilities
|
||||
|
@ -88,6 +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
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
@ -97,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
|
||||
%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
|
||||
|
||||
%changelog
|
||||
* Sat Jan 22 2011 Ole Tange
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
Summary: Shell tool for executing jobs in parallel
|
||||
Name: parallel
|
||||
Version: 20190222
|
||||
Version: 20190322
|
||||
Release: 1.2
|
||||
License: GPL
|
||||
Group: Productivity/File utilities
|
||||
|
@ -88,6 +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
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
@ -97,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
|
||||
%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
|
||||
|
||||
%changelog
|
||||
* Sat Jan 22 2011 Ole Tange
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
use strict;
|
||||
use Getopt::Long;
|
||||
$Global::progname="niceload";
|
||||
$Global::version = 20190223;
|
||||
$Global::version = 20190322;
|
||||
Getopt::Long::Configure("bundling","require_order");
|
||||
get_options_from_array(\@ARGV) || die_usage();
|
||||
if($opt::version) {
|
||||
|
|
|
@ -1695,7 +1695,7 @@ sub check_invalid_option_combinations() {
|
|||
|
||||
sub init_globals() {
|
||||
# Defaults:
|
||||
$Global::version = 20190223;
|
||||
$Global::version = 20190322;
|
||||
$Global::progname = 'parallel';
|
||||
$Global::infinity = 2**31;
|
||||
$Global::debug = 0;
|
||||
|
|
|
@ -2076,7 +2076,7 @@ Only supported in B<Ash, Bash, Dash, Ksh, Sh, and Zsh>.
|
|||
See also B<--env>, B<--record-env>.
|
||||
|
||||
|
||||
=item B<--shard> I<shardkey> (alpha testing)
|
||||
=item B<--shard> I<shardkey> (beta testing)
|
||||
|
||||
Use column I<shardkey> as shard key and shard input to the jobs.
|
||||
|
||||
|
@ -2152,7 +2152,7 @@ E.g.
|
|||
B<--shebang-wrap> must be set as the first option.
|
||||
|
||||
|
||||
=item B<--shellquote> (beta testing)
|
||||
=item B<--shellquote>
|
||||
|
||||
Does not run the command but quotes it. Useful for making quoted
|
||||
composed commands for GNU B<parallel>.
|
||||
|
@ -4513,9 +4513,9 @@ GNU B<parallel> will then print the currently running jobs on stderr
|
|||
|
||||
If you regret starting a lot of jobs you can simply break GNU B<parallel>,
|
||||
but if you want to make sure you do not have half-completed jobs you
|
||||
should send the signal B<SIGTERM> to GNU B<parallel>:
|
||||
should send the signal B<SIGHUP> to GNU B<parallel>:
|
||||
|
||||
killall -TERM parallel
|
||||
killall -HUP parallel
|
||||
|
||||
This will tell GNU B<parallel> to not start any new jobs, but wait until
|
||||
the currently running jobs are finished before exiting.
|
||||
|
@ -4540,7 +4540,7 @@ shell.
|
|||
|
||||
B<Example:> If each of the jobs tests a solution and one of jobs finds
|
||||
the solution the job can tell GNU B<parallel> not to start more jobs
|
||||
by: B<kill -TERM $PARALLEL_PID>. This only works on the local
|
||||
by: B<kill -HUP $PARALLEL_PID>. This only works on the local
|
||||
computer.
|
||||
|
||||
|
||||
|
|
|
@ -495,7 +495,8 @@ B<--pipepart>/B<--pipe> should be done on the local machine inside B<--tmux>
|
|||
|
||||
|
||||
=head2 Convenience options --nice --basefile --transfer --return
|
||||
--cleanup --tmux --group --compress --cat --fifo --workdir
|
||||
--cleanup --tmux --group --compress --cat --fifo --workdir --tag
|
||||
--tagstring
|
||||
|
||||
These are all convenience options that make it easier to do a
|
||||
task. But more importantly: They are tested to work on corner cases,
|
||||
|
|
2
src/sql
2
src/sql
|
@ -574,7 +574,7 @@ $Global::Initfile && unlink $Global::Initfile;
|
|||
exit ($err);
|
||||
|
||||
sub parse_options {
|
||||
$Global::version = 20190223;
|
||||
$Global::version = 20190322;
|
||||
$Global::progname = 'sql';
|
||||
|
||||
# This must be done first as this may exec myself
|
||||
|
|
|
@ -204,24 +204,24 @@ par_shellquote csh \\\\\\\\ "\
|
|||
par_shellquote csh "\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
||||
par_shellquote tcsh \\\\\\\\ "\
|
||||
par_shellquote tcsh "\\\
\\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~€<7F>\‚\ƒ\„\…\†\‡\ˆ\‰\Š\‹\Œ\<5C>\Ž\<5C>\<5C>\‘\’\“\”\•\–\—\˜\™\š\›\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
|
||||
par_sigterm ### Test SIGTERM
|
||||
par_sigterm 1
|
||||
par_sigterm 10
|
||||
par_sigterm 2
|
||||
par_sigterm 3
|
||||
par_sigterm 4
|
||||
par_sigterm 5
|
||||
par_sigterm 6
|
||||
par_sigterm 7
|
||||
par_sigterm 8
|
||||
par_sigterm 9
|
||||
par_sigterm parallel: SIGTERM received. No new jobs will be started.
|
||||
par_sigterm parallel: Waiting for these 5 jobs to finish. Send SIGTERM again to stop now.
|
||||
par_sigterm parallel: sleep 15; echo 10
|
||||
par_sigterm parallel: sleep 15; echo 6
|
||||
par_sigterm parallel: sleep 15; echo 7
|
||||
par_sigterm parallel: sleep 15; echo 8
|
||||
par_sigterm parallel: sleep 15; echo 9
|
||||
par_sighup ### Test SIGHUP
|
||||
par_sighup 1
|
||||
par_sighup 10
|
||||
par_sighup 2
|
||||
par_sighup 3
|
||||
par_sighup 4
|
||||
par_sighup 5
|
||||
par_sighup 6
|
||||
par_sighup 7
|
||||
par_sighup 8
|
||||
par_sighup 9
|
||||
par_sighup parallel: SIGHUP received. No new jobs will be started.
|
||||
par_sighup parallel: Waiting for these 5 jobs to finish. Send SIGTERM to stop now.
|
||||
par_sighup parallel: sleep 15; echo 10
|
||||
par_sighup parallel: sleep 15; echo 6
|
||||
par_sighup parallel: sleep 15; echo 7
|
||||
par_sighup parallel: sleep 15; echo 8
|
||||
par_sighup parallel: sleep 15; echo 9
|
||||
par_test_detected_shell ### bug #42913: Dont use $SHELL but the shell currently running
|
||||
par_test_detected_shell test_unknown_shell ash Global::shell /bin/bash
|
||||
par_test_detected_shell test_unknown_shell bash Global::shell /bin/bash
|
||||
|
|
|
@ -49,19 +49,22 @@ par_exitval_signal exitval=128+6 OK
|
|||
par_exitval_signal signal OK
|
||||
par_keeporder_roundrobin bug #50081: --keep-order --round-robin should give predictable results
|
||||
par_keeporder_roundrobin OK
|
||||
par_kill_hup ### Are children killed if GNU Parallel receives HUP? There should be no sleep at the end
|
||||
par_kill_hup bash-+-perl---2*[bash---sleep]
|
||||
par_kill_hup `-pstree
|
||||
par_kill_hup parallel: SIGHUP received. No new jobs will be started.
|
||||
par_kill_hup parallel: Waiting for these 2 jobs to finish. Send SIGTERM to stop now.
|
||||
par_kill_hup parallel: bash -c 'sleep 1 & pid=$!; wait $pid'
|
||||
par_kill_hup parallel: bash -c 'sleep 1 & pid=$!; wait $pid'
|
||||
par_kill_hup bash---pstree
|
||||
par_kill_int_twice ### Are children killed if GNU Parallel receives INT twice? There should be no sleep at the end
|
||||
par_kill_int_twice bash-+-perl---bash---sleep
|
||||
par_kill_int_twice `-pstree
|
||||
par_kill_int_twice bash---pstree
|
||||
par_kill_term_twice ### Are children killed if GNU Parallel receives TERM twice? There should be no sleep at the end
|
||||
par_kill_term_twice bash-+-perl---bash---sleep
|
||||
par_kill_term_twice `-pstree
|
||||
par_kill_term_twice parallel: SIGTERM received. No new jobs will be started.
|
||||
par_kill_term_twice parallel: Waiting for these 1 jobs to finish. Send SIGTERM again to stop now.
|
||||
par_kill_term_twice parallel: bash -c 'sleep 120 & pid=$!; wait $pid' 1
|
||||
par_kill_term_twice bash-+-perl---bash---sleep
|
||||
par_kill_term_twice `-pstree
|
||||
par_kill_term_twice bash---pstree
|
||||
par_kill_term ### Are children killed if GNU Parallel receives TERM? There should be no sleep at the end
|
||||
par_kill_term bash-+-perl---bash---sleep
|
||||
par_kill_term `-pstree
|
||||
par_kill_term bash---pstree
|
||||
par_lb_mem_usage 1
|
||||
par_lb_mem_usage 1
|
||||
par_lb_mem_usage 2
|
||||
|
@ -80,10 +83,6 @@ par_nice Check that --nice works
|
|||
par_nice load_10
|
||||
par_nice bzip2 18
|
||||
par_nice bzip2 18
|
||||
par_nice parallel: SIGTERM received. No new jobs will be started.
|
||||
par_nice parallel: Waiting for these 2 jobs to finish. Send SIGTERM again to stop now.
|
||||
par_nice parallel: bzip2 < /dev/zero
|
||||
par_nice parallel: bzip2 < /dev/zero
|
||||
par_pipe_unneeded_procs ### Test bug #34241: --pipe should not spawn unneeded processes
|
||||
par_pipe_unneeded_procs 1
|
||||
par_pipe_unneeded_procs 2
|
||||
|
|
Loading…
Reference in a new issue