From 81ff568ce7d357d5c7839129b97938c48657a4c2 Mon Sep 17 00:00:00 2001
From: Ole Tange
Date: Fri, 18 Jul 2014 16:18:44 +0200
Subject: [PATCH] parallel: --tmux works for remote running jobs.
---
doc/release_new_version | 6 +++
src/parallel | 35 +++++++++----
src/parallel_tutorial.1 | 101 ++++++++++++++++++++++++++++++++++---
src/parallel_tutorial.html | 70 +++++++++++++++++++++----
src/parallel_tutorial.pdf | Bin 147322 -> 151440 bytes
src/parallel_tutorial.pod | 71 ++++++++++++++++++++++++--
6 files changed, 250 insertions(+), 33 deletions(-)
diff --git a/doc/release_new_version b/doc/release_new_version
index 8540dac9..8b4466bf 100644
--- a/doc/release_new_version
+++ b/doc/release_new_version
@@ -241,6 +241,8 @@ New in this release:
* The parenthesis around {= perl expression =} can be changed with --parens.
+* --tmux will direct the output to a tmux session instead of files.
+
* GNU Parallel was cited in: bammds: A tool for assessing the ancestry of low depth whole genome data using multidimensional scaling (MDS) http://bioinformatics.oxfordjournals.org/content/early/2014/06/28/bioinformatics.btu410.abstract
* GNU Parallel was cited in: Molecular ferroelectric contributions to anomalous hysteresis in hybrid perovskite solar cells http://people.bath.ac.uk/aw558/publications/2014/arxiv_hysteresis_14.pdf
@@ -251,10 +253,14 @@ New in this release:
* Webcast at 2014-08-20 covering GNU Parallel: Data Science at the Command Line http://www.oreilly.com/pub/e/3115
+* GNU Parallel all the things! http://longwayaround.org.uk/notes/gnu-parallel-all-the-things/
+
* Shell command composition and dispatch http://lukeluo.blogspot.dk/2014/07/linux-virtual-console6-shell-command.html
* Parallelising plink (or anything else) the easy way http://chrisladroue.com/2012/03/parallelising-plink-or-anything-else-the-easy-way/
+* Easy and cheap cluster building on AWS https://grapeot.me/easy-and-cheap-cluster-building-on-aws.html
+
* Paralelizace běžných činností v konzoli pomocí GNU Parallel http://www.abclinuxu.cz/clanky/paralelizace-beznych-cinnosti-v-konzoli-pomoci-gnu-parallel
* [原] Ubuntu 下使用 parallel 命令的注意事项 http://blog.ailms.me/2014/06/28/ubuntu-with-parallel.html
diff --git a/src/parallel b/src/parallel
index bbb3d6c0..70db19cd 100755
--- a/src/parallel
+++ b/src/parallel
@@ -5220,8 +5220,9 @@ sub start {
(cat $tmpfile; rm $tmpfile; cat - ) | } .
"($command);";
if($opt::tmux) {
- $command = tmux_wrap($command);
+ $command = tmux_wrap($command,$job->replaced());
}
+
# The eval is needed to catch exception from open3
eval {
$pid = ::open3($stdin_fh, ">&OUT", ">&ERR", $ENV{SHELL}, "-c", $command) ||
@@ -5236,7 +5237,7 @@ sub start {
*IN = *STDIN;
# The eval is needed to catch exception from open3
if($opt::tmux) {
- $command = tmux_wrap($command);
+ $command = tmux_wrap($command,$job->replaced());
}
eval {
$pid = ::open3("<&IN", ">&OUT", ">&ERR", $ENV{SHELL}, "-c", $command) ||
@@ -5252,7 +5253,7 @@ sub start {
*IN = $devtty_fh;
# The eval is needed to catch exception from open3
if($opt::tmux) {
- $command = tmux_wrap($command);
+ $command = tmux_wrap($command,$job->replaced());
}
eval {
$pid = ::open3("<&IN", ">&OUT", ">&ERR", $ENV{SHELL}, "-c", $command) ||
@@ -5263,7 +5264,7 @@ sub start {
};
} else {
if($opt::tmux) {
- $command = tmux_wrap($command);
+ $command = tmux_wrap($command,$job->replaced());
}
eval {
$pid = ::open3(::gensym, ">&OUT", ">&ERR", $ENV{SHELL}, "-c", $command) ||
@@ -5292,21 +5293,33 @@ sub start {
}
sub tmux_wrap {
- my $command = shift;
- # Start tmux seesion as pPID
+ # Wrap command with tmux for session pPID
+ # Input:
+ # $actual_command = the actual command being run (incl ssh wrap)
+ # $visual_command = the command the user wants run (= -v)
+ my $actual_command = shift;
+ my $visual_command = shift;
+ # Temporary file name. Used for fifo to communicate exit val
my ($fh, $tmpfile) = ::tempfile(SUFFIX => ".tmx");
close $fh;
unlink $tmpfile;
+ my $c = $visual_command;
+ # tmux does not like some chars (e.g. ;).
+ $c =~ s/[^-<>(),:_+=#a-z0-9 `\\\$\|]//g;
my $tmux;
- if($Global::total_running == 0) {
- $tmux = "tmux new-session -s p$$ -d";
+ if($Global::total_running == 0) {
+ $tmux = "tmux new-session -s p$$ -d -n ".
+ ::shell_quote_scalar($c);
print $Global::original_stderr "See output with: tmux attach -t p$$\n";
} else {
- $tmux = "tmux new-window -t p$$";
+ $tmux = "tmux new-window -t p$$ -n ".::shell_quote_scalar($c);
+
}
return "mkfifo $tmpfile; $tmux ".
- ::shell_quote_scalar("(".$command.');echo $?$status >'.$tmpfile).
- "; ( exit `cat < $tmpfile;rm $tmpfile` )";
+ ::shell_quote_scalar("(".$actual_command.');echo $?$status >'.$tmpfile.";".
+ "echo ".::shell_quote_scalar($visual_command).";".
+ "echo \007Job finished at: `date`;sleep 60").
+ "; ( exit `cat < $tmpfile;rm $tmpfile` )";
}
sub is_already_in_results {
diff --git a/src/parallel_tutorial.1 b/src/parallel_tutorial.1
index 18586d95..1f7ca9ad 100644
--- a/src/parallel_tutorial.1
+++ b/src/parallel_tutorial.1
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "PARALLEL_TUTORIAL 1"
-.TH PARALLEL_TUTORIAL 1 "2014-07-15" "20140711" "parallel"
+.TH PARALLEL_TUTORIAL 1 "2014-07-18" "20140711" "parallel"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
@@ -483,8 +483,8 @@ Output (the order may be different):
.Ve
.SS "Replacement strings"
.IX Subsection "Replacement strings"
-\fIThe 7 replacement strings\fR
-.IX Subsection "The 7 replacement strings"
+\fIThe 7 predefined replacement strings\fR
+.IX Subsection "The 7 predefined replacement strings"
.PP
\&\s-1GNU\s0 Parallel has several replacement strings. If no replacement
strings are used the default is to append {}:
@@ -587,8 +587,10 @@ Output (the order may be different):
\& 2
\& 1
.Ve
-.SS "Changing the replacement strings"
+.PP
+\fIChanging the replacement strings\fR
.IX Subsection "Changing the replacement strings"
+.PP
The replacement string {} can be changed with \-I:
.PP
.Vb 1
@@ -676,8 +678,64 @@ Output (the order may be different):
\& 2
\& 1
.Ve
-.SS "Positional replacement strings"
+.PP
+\fIPerl expression replacement string\fR
+.IX Subsection "Perl expression replacement string"
+.PP
+When predefined replacement strings are not flexible enough a perl
+expression can be used instead. One example is to remove two
+extensions: foo.tar.gz \-> foo
+.PP
+.Vb 1
+\& parallel echo \*(Aq{= s:\e.[^.]+$::;s:\e.[^.]+$::; =}\*(Aq ::: foo.tar.gz
+.Ve
+.PP
+Output:
+.PP
+.Vb 1
+\& foo
+.Ve
+.PP
+If the strings \fB{=\fR and \fB=}\fR cause problems they can be replaced with \-\-parens:
+.PP
+.Vb 1
+\& parallel \-\-parens ,,,, echo \*(Aq,, s:\e.[^.]+$::;s:\e.[^.]+$::; ,,\*(Aq ::: foo.tar.gz
+.Ve
+.PP
+Output: Same as above.
+.PP
+To define a short hand replacement string use \fB\-\-rpl\fR:
+.PP
+.Vb 1
+\& parallel \-\-rpl \*(Aq.. s:\e.[^.]+$::;s:\e.[^.]+$::;\*(Aq echo \*(Aq..\*(Aq ::: foo.tar.gz
+.Ve
+.PP
+Output: Same as above.
+.PP
+If the short hand starts with '{' it can be used as a positional
+replacement string, too:
+.PP
+.Vb 1
+\& parallel \-\-rpl \*(Aq{..} s:\e.[^.]+$::;s:\e.[^.]+$::;\*(Aq echo \*(Aq{..}\*(Aq ::: foo.tar.gz
+.Ve
+.PP
+Output: Same as above.
+.PP
+\&\s-1GNU\s0 \fBparallel\fR's 7 replacement strings are implemented as:
+.PP
+.Vb 7
+\& \-\-rpl \*(Aq{} \*(Aq
+\& \-\-rpl \*(Aq{#} $_=$job\->seq()\*(Aq
+\& \-\-rpl \*(Aq{%} $_=$job\->slot()\*(Aq
+\& \-\-rpl \*(Aq{/} s:.*/::\*(Aq
+\& \-\-rpl \*(Aq{//} $Global::use{"File::Basename"} ||= eval "use File::Basename; 1;"; $_ = dirname($_);\*(Aq
+\& \-\-rpl \*(Aq{/.} s:.*/::; s:\e.[^/.]+$::;\*(Aq
+\& \-\-rpl \*(Aq{.} s:\e.[^/.]+$::\*(Aq
+.Ve
+.PP
+\fIPositional replacement strings\fR
.IX Subsection "Positional replacement strings"
+.PP
With multiple input sources the argument from the individual input
sources can be access with {number}:
.PP
@@ -726,8 +784,35 @@ Output (the order may be different):
\& 1=B 2=D 3=E \-1=E \-2=D \-3=B
\& 1=B 2=D 3=F \-1=F \-2=D \-3=B
.Ve
-.SS "Input from columns"
+.PP
+\fIPositional perl expression replacement string\fR
+.IX Subsection "Positional perl expression replacement string"
+.PP
+To use a perl expression as a positional replacement string simply
+prepend the perl expression with number and space:
+.PP
+.Vb 1
+\& parallel echo \*(Aq{=2 s:\e.[^.]+$::;s:\e.[^.]+$::; =} {1}\*(Aq ::: bar ::: foo.tar.gz
+.Ve
+.PP
+Output:
+.PP
+.Vb 1
+\& foo bar
+.Ve
+.PP
+If a defined short hand starts with '{' it can be used as a positional
+replacement string, too:
+.PP
+.Vb 1
+\& parallel \-\-rpl \*(Aq{..} s:\e.[^.]+$::;s:\e.[^.]+$::;\*(Aq echo \*(Aq{2..} {1}\*(Aq ::: bar ::: foo.tar.gz
+.Ve
+.PP
+Output: Same as above.
+.PP
+\fIInput from columns\fR
.IX Subsection "Input from columns"
+.PP
The columns in a file can be bound to positional replacement strings
using \-\-colsep. Here the columns are separated with \s-1TAB\s0 (\et):
.PP
@@ -742,8 +827,10 @@ Output (the order may be different):
\& 1=A 2=B
\& 1=C 2=D
.Ve
-.SS "Header defined replacement strings"
+.PP
+\fIHeader defined replacement strings\fR
.IX Subsection "Header defined replacement strings"
+.PP
With \-\-header \s-1GNU\s0 Parallel will use the first value of the input
source as the name of the replacement string. Only the non-modified
version {} is supported:
diff --git a/src/parallel_tutorial.html b/src/parallel_tutorial.html
index 9de1868d..902c5a40 100644
--- a/src/parallel_tutorial.html
+++ b/src/parallel_tutorial.html
@@ -41,13 +41,15 @@
Replacement strings
- Changing the replacement strings
- Positional replacement strings
- Input from columns
- Header defined replacement strings
More than one argument
Quoting
Trimming space
@@ -390,7 +392,7 @@ exported using 'export -f':
-
+
GNU Parallel has several replacement strings. If no replacement
strings are used the default is to append {}:
@@ -447,7 +449,7 @@ number of jobs to run in parallel):
1
-
+
The replacement string {} can be changed with -I:
parallel -I ,, echo ,, ::: A/B.C
@@ -496,7 +498,40 @@ number of jobs to run in parallel):
1
-
+
+When predefined replacement strings are not flexible enough a perl
+expression can be used instead. One example is to remove two
+extensions: foo.tar.gz -> foo
+
+ parallel echo '{= s:\.[^.]+$::;s:\.[^.]+$::; =}' ::: foo.tar.gz
+Output:
+
+ foo
+If the strings {= and =} cause problems they can be replaced with --parens:
+
+ parallel --parens ,,,, echo ',, s:\.[^.]+$::;s:\.[^.]+$::; ,,' ::: foo.tar.gz
+Output: Same as above.
+To define a short hand replacement string use --rpl:
+
+ parallel --rpl '.. s:\.[^.]+$::;s:\.[^.]+$::;' echo '..' ::: foo.tar.gz
+Output: Same as above.
+If the short hand starts with '{' it can be used as a positional
+replacement string, too:
+
+ parallel --rpl '{..} s:\.[^.]+$::;s:\.[^.]+$::;' echo '{..}' ::: foo.tar.gz
+Output: Same as above.
+GNU parallel's 7 replacement strings are implemented as:
+
+ --rpl '{} '
+ --rpl '{#} $_=$job->seq()'
+ --rpl '{%} $_=$job->slot()'
+ --rpl '{/} s:.*/::'
+ --rpl '{//} $Global::use{"File::Basename"} ||= eval "use File::Basename; 1;"; $_ = dirname($_);'
+ --rpl '{/.} s:.*/::; s:\.[^/.]+$::;'
+ --rpl '{.} s:\.[^/.]+$::'
+
+
+
With multiple input sources the argument from the individual input
sources can be access with {number}:
@@ -530,7 +565,22 @@ from behind:
1=B 2=D 3=F -1=F -2=D -3=B
-
+
+To use a perl expression as a positional replacement string simply
+prepend the perl expression with number and space:
+
+ parallel echo '{=2 s:\.[^.]+$::;s:\.[^.]+$::; =} {1}' ::: bar ::: foo.tar.gz
+Output:
+
+ foo bar
+If a defined short hand starts with '{' it can be used as a positional
+replacement string, too:
+
+ parallel --rpl '{..} s:\.[^.]+$::;s:\.[^.]+$::;' echo '{2..} {1}' ::: bar ::: foo.tar.gz
+Output: Same as above.
+
+
+
The columns in a file can be bound to positional replacement strings
using --colsep. Here the columns are separated with TAB (\t):
@@ -542,7 +592,7 @@ using --colsep. Here the columns are separated with TAB (\t):
1=C 2=D
-
+
With --header GNU Parallel will use the first value of the input
source as the name of the replacement string. Only the non-modified
version {} is supported:
diff --git a/src/parallel_tutorial.pdf b/src/parallel_tutorial.pdf
index 3101aa1de95f3fe8e2f266d14d9c9685e14e414c..ce58b2f7220f13c35a99350b37ab0254baad054f 100644
GIT binary patch
delta 121518
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