parallel: code cleanup.

This commit is contained in:
Ole Tange 2016-08-23 00:08:10 +02:00
parent ec9e90e529
commit 9689682674
9 changed files with 106 additions and 49 deletions

12
NEWS
View file

@ -1,5 +1,17 @@
20160822
* --tmuxpane opens jobs in panes in tmux. Useful if you want to
monitor progress of less than 100 simultaneous jobs.
* --linebuffer now treats \r as line ending, too.
* Perl changes forces use of floats to be given with leading zero, so
0.1 and not .1
* --xapply renamed to --link.
* Support for pdksh will fade until someone packages it for Ubuntu 16.
* GNU Parallel was cited in: Exome sequencing of geographically
diverse barley landraces and wild relatives gives insights into
environmental adaptation

View file

@ -4,7 +4,7 @@
Check that documentation is updated (compare to web):
Fixet for 20160222
Fixet for 20160922
git diff last-release-commit
Unmodified beta since last version => production
Unmodified alpha since last version => beta
@ -221,21 +221,19 @@ cc:Tim Cuthbertson <tim3d.junk@gmail.com>,
Subject: GNU Parallel 20160822 ('Og Nomekop') released <<[stable]>>
GNU Parallel 20160822 ('Og Nomekop') <<[stable]>> has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/
GNU Parallel 20160822 ('Og Nomekop') <<[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.>>
Haiku of the month:
<<>>
-- Ole Tange
Want to monitor
many job outputs at once:
--tmuxpane
--ole-tange
New in this release:
* GNU Parallel was cited in: Exome sequencing of geographically diverse barley landraces and wild relatives gives insights into environmental adaptation http://www.nature.com/ng/journal/vaop/ncurrent/full/ng.3612.html?WT.feed_name=subjects_genetics#references
* GNU Parallel was cited in: Vision-Enhanced Lidar Odometry and Mapping https://www.ri.cmu.edu/pub_files/2016/8/DLL-thesis.pdf
* <<Possibly http://link.springer.com/chapter/10.1007%2F978-3-319-22053-6_46>>
* <<Possibly http://link.springer.com/article/10.1007/s12021-015-9290-5>>
@ -268,13 +266,7 @@ for Big Data Applications https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumb
* <<Possible: http://link.springer.com/article/10.1007/s12021-015-9290-5 http://link.springer.com/protocol/10.1007/978-1-4939-3578-9_14>>
* Easy parallelization with GNU parallel http://mpharrigan.com/2016/08/02/parallel.html
* Facebook V: Predicting Check Ins, Winner's Interview: 2nd Place, Markus Kliegl http://blog.kaggle.com/2016/08/02/facebook-v-predicting-check-ins-winners-interview-2nd-place-markus-kliegl/
* Parallel import http://www.manitou-mail.org/blog/2016/07/parallel-import/
* Large file batch processing using NodeJs and GNU Parallel http://www.zacorndorff.com/2016/07/27/large-file-batch-processing-using-nodejs-and-gnu-parallel/
* Chown Ceph OSD data directory using GNU Parallel http://blog.widodh.nl/2016/08/chown-ceph-osd-data-directory-using-gnu-parallel/
* Bug fixes and man page updates.

View file

@ -24,7 +24,7 @@
use strict;
use Getopt::Long;
$Global::progname="niceload";
$Global::version = 20160822;
$Global::version = 20160823;
Getopt::Long::Configure("bundling","require_order");
get_options_from_array(\@ARGV) || die_usage();
if($opt::version) {

View file

@ -1210,7 +1210,7 @@ sub check_invalid_option_combinations {
sub init_globals {
# Defaults:
$Global::version = 20160822;
$Global::version = 20160823;
$Global::progname = 'parallel';
$Global::infinity = 2**31;
$Global::debug = 0;
@ -1745,29 +1745,24 @@ sub read_args_from_command_line {
push @group, $arg;
}
}
if($group_sep eq $Global::arg_sep."+") {
# :::+
push @opt::linkinputsource, 1;
} elsif($group_sep eq $Global::arg_file_sep."+") {
# ::::+
for(@group) {
push @opt::linkinputsource, 1;
}
my $is_linked = ($group_sep =~ /\+$/) ? 1 : 0;
my $is_file = ($group_sep eq $Global::arg_file_sep
or
$group_sep eq $Global::arg_file_sep."+");
if($is_file) {
# :::: / ::::+
push @opt::linkinputsource, map { $is_linked } @group;
} else {
push @opt::linkinputsource, 0;
# ::: / :::+
push @opt::linkinputsource, $is_linked;
}
if($group_sep eq $Global::arg_file_sep
or
$group_sep eq $Global::arg_file_sep."+"
if($is_file
or ($opt::internal_pipe_means_argfiles and $opt::pipe)
) {
# Group of file names on the command line.
# Append args into -a
push @opt::a, @group;
} elsif($group_sep eq $Global::arg_sep
or
$group_sep eq $Global::arg_sep."+") {
} else {
# Group of arguments on the command line.
# Put them into a file.
# Create argfile
@ -1779,11 +1774,10 @@ sub read_args_from_command_line {
exit_if_disk_full();
# Append filehandle to -a
push @opt::a, $outfh;
} else {
::die_bug("Unknown command line group: $group_sep");
}
if(defined($arg)) {
# $arg is ::: or ::::
# $arg is ::: :::+ :::: or ::::+
# so there is another group
redo;
} else {
# $arg is undef -> @ARGV empty

View file

@ -1004,9 +1004,9 @@ limiting factor.
See also: B<--group> B<--ungroup>
=item B<--xapply> (alpha testing)
=item B<--xapply> (beta testing)
=item B<--link> (alpha testing)
=item B<--link> beta testing)
Link input sources. Read multiple input sources like B<xapply>. If
multiple input sources are given, one argument will be read from each
@ -2105,7 +2105,7 @@ Use B<tmux> for output. Start a B<tmux> session and run each job in a
window in that session. No other output will be produced.
=item B<--tmuxpane> (alpha testing)
=item B<--tmuxpane> (beta testing)
Use B<tmux> for output but put output into panes in the first window.
Useful if you want to monitor the progress of less than 100 concurrent

View file

@ -566,7 +566,7 @@ $Global::Initfile && unlink $Global::Initfile;
exit ($err);
sub parse_options {
$Global::version = 20160822;
$Global::version = 20160823;
$Global::progname = 'sql';
# This must be done first as this may exec myself

View file

@ -54,10 +54,11 @@ prereqremote: installparallel startvm
startvm:
# Make sure we can reach the virtual machines
#sudo ifconfig wlp13s0:0 192.168.1.72 || sudo ifconfig wlan0:0 192.168.1.72
sudo ifconfig enp14s0 192.168.1.72 || sudo ifconfig eth0:0 192.168.1.72
sudo ifconfig enp14s0:0 192.168.1.72 || sudo ifconfig eth0:0 192.168.1.72
# If they are already running: Don't fail
VBoxManage startvm CentOS3-root:centos3 || VBoxManage controlvm CentOS3-root:centos3 resume || true
VBoxManage startvm RedHat9-root:redhat9 || VBoxManage controlvm RedHat9-root:redhat9 resume || true
parallel ping -c 3 ::: redhat9.tange.dk centos3.tange.dk oracle11.tange.dk
stopvm:
# || true - because this should not fail if the VM is not running

View file

@ -635,7 +635,9 @@ echo '**'
echo '### bug #48745: :::+ bug'
parallel -k echo ::: 11 22 33 ::::+ <(seq 3) <(seq 21 23) ::: c d e :::+ cc dd ee
parallel -k echo ::: 11 22 33 ::::+ <(seq 3) <(seq 21 23) ::: a b c :::+ aa bb cc
parallel -k echo :::: <(seq 3) <(seq 21 23) :::+ a b c ::: aa bb cc
parallel -k echo :::: <(seq 3) :::: <(seq 21 23) :::+ a b c ::: aa bb cc
echo '**'

View file

@ -1691,16 +1691,72 @@ echo '**'
**
echo '### bug #48745: :::+ bug'
### bug #48745: :::+ bug
parallel -k echo ::: 11 22 33 ::::+ <(seq 3) <(seq 21 23) ::: c d e :::+ cc dd ee
parallel -k echo ::: 11 22 33 ::::+ <(seq 3) <(seq 21 23) ::: a b c :::+ aa bb cc
11 1 21 a aa
11 1 21 b bb
11 1 21 c cc
11 1 21 d dd
11 1 21 e ee
22 2 22 a aa
22 2 22 b bb
22 2 22 c cc
22 2 22 d dd
22 2 22 e ee
33 3 23 a aa
33 3 23 b bb
33 3 23 c cc
33 3 23 d dd
33 3 23 e ee
parallel -k echo :::: <(seq 3) <(seq 21 23) :::+ a b c ::: aa bb cc
1 21 a aa
1 21 a bb
1 21 a cc
1 22 b aa
1 22 b bb
1 22 b cc
1 23 c aa
1 23 c bb
1 23 c cc
2 21 a aa
2 21 a bb
2 21 a cc
2 22 b aa
2 22 b bb
2 22 b cc
2 23 c aa
2 23 c bb
2 23 c cc
3 21 a aa
3 21 a bb
3 21 a cc
3 22 b aa
3 22 b bb
3 22 b cc
3 23 c aa
3 23 c bb
3 23 c cc
parallel -k echo :::: <(seq 3) :::: <(seq 21 23) :::+ a b c ::: aa bb cc
1 21 a aa
1 21 a bb
1 21 a cc
1 22 b aa
1 22 b bb
1 22 b cc
1 23 c aa
1 23 c bb
1 23 c cc
2 21 a aa
2 21 a bb
2 21 a cc
2 22 b aa
2 22 b bb
2 22 b cc
2 23 c aa
2 23 c bb
2 23 c cc
3 21 a aa
3 21 a bb
3 21 a cc
3 22 b aa
3 22 b bb
3 22 b cc
3 23 c aa
3 23 c bb
3 23 c cc
echo '**'
**
### 1 .par file from --files expected