Released as 20120622 ('Chiang Mai')

This commit is contained in:
Ole Tange 2012-06-23 07:34:35 +02:00
parent b248c7b05c
commit 045ed19142
11 changed files with 144 additions and 50 deletions

39
NEWS
View file

@ -1,3 +1,42 @@
20120622
* '-L n --pipe' will use records of n lines. This is useful when
processing data that have fixed records with a fixed number of
lines (e.g. fastq).
* --filter-hosts will remove down hosts. For each remote host: check
that login through ssh works. If not: do not use this host.
Currently you can not put --filter-hosts in a profile, $PARALLEL,
/etc/parallel/config or similar. This is because GNU Parallel uses
GNU Parallel to compute this, so you will get an infinite loop. This
will likely be fixed in a later release.
* --pipe now uses fork() instead of busy wait. The performance should
be better on computers with >10 cores while remaining the same on
computers with few cores.
* GNU Parallel will be represented at Chiang Mai Bar Camp
http://barcampchiangmai.org/
* Indexing Big Data on Amazon AWS: The Screencast
(Check out his T-shirt at 18:40-21:00)
http://www.opensourceconnections.com/2012/06/06/indexing-big-data-on-amazon-aws-screencast/
* biotoolbox uses GNU Parallel.
https://code.google.com/p/biotoolbox/wiki/Pod_novo_wrapper
* Spiceweasel uses GNU Parallel.
https://github.com/mattray/spiceweasel
* GNU Parallel part of The Administrators Challenge
http://challenge.twistedrack.com/questions/qs3.php
* Finding Oldest Firefox Code using GNU Parallel
http://gregoryszorc.com/blog/2012/06/18/finding-oldest-firefox-code/
* Bug fixes (quite a few for remote job running) and man page updates.
20120522 20120522
* Timings in --joblog now with milliseconds. * Timings in --joblog now with milliseconds.

20
configure vendored
View file

@ -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.68 for parallel 20120524. # Generated by GNU Autoconf 2.68 for parallel 20120622.
# #
# Report bugs to <bug-parallel@gnu.org>. # Report bugs to <bug-parallel@gnu.org>.
# #
@ -559,8 +559,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='parallel' PACKAGE_NAME='parallel'
PACKAGE_TARNAME='parallel' PACKAGE_TARNAME='parallel'
PACKAGE_VERSION='20120524' PACKAGE_VERSION='20120622'
PACKAGE_STRING='parallel 20120524' PACKAGE_STRING='parallel 20120622'
PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_BUGREPORT='bug-parallel@gnu.org'
PACKAGE_URL='' PACKAGE_URL=''
@ -1176,7 +1176,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 20120524 to adapt to many kinds of systems. \`configure' configures parallel 20120622 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1242,7 +1242,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 20120524:";; short | recursive ) echo "Configuration of parallel 20120622:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1309,7 +1309,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 20120524 parallel configure 20120622
generated by GNU Autoconf 2.68 generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc. Copyright (C) 2010 Free Software Foundation, Inc.
@ -1326,7 +1326,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 20120524, which was It was created by parallel $as_me 20120622, which was
generated by GNU Autoconf 2.68. Invocation command line was generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@ $ $0 $@
@ -2141,7 +2141,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='parallel' PACKAGE='parallel'
VERSION='20120524' VERSION='20120622'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -2704,7 +2704,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 20120524, which was This file was extended by parallel $as_me 20120622, which was
generated by GNU Autoconf 2.68. Invocation command line was generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -2766,7 +2766,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 20120524 parallel config.status 20120622
configured by $0, generated by GNU Autoconf 2.68, configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View file

@ -1,4 +1,4 @@
AC_INIT([parallel], [20120524], [bug-parallel@gnu.org]) AC_INIT([parallel], [20120622], [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([

View file

@ -171,21 +171,48 @@ cc:Sandro Cazzaniga <kharec@mandriva.org>,
Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>, Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>,
Jesse Alama <jesse.alama@gmail.com> Jesse Alama <jesse.alama@gmail.com>
Subject: GNU Parallel 20120622 ('Thailand') released Subject: GNU Parallel 20120622 ('Chiang Mai') released
GNU Parallel 20120622 ('Thailand') has been released. It is GNU Parallel 20120622 ('Chiang Mai') has been released. It is
available for download at: http://ftp.gnu.org/gnu/parallel/ available for download at: http://ftp.gnu.org/gnu/parallel/
New in this release: New in this release:
* biotoolbox uses GNU Parallel. * '-L n --pipe' will use records of n lines. This is useful when
https://code.google.com/p/biotoolbox/wiki/Pod_novo_wrapper processing data that have fixed records with a fixed number of
lines (e.g. fastq).
* --filter-hosts will remove down hosts. For each remote host: check
that login through ssh works. If not: do not use this host.
Currently you can not put --filter-hosts in a profile, $PARALLEL,
/etc/parallel/config or similar. This is because GNU Parallel uses
GNU Parallel to compute this, so you will get an infinite loop. This
will likely be fixed in a later release.
* --pipe now uses fork() instead of busy wait. The performance should
be better on computers with >10 cores while remaining the same on
computers with few cores.
* GNU Parallel will be represented at Chiang Mai Bar Camp
http://barcampchiangmai.org/
* Indexing Big Data on Amazon AWS: The Screencast * Indexing Big Data on Amazon AWS: The Screencast
(Check out his T-shirt at 18:40-21:00) (Check out his T-shirt at 18:40-21:00)
http://www.opensourceconnections.com/2012/06/06/indexing-big-data-on-amazon-aws-screencast/ http://www.opensourceconnections.com/2012/06/06/indexing-big-data-on-amazon-aws-screencast/
* Bug fixes and man page updates. * biotoolbox uses GNU Parallel.
https://code.google.com/p/biotoolbox/wiki/Pod_novo_wrapper
* Spiceweasel uses GNU Parallel.
https://github.com/mattray/spiceweasel
* GNU Parallel part of The Administrators Challenge
http://challenge.twistedrack.com/questions/qs3.php
* Finding Oldest Firefox Code using GNU Parallel
http://gregoryszorc.com/blog/2012/06/18/finding-oldest-firefox-code/
* Bug fixes (quite a few for remote job running) and man page updates.
= About GNU Parallel = = About GNU Parallel =

View file

@ -1,6 +1,6 @@
Summary: Shell tool for executing jobs in parallel Summary: Shell tool for executing jobs in parallel
Name: parallel Name: parallel
Version: 20120522 Version: 20120622
Release: 1 Release: 1
License: GPL License: GPL
Group: Productivity/File utilities Group: Productivity/File utilities
@ -12,21 +12,27 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
%description %description
GNU Parallel is a shell tool for executing jobs in parallel using one GNU Parallel is a shell tool for executing jobs in parallel using one
or more computers. A job is typically a single command or a small or more computers. A job can be a single command or a small script
script that has to be run for each of the lines in the input. The that has to be run for each of the lines in the input. The typical
typical input is a list of files, a list of hosts, a list of users, or input is a list of files, a list of hosts, a list of users, a list of
a list of tables. 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 today you will find GNU Parallel very easy to use. If 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 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 jobs in replace most of the loops and make them run faster by running several
parallel. If you use ppss or pexec you will find GNU Parallel will jobs in parallel.
often make the command easier to read.
GNU Parallel also makes sure output from the commands is the same GNU Parallel makes sure output from the commands is the same output as
output as you would get had you run the commands sequentially. This you would get had you run the commands sequentially. This makes it
makes it possible to use output from GNU Parallel as input for other possible to use output from GNU Parallel as input for other programs.
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 %prep
if [ "${RPM_BUILD_ROOT}x" == "x" ]; then if [ "${RPM_BUILD_ROOT}x" == "x" ]; then

View file

@ -24,7 +24,7 @@
use strict; use strict;
use Getopt::Long; use Getopt::Long;
$Global::progname="niceload"; $Global::progname="niceload";
$Global::version = 20120524; $Global::version = 20120622;
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) {

View file

@ -301,7 +301,7 @@ sub spreadstdin {
} elsif($Global::max_lines) { } elsif($Global::max_lines) {
# Read $Global::max_lines lines # Read $Global::max_lines lines
eof($in) and last piperead; eof($in) and last piperead;
for(my $t = 0; !eof($in) and for(my $t = 0; !eof($in) and
substr($buf,length $buf,0) = <$in> and $t < $Global::max_lines; substr($buf,length $buf,0) = <$in> and $t < $Global::max_lines;
$t++) {} $t++) {}
} else { } else {
@ -485,7 +485,7 @@ sub options_hash {
"tagstring=s" => \$::opt_tagstring, "tagstring=s" => \$::opt_tagstring,
"onall" => \$::opt_onall, "onall" => \$::opt_onall,
"nonall" => \$::opt_nonall, "nonall" => \$::opt_nonall,
"filter-hosts" => \$::opt_filter_hosts, "filter-hosts|filterhosts|filter-host" => \$::opt_filter_hosts,
"sshlogin|S=s" => \@::opt_sshlogin, "sshlogin|S=s" => \@::opt_sshlogin,
"sshloginfile|slf=s" => \@::opt_sshloginfile, "sshloginfile|slf=s" => \@::opt_sshloginfile,
"controlmaster|M" => \$::opt_controlmaster, "controlmaster|M" => \$::opt_controlmaster,
@ -584,7 +584,7 @@ sub get_options_from_array {
sub parse_options { sub parse_options {
# Returns: N/A # Returns: N/A
# Defaults: # Defaults:
$Global::version = 20120614; $Global::version = 20120622;
$Global::progname = 'parallel'; $Global::progname = 'parallel';
$Global::infinity = 2**31; $Global::infinity = 2**31;
$Global::debug = 0; $Global::debug = 0;

View file

@ -462,6 +462,17 @@ See also: B<--bg>, B<man sem>
Implies B<--semaphore>. Implies B<--semaphore>.
=item B<--filter-hosts> (alpha testing)
Remove down hosts. For each remote host: check that login through ssh
works. If not: do not use this host.
Currently you can <i>not</i> put B<--filter-hosts> in a profile,
$PARALLEL, /etc/parallel/config or similar. This is because GNU
B<parallel> uses GNU B<parallel> to compute this, so you will get an
infinite loop. This will likely be fixed in a later release.
=item B<--gnu> =item B<--gnu>
Behave like GNU B<parallel>. If B<--tollef> and B<--gnu> are both set, Behave like GNU B<parallel>. If B<--tollef> and B<--gnu> are both set,
@ -634,7 +645,7 @@ to see the difference:
parallel -j4 sleep {}\; echo {} ::: 2 1 4 3 parallel -j4 sleep {}\; echo {} ::: 2 1 4 3
parallel -j4 -k sleep {}\; echo {} ::: 2 1 4 3 parallel -j4 -k sleep {}\; echo {} ::: 2 1 4 3
=item B<-L> I<max-lines> =item B<-L> I<max-lines> (alpha testing)
When used with B<--pipe>: Read records of I<max-lines>. When used with B<--pipe>: Read records of I<max-lines>.
@ -1221,14 +1232,14 @@ different dir for the files. Setting B<--tmpdir> is equivalent to
setting $TMPDIR. setting $TMPDIR.
=item B<--timeout> I<sec> =item B<--timeout> I<sec> (alpha testing)
Time out for command. If the command runs for longer than I<sec> Time out for command. If the command runs for longer than I<sec>
seconds it will get killed with SIGTERM, followed by SIGTERM 200 ms seconds it will get killed with SIGTERM, followed by SIGTERM 200 ms
later, followed by SIGKILL 200 ms later. later, followed by SIGKILL 200 ms later.
=item B<--tollef> =item B<--tollef> (alpha testing)
Make GNU B<parallel> behave more like Tollef's parallel command. It Make GNU B<parallel> behave more like Tollef's parallel command. It
activates B<-u>, B<-q>, and B<--arg-sep -->. It also causes B<-l> to activates B<-u>, B<-q>, and B<--arg-sep -->. It also causes B<-l> to
@ -1434,9 +1445,9 @@ Compare these two:
See also B<--header>. See also B<--header>.
=item B<--shebang> =item B<--shebang> (alpha testing)
=item B<--hashbang> =item B<--hashbang> (alpha testing)
GNU B<Parallel> can be called as a shebang (#!) command as the first line of a script. Like this: GNU B<Parallel> can be called as a shebang (#!) command as the first line of a script. Like this:

View file

@ -489,6 +489,17 @@ See also: @strong{--bg}, @strong{man sem}
Implies @strong{--semaphore}. Implies @strong{--semaphore}.
@item @strong{--filter-hosts} (alpha testing)
@anchor{@strong{--filter-hosts} (alpha testing)}
Remove down hosts. For each remote host: check that login through ssh
works. If not: do not use this host.
Currently you can <i>not</i> put @strong{--filter-hosts} in a profile,
$PARALLEL, /etc/parallel/config or similar. This is because GNU
@strong{parallel} uses GNU @strong{parallel} to compute this, so you will get an
infinite loop. This will likely be fixed in a later release.
@item @strong{--gnu} @item @strong{--gnu}
@anchor{@strong{--gnu}} @anchor{@strong{--gnu}}
@ -685,8 +696,8 @@ to see the difference:
parallel -j4 -k sleep {}\; echo {} ::: 2 1 4 3 parallel -j4 -k sleep {}\; echo {} ::: 2 1 4 3
@end verbatim @end verbatim
@item @strong{-L} @emph{max-lines} @item @strong{-L} @emph{max-lines} (alpha testing)
@anchor{@strong{-L} @emph{max-lines}} @anchor{@strong{-L} @emph{max-lines} (alpha testing)}
When used with @strong{--pipe}: Read records of @emph{max-lines}. When used with @strong{--pipe}: Read records of @emph{max-lines}.
@ -1300,15 +1311,15 @@ into temporary files in /tmp. By setting @strong{--tmpdir} you can use a
different dir for the files. Setting @strong{--tmpdir} is equivalent to different dir for the files. Setting @strong{--tmpdir} is equivalent to
setting $TMPDIR. setting $TMPDIR.
@item @strong{--timeout} @emph{sec} @item @strong{--timeout} @emph{sec} (alpha testing)
@anchor{@strong{--timeout} @emph{sec}} @anchor{@strong{--timeout} @emph{sec} (alpha testing)}
Time out for command. If the command runs for longer than @emph{sec} Time out for command. If the command runs for longer than @emph{sec}
seconds it will get killed with SIGTERM, followed by SIGTERM 200 ms seconds it will get killed with SIGTERM, followed by SIGTERM 200 ms
later, followed by SIGKILL 200 ms later. later, followed by SIGKILL 200 ms later.
@item @strong{--tollef} @item @strong{--tollef} (alpha testing)
@anchor{@strong{--tollef}} @anchor{@strong{--tollef} (alpha testing)}
Make GNU @strong{parallel} behave more like Tollef's parallel command. It Make GNU @strong{parallel} behave more like Tollef's parallel command. It
activates @strong{-u}, @strong{-q}, and @strong{--arg-sep --}. It also causes @strong{-l} to activates @strong{-u}, @strong{-q}, and @strong{--arg-sep --}. It also causes @strong{-l} to
@ -1529,11 +1540,11 @@ Compare these two:
See also @strong{--header}. See also @strong{--header}.
@item @strong{--shebang} @item @strong{--shebang} (alpha testing)
@anchor{@strong{--shebang}} @anchor{@strong{--shebang} (alpha testing)}
@item @strong{--hashbang} @item @strong{--hashbang} (alpha testing)
@anchor{@strong{--hashbang}} @anchor{@strong{--hashbang} (alpha testing)}
GNU @strong{Parallel} can be called as a shebang (#!) command as the first line of a script. Like this: GNU @strong{Parallel} can be called as a shebang (#!) command as the first line of a script. Like this:

View file

@ -556,7 +556,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err); exit ($err);
sub parse_options { sub parse_options {
$Global::version = 20120524; $Global::version = 20120622;
$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

View file

@ -18,7 +18,7 @@ echo '### bug #34422: parallel -X --eta crashes with div by zero'
seq 2 | stdout parallel -X --eta echo seq 2 | stdout parallel -X --eta echo
echo '### --timeout on remote machines' echo '### --timeout on remote machines'
parallel -j0 --timeout 4 --onall -S localhost,parallel@parallel-server1 'sleep {}; echo slept {}' ::: 1 8 9 ; echo jobs failed: $? parallel -j0 --timeout 6 --onall -S localhost,parallel@parallel-server1 'sleep {}; echo slept {}' ::: 1 8 9 ; echo jobs failed: $?
echo '### --pipe without command' echo '### --pipe without command'
seq -w 10 | stdout parallel --pipe seq -w 10 | stdout parallel --pipe