diff --git a/NEWS b/NEWS index abf9774b..d6470475 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,55 @@ +20130422 + +* HPUX CPU/core detection. Thanks to Javier Tarradas. + +* CPU detection for HURD, IRIX, SCO OpenServer and (old) HPUX. + +* --ctrlc will send SIGINT to tasks running on remote computers and + thus killing them. + +* --load now uses 'ps' to see immediately see the number of running + processes instead of 'uptime' thus making --load react much faster. + +* Testing on Centos 3.9 and FreeBSD 7 revealed a lot of compability + bugs. Some of these required quite extensive changes making this + release beta quality. + +* --retries works with --onall. + +* The new --load computation now works on FreeBSD 7. + +* --nice works under tcsh. + +* GNU Parallel is officially supported in NetBSD. + http://ftp.netbsd.org/pub/pkgsrc/current/pkgsrc/parallel/parallel/README.html + +* GNU Parallel is accepted for openSUSE. + http://software.opensuse.org/package/gnu_parallel + +* GNU Parallel can be installed under Microsoft Windows (CygWin). + http://blogs.msdn.com/b/hpctrekker/archive/2013/03/30/preparing-and-uploading-datasets-for-hdinsight.aspx + +* Job advert that requires GNU Parallel competence. + http://versium.com/about/careers/ + +* Parallelizing Batch Jobs for Fun and Profit. + http://mikeseidle.com/tech/programming/2013/03/parallelizing-batch-jobs + +* Processing Transcription Start Sites(TSS) for the entire Mouse genome. + http://qbrc.swmed.edu/2013/03/gnu-parallel-speeding-up-unix-commands-and-scripts/ + +* GNU parallel is used throughout Scrimer + http://scrimer.readthedocs.org/en/latest/ + +* GNU Parallel helped making public documents searchable. + http://danpalmer.me/blog/articles/2013-04-06-unlocking-hillsborough.html + +* Identifying big movie files (German). + http://blackappsolutions.wordpress.com/2013/03/23/wenn-der-plattenplatz-knapp-wird-filme-identifizieren-die-viel-platz-belegen/ + +* Bug fixes and man page updates. + + 20130222 * --resume works with --pipe. diff --git a/README b/README index 5947b58d..ab8eabbf 100644 --- a/README +++ b/README @@ -24,13 +24,21 @@ you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs. += 10 second installation = + +Try a full installation. If that fails: a personal installation. If +that fails: a copied installation. + + wget -O - pi.dk/3 | sh -x + + = Full installation = Full installation of GNU Parallel is as simple as: - wget http://ftpmirror.gnu.org/parallel/parallel-20130410.tar.bz2 - bzip2 -dc parallel-20130410.tar.bz2 | tar xvf - - cd parallel-20130410 + wget http://ftpmirror.gnu.org/parallel/parallel-20130422.tar.bz2 + bzip2 -dc parallel-20130422.tar.bz2 | tar xvf - + cd parallel-20130422 ./configure && make && make install @@ -39,9 +47,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 http://ftpmirror.gnu.org/parallel/parallel-20130410.tar.bz2 - bzip2 -dc parallel-20130410.tar.bz2 | tar xvf - - cd parallel-20130410 + wget http://ftpmirror.gnu.org/parallel/parallel-20130422.tar.bz2 + bzip2 -dc parallel-20130422.tar.bz2 | tar xvf - + cd parallel-20130422 ./configure --prefix=$HOME && make && make install Or if your system lacks 'make' you can simply copy src/parallel diff --git a/configure b/configure index d2f92d69..09c35386 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for parallel 20130222. +# Generated by GNU Autoconf 2.68 for parallel 20130422. # # Report bugs to . # @@ -559,8 +559,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='parallel' PACKAGE_TARNAME='parallel' -PACKAGE_VERSION='20130222' -PACKAGE_STRING='parallel 20130222' +PACKAGE_VERSION='20130422' +PACKAGE_STRING='parallel 20130422' PACKAGE_BUGREPORT='bug-parallel@gnu.org' 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. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures parallel 20130222 to adapt to many kinds of systems. +\`configure' configures parallel 20130422 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1242,7 +1242,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of parallel 20130222:";; + short | recursive ) echo "Configuration of parallel 20130422:";; esac cat <<\_ACEOF @@ -1309,7 +1309,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -parallel configure 20130222 +parallel configure 20130422 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -1326,7 +1326,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 20130222, which was +It was created by parallel $as_me 20130422, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2141,7 +2141,7 @@ fi # Define the identity of the package. PACKAGE='parallel' - VERSION='20130222' + VERSION='20130422' 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 # values after options handling. ac_log=" -This file was extended by parallel $as_me 20130222, which was +This file was extended by parallel $as_me 20130422, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2766,7 +2766,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 20130222 +parallel config.status 20130422 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index f50ca535..5ae3c00d 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([parallel], [20130222], [bug-parallel@gnu.org]) +AC_INIT([parallel], [20130422], [bug-parallel@gnu.org]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ diff --git a/doc/release_new_version b/doc/release_new_version index 0a5a16b6..bd44c8e3 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -56,15 +56,22 @@ pushd == Upload == YYYYMMDD=`yyyymmdd` +cp parallel-$YYYYMMDD.tar.bz2 parallel-latest.tar.bz2 cp doc/parallel.directive parallel-$YYYYMMDD.tar.bz2.directive perl -i -pe "s/20\d\d\d\d\d\d/$YYYYMMDD/" parallel-*.tar.*directive gpg --clearsign parallel-$YYYYMMDD.tar.bz2.directive +cp doc/parallel.directive parallel-latest.tar.bz2.directive +perl -i -pe "s/20\d\d\d\d\d\d/latest/" parallel-latest.tar.*directive +gpg --clearsign --yes parallel-latest.tar.bz2.directive + YYYYMMDD=`yyyymmdd` gpg -b parallel-$YYYYMMDD.tar.bz2 +gpg -b --yes parallel-latest.tar.bz2 YYYYMMDD=`yyyymmdd` echo put parallel-$YYYYMMDD.tar.bz2{,.sig,*asc} | ncftp ftp://ftp-upload.gnu.org/incoming/ftp/ +echo put parallel-latest.tar.bz2{,.sig,*asc} | ncftp ftp://ftp-upload.gnu.org/incoming/ftp/ #echo put parallel-$YYYYMMDD.tar.bz2{,.sig,*asc} | ncftp ftp://ftp-upload.gnu.org/incoming/alpha/ == Update OpenSUSE build system == @@ -166,21 +173,26 @@ cc:Sandro Cazzaniga , Ryoichiro Suzuki , Jesse Alama -Subject: GNU Parallel 20130422 ('Loikaw') released +Subject: GNU Parallel 20130422 ('Boston') released -GNU Parallel 20130422 ('Loikaw') has been released. It is +GNU Parallel 20130422 ('Boston') has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/ New in this release: * HPUX CPU/core detection. Thanks to Javier Tarradas. +* CPU detection for HURD, IRIX, SCO OpenServer and (old) HPUX. + +* --ctrlc will send SIGINT to tasks running on remote computers and + thus killing them. + * --load now uses 'ps' to see immediately see the number of running processes instead of 'uptime' thus making --load react much faster. -* Testing on Centos 3.9 revealed a lot of compability bugs. Some of - these required quite extensive changes making this release beta - quality. +* Testing on Centos 3.9 and FreeBSD 7 revealed a lot of compability + bugs. Some of these required quite extensive changes making this + release beta quality. * --retries works with --onall. diff --git a/src/niceload b/src/niceload index ab63bf91..d34aa697 100755 --- a/src/niceload +++ b/src/niceload @@ -24,7 +24,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20130222; +$Global::version = 20130422; Getopt::Long::Configure("bundling","require_order"); get_options_from_array(\@ARGV) || die_usage(); if($opt::version) { diff --git a/src/parallel b/src/parallel index 9200bbb5..7fe44a39 100755 --- a/src/parallel +++ b/src/parallel @@ -646,7 +646,7 @@ sub get_options_from_array { sub parse_options { # Returns: N/A # Defaults: - $Global::version = 20130408; + $Global::version = 20130422; $Global::progname = 'parallel'; $Global::infinity = 2**31; $Global::debug = 0; diff --git a/src/parallel.pod b/src/parallel.pod index 23acfc68..fad59dee 100644 --- a/src/parallel.pod +++ b/src/parallel.pod @@ -345,9 +345,9 @@ Implies B<--semaphore>. Print the BibTeX entry for GNU B. -=item B<--block> I (alpha testing) +=item B<--block> I (beta testing) -=item B<--block-size> I (alpha testing) +=item B<--block-size> I (beta testing) Size of block in bytes. The size can be postfixed with K, M, G, T, P, k, m, g, t, or p which would multiply the size with 1024, 1048576, @@ -363,7 +363,7 @@ I defaults to 1M. See B<--pipe> for use of this. -=item B<--cleanup> +=item B<--cleanup> (alpha testing) Remove transferred files. B<--cleanup> will remove the transferred files on the remote computer after processing is done. @@ -397,6 +397,11 @@ I is a Perl Regular Expression: http://perldoc.perl.org/perlre.html +=item B<--ctrlc> (alpha testing) + +Sends SIGINT to tasks running on remote computers thus killing them. + + =item B<--delimiter> I =item B<-d> I @@ -427,7 +432,7 @@ occurs as a line of input, the rest of the input is ignored. If neither B<-E> nor B<-e> is used, no end of file string is used. -=item B<--delay> I (alpha testing) +=item B<--delay> I (beta testing) Delay starting next job I seconds. GNU B will pause I seconds after starting each job. I can be less than 1 @@ -567,7 +572,7 @@ specified, and for B<-I>{} otherwise. This option is deprecated; use B<-I> instead. -=item B<--joblog> I (alpha testing) +=item B<--joblog> I (beta testing) Logfile for executed jobs. Save a list of the executed jobs to I in the following TAB separated format: sequence number, @@ -665,7 +670,7 @@ to see the difference: =item B<-L> I -When used with B<--pipe>: Read records of I (alpha testing). +When used with B<--pipe>: Read records of I (beta testing). When used otherwise: Use at most I nonblank input lines per command line. Trailing blanks cause an input line to be logically @@ -693,16 +698,12 @@ B<-l 0> is an alias for B<-l 1>. Implies B<-X> unless B<-m>, B<--xargs>, or B<--pipe> is set. -=item B<--load> I +=item B<--load> I (alpha testing) -Do not start new jobs on a given computer unless the load is less than -I. I uses the same syntax as B<--jobs>, so I<100%> -for one per CPU is a valid setting. Only difference is 0 which is -interpreted as 0.01. - -The load average is only sampled every 10 seconds using B to -avoid stressing small computers. Only the first (1 minute) load is -used. +Do not start new jobs on a given computer unless the number of running +processes on the computer is less than I. I uses +the same syntax as B<--jobs>, so I<100%> for one per CPU is a valid +setting. Only difference is 0 which is interpreted as 0.01. =item B<--controlmaster> (experimental) @@ -988,9 +989,9 @@ it to the command. Only used with B<--pipe>. -=item B<--results> I (alpha testing) +=item B<--results> I (beta testing) -=item B<--res> I (alpha testing) +=item B<--res> I (beta testing) Save the output into files. The files will be stored in a directory tree rooted at I. Within this directory tree, each command will result @@ -1032,7 +1033,7 @@ will generate the files: See also B<--files>, B<--header>, B<--joblog>. -=item B<--resume> (alpha testing) +=item B<--resume> (beta testing) Resumes from the last unfinished job. By reading B<--joblog> GNU B will figure out the last unfinished job and continue from @@ -1043,7 +1044,7 @@ remain unchanged; otherwise GNU B may run wrong commands. See also: B<--joblog>, B<--resume-failed>. -=item B<--resume-failed> (alpha testing) +=item B<--resume-failed> (beta testing) Retry all failed and resume from the last unfinished job. By reading B<--joblog> GNU B will figure out the failed jobs and run @@ -1064,7 +1065,7 @@ re-use the computers. This is useful if some jobs fail for no apparent reason (such as network failure). -=item B<--return> I +=item B<--return> I (alpha testing) Transfer files from remote computers. B<--return> is used with B<--sshlogin> when the arguments are files on the remote computers. When @@ -1191,7 +1192,7 @@ Like this: B<--shebang> must be set as the first option. -=item B<--shebang-wrap> (beta testing) +=item B<--shebang-wrap> GNU B can parallelize scripts by wrapping the shebang line. If the program can be run like this: @@ -1398,7 +1399,7 @@ Print the job to be run on stderr (standard error). See also B<-v> and B<-p>. -=item B<--transfer> +=item B<--transfer> (alpha testing) Transfer files to remote computers. B<--transfer> is used with B<--sshlogin> when the arguments are files and should be transferred to @@ -1510,9 +1511,9 @@ Use B<-v> B<-v> to print the wrapping ssh command when running remotely. Print the version GNU B and exit. -=item B<--workdir> I +=item B<--workdir> I (alpha testing) -=item B<--wd> I +=item B<--wd> I (alpha testing) Files transferred using B<--transfer> and B<--return> will be relative to I on remote computers, and the command will be executed in diff --git a/src/sql b/src/sql index a6b85880..bce090d4 100755 --- a/src/sql +++ b/src/sql @@ -556,7 +556,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20130222; + $Global::version = 20130422; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/testsuite/tests-to-run/parallel-polarhome.sh b/testsuite/tests-to-run/parallel-polarhome.sh index ac87c221..677d1d00 100644 --- a/testsuite/tests-to-run/parallel-polarhome.sh +++ b/testsuite/tests-to-run/parallel-polarhome.sh @@ -1,6 +1,6 @@ #!/bin/bash -P="scosysv centos dragonfly netbsd freebsd solaris openbsd debian aix hpux redhat qnx irix suse minix openindiana mandriva unixware miros raspberrypi hurd ultrix ubuntu" +P="scosysv centos dragonfly netbsd freebsd solaris openbsd debian aix hpux qnx irix suse minix openindiana mandriva unixware miros raspberrypi hurd ultrix ubuntu redhat" P="scosysv centos dragonfly netbsd freebsd solaris openbsd debian aix hpux qnx irix suse minix openindiana mandriva unixware miros raspberrypi hurd ultrix ubuntu" #P="scosysv hpux qnx irix openindiana ultrix" POLAR=`parallel echo {}.polarhome.com ::: $P` @@ -12,7 +12,7 @@ stdout parallel -kj0 ssh {} mkdir -p bin ::: $POLAR >/dev/null & stdout rsync -a `which parallel` redhat.polarhome.com:bin/ stdout ssh redhat.polarhome.com \ chmod 755 bin/parallel\; \ - bin/parallel -kj0 ssh {} rm -f bin/parallel\\\;scp bin/parallel {}:bin/ ::: $POLAR + bin/parallel --tag -kj0 -t --delay 0.2 ssh {} rm -f bin/parallel\\\;scp bin/parallel {}:bin/ ::: $POLAR # Now test echo 'Run the test on polarhome machines' stdout parallel --argsep // -k --tag ssh {} bin/parallel -k echo Works on ::: {} // $POLAR diff --git a/testsuite/wanted-results/parallel-polarhome b/testsuite/wanted-results/parallel-polarhome index fbe42762..5528175b 100644 --- a/testsuite/wanted-results/parallel-polarhome +++ b/testsuite/wanted-results/parallel-polarhome @@ -126,14 +126,6 @@ Welcome to unixware ...member of polarhome.com realm SCO UnixWare 7.1.4 Welcome to unixware ...member of polarhome.com realm - -MirBSD/i386 -Welcome to MirOS ...member of polarhome.com realm - - -MirBSD/i386 -Welcome to MirOS ...member of polarhome.com realm - Debian GNU/Linux 6.0 RaspberryPi/bcm2708 reference 2.0 Welcome to raspberrypi ...member of polarhome.com realm @@ -169,8 +161,8 @@ centos.polarhome.com Welcome to CentOS ...member of polarhome.com realm centos.polarhome.com centos.polarhome.com Works on centos.polarhome.com dragonfly.polarhome.com -dragonfly.polarhome.com MirBSD/i386 -dragonfly.polarhome.com Welcome to MirOS ...member of polarhome.com realm +dragonfly.polarhome.com DragonFly v2.10.1.1 +dragonfly.polarhome.com Welcome to DragonFly ...member of polarhome.com realm dragonfly.polarhome.com dragonfly.polarhome.com Works on dragonfly.polarhome.com netbsd.polarhome.com @@ -237,14 +229,9 @@ unixware.polarhome.com SCO UnixWare 7.1.4 unixware.polarhome.com Welcome to unixware ...member of polarhome.com realm unixware.polarhome.com unixware.polarhome.com Works on unixware.polarhome.com -miros.polarhome.com -miros.polarhome.com MirBSD/i386 -miros.polarhome.com Welcome to MirOS ...member of polarhome.com realm -miros.polarhome.com -miros.polarhome.com Works on miros.polarhome.com raspberrypi.polarhome.com -raspberrypi.polarhome.com MirBSD/i386 -raspberrypi.polarhome.com Welcome to MirOS ...member of polarhome.com realm +raspberrypi.polarhome.com CentOS release 5.6 (Final) +raspberrypi.polarhome.com Welcome to CentOS ...member of polarhome.com realm raspberrypi.polarhome.com raspberrypi.polarhome.com Works on raspberrypi.polarhome.com hurd.polarhome.com diff --git a/testsuite/wanted-results/sql03 b/testsuite/wanted-results/sql03 index e405d2c9..abd3e8a9 100644 --- a/testsuite/wanted-results/sql03 +++ b/testsuite/wanted-results/sql03 @@ -46,7 +46,7 @@ Error: sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] ### Test dburl : Error: -: is not defined in /home/tange/.sql/aliases /home/tange/.dburl.aliases /etc/sql/aliases /usr/local/bin/dburl.aliases /usr/local/bin/dburl.aliases.dist +: is not defined in /home/tange/.sql/aliases /home/tange/.dburl.aliases /etc/sql/aliases /home/tange/bin/dburl.aliases /home/tange/bin/dburl.aliases.dist sql [-hnr] [--table-size] [--db-size] [-p pass-through] [-s string] dburl [command] ### Test oracle with multiple arguments on the command line