parallel: Implemented --results foo.csv/-.tsv. Incl. testsuite.

This commit is contained in:
Ole Tange 2016-12-18 11:14:06 +01:00
parent 987cc8c30b
commit 9b4fd8b33b
15 changed files with 1380 additions and 241 deletions

View file

@ -230,6 +230,7 @@ Haiku of the month:
-- Ole Tange -- Ole Tange
New in this release: New in this release:
http://www.nature.com/articles/srep39259
http://paperity.org/p/78557440/learning-string-distance-with-smoothing-for-ocr-spelling-correction http://paperity.org/p/78557440/learning-string-distance-with-smoothing-for-ocr-spelling-correction
http://blog.genoglobe.com/2016/11/gnu-parallel.html http://blog.genoglobe.com/2016/11/gnu-parallel.html
http://os.51cto.com/art/201612/524182.htm http://os.51cto.com/art/201612/524182.htm

View file

@ -1076,11 +1076,21 @@ sub parse_options {
$opt::compress = 1; $opt::compress = 1;
$opt::decompress_program ||= $opt::compress_program." -dc"; $opt::decompress_program ||= $opt::compress_program." -dc";
} }
if(defined $opt::results) {
if($opt::results =~ /\.csv$/i) {
$Global::csv = ",";
$Global::membuffer ||= 1;
} elsif($opt::results =~ /\.tsv$/i) {
$Global::csv = "\t";
$Global::membuffer ||= 1;
}
}
if($opt::compress) { if($opt::compress) {
my ($compress, $decompress) = find_compression_program(); my ($compress, $decompress) = find_compression_program();
$opt::compress_program ||= $compress; $opt::compress_program ||= $compress;
$opt::decompress_program ||= $decompress; $opt::decompress_program ||= $decompress;
if($opt::results or $opt::files) { if(($opt::results and not $Global::csv) or $opt::files) {
# No need for decompressing # No need for decompressing
$opt::decompress_program = "cat >/dev/null"; $opt::decompress_program = "cat >/dev/null";
} }
@ -1178,9 +1188,13 @@ sub parse_options {
$opt::jobs = "100%"; $opt::jobs = "100%";
} }
open_joblog(); open_joblog();
open_csv();
if($opt::sqlmaster or $opt::sqlworker) { if($opt::sqlmaster or $opt::sqlworker) {
$Global::sql = SQL->new($opt::sqlmaster || $opt::sqlworker); $Global::sql = SQL->new($opt::sqlmaster || $opt::sqlworker);
} }
if($opt::sqlworker) {
$Global::membuffer ||= 1;
}
} }
sub check_invalid_option_combinations { sub check_invalid_option_combinations {
@ -1484,7 +1498,11 @@ sub open_joblog {
::error("--resume and --resume-failed require --joblog or --results."); ::error("--resume and --resume-failed require --joblog or --results.");
::wait_and_exit(255); ::wait_and_exit(255);
} }
if($opt::joblog) { if($opt::joblog
and
($opt::sqlmaster
or
not $opt::sqlworker)) {
if($opt::resume || $opt::resume_failed || $opt::retry_failed) { if($opt::resume || $opt::resume_failed || $opt::retry_failed) {
if(open(my $joblog_fh, "<", $opt::joblog)) { if(open(my $joblog_fh, "<", $opt::joblog)) {
# Read the joblog # Read the joblog
@ -1574,6 +1592,31 @@ sub open_joblog {
} }
} }
sub open_csv {
if($opt::results) {
# Output as CSV/TSV
if($opt::results eq "-.csv"
or
$opt::results eq "-.tsv") {
# Output as CSV/TSV on stdout
open $Global::csv_fh, ">&", "STDOUT" or
::die_bug("Can't dup STDOUT in csv: $!");
# Do not print any other output to STDOUT
# by forcing all other output to /dev/null
open my $fd, ">", "/dev/null" or
::die_bug("Can't >/dev/null in csv: $!");
$Global::fd{1} = $fd;
$Global::fd{2} = $fd;
} elsif($Global::csv) {
if(not open($Global::csv_fh,">",$opt::results)) {
::error("Cannot open results file `$opt::results': ".
"$!.");
wait_and_exit(255);
}
}
}
}
sub find_compression_program { sub find_compression_program {
# Find a fast compression program # Find a fast compression program
# Returns: # Returns:
@ -6344,6 +6387,8 @@ sub new {
# Timestamp for timeout if any # Timestamp for timeout if any
'timeout' => undef, 'timeout' => undef,
'virgin' => 1, 'virgin' => 1,
# Output used for SQL and CSV-output
'output' => { 1 => [], 2 => [] },
}, ref($class) || $class; }, ref($class) || $class;
} }
@ -6460,7 +6505,9 @@ sub openoutputfiles {
# Set file handles in $self->fh # Set file handles in $self->fh
my $self = shift; my $self = shift;
my ($outfhw, $errfhw, $outname, $errname); my ($outfhw, $errfhw, $outname, $errname);
if($opt::results) {
if($opt::results and not $Global::csv) {
# Results as dir
my $args_as_dirname = $self->{'commandline'}->args_as_dirname(); my $args_as_dirname = $self->{'commandline'}->args_as_dirname();
# Output in: prefix/name1/val1/name2/val2/stdout # Output in: prefix/name1/val1/name2/val2/stdout
my $dir = $self->{'commandline'}-> my $dir = $self->{'commandline'}->
@ -6503,10 +6550,9 @@ sub openoutputfiles {
$self->set_fh(2,"unlink",""); $self->set_fh(2,"unlink","");
if($opt::sqlworker) { if($opt::sqlworker) {
# Save the filenames in SQL table # Save the filenames in SQL table
$Global::sql->update("SET Stdout = ? WHERE Seq = ".$self->seq(), $Global::sql->update("SET Stdout = ?, Stderr = ? ".
$outname); "WHERE Seq = ". $self->seq(),
$Global::sql->update("SET Stderr = ? WHERE Seq = ".$self->seq(), $outname, $errname);
$errname);
} }
} elsif(not $opt::ungroup) { } elsif(not $opt::ungroup) {
# To group we create temporary files for STDOUT and STDERR # To group we create temporary files for STDOUT and STDERR
@ -8133,25 +8179,174 @@ sub print {
::debug("print", "File descriptor $fdno (", $self->fh($fdno,"name"), "):\n"); ::debug("print", "File descriptor $fdno (", $self->fh($fdno,"name"), "):\n");
if($opt::linebuffer) { if($opt::linebuffer) {
# Line buffered print out # Line buffered print out
$self->linebuffer_print($fdno,$in_fh,$out_fd); $self->print_linebuffer($fdno,$in_fh,$out_fd);
} elsif($opt::files) { } elsif($opt::files) {
$self->files_print($fdno,$in_fh,$out_fd); $self->print_files($fdno,$in_fh,$out_fd);
} elsif($opt::tag or defined $opt::tagstring) { } elsif($opt::tag or defined $opt::tagstring) {
$self->tag_print($fdno,$in_fh,$out_fd); $self->print_tag($fdno,$in_fh,$out_fd);
} else { } else {
$self->normal_print($fdno,$in_fh,$out_fd); $self->print_normal($fdno,$in_fh,$out_fd);
} }
flush $out_fd; flush $out_fd;
} }
::debug("print", "<<joboutput @command\n"); ::debug("print", "<<joboutput @command\n");
if($Global::joblog and defined $self->{'exitstatus'} if(defined $self->{'exitstatus'}
and not ($self->virgin() and $opt::pipe)) { and not ($self->virgin() and $opt::pipe)) {
if($Global::joblog and not $opt::sqlworker) {
# Add to joblog when finished # Add to joblog when finished
$self->print_joblog(); $self->print_joblog();
} }
if($opt::sqlworker and not $opt::results) {
$Global::sql->output($self);
}
if($Global::csv) {
# Add output to CSV when finished
$self->print_csv();
}
}
} }
sub files_print { {
my $header_printed;
sub print_csv {
my $self = shift;
my $cmd;
if($Global::verbose <= 1) {
$cmd = $self->replaced();
} else {
# Verbose level > 1: Print the rsync and stuff
$cmd = "@command";
}
my $record_ref = $self->{'commandline'}{'arg_list_flat_orig'};
if(not $header_printed) {
# Variable headers
# Normal => V1..Vn
# --header : => first value from column
my @V;
if($opt::header) {
my $i = 1;
@V = (map { $Global::input_source_header{$i++} }
@$record_ref[1..$#$record_ref]);
} else {
my $V = "V1";
@V = (map { $V++ } @$record_ref[1..$#$record_ref]);
}
print $Global::csv_fh
(map { $$_ }
combine_ref("Seq", "Host", "Starttime", "JobRuntime",
"Send", "Receive", "Exitval", "Signal", "Command",
@V,
"Stdout","Stderr"
)),"\n";
$header_printed++;
}
# Memory optimization: Overwrite with the joined output
$self->{'output'}{1} = join("", @{$self->{'output'}{1}});
$self->{'output'}{2} = join("", @{$self->{'output'}{2}});
print $Global::csv_fh
(map { $$_ }
combine_ref
($self->seq(),
$self->sshlogin()->string(),
$self->starttime(), sprintf("%0.3f",$self->runtime()),
$self->transfersize(), $self->returnsize(),
$self->exitstatus(), $self->exitsignal(), \$cmd,
\@$record_ref[1..$#$record_ref],
\$self->{'output'}{1},
\$self->{'output'}{2})),"\n";
}
}
sub combine_ref {
# Inspired by Text::CSV_PP::_combine (by Makamaka Hannyaharamitu)
my @part = @_;
my $sep = $Global::csv;
my $quot = '"';
my @out = ();
my $must_be_quoted;
for my $column (@part) {
# Memory optimization: Content transferred as reference
if(ref $column ne "SCALAR") {
# Convert all columns to scalar references
my $v = $column;
$column = \$v;
}
if(not defined $$column) {
$$column = '';
next;
}
$must_be_quoted = 0;
if($$column =~ s/$quot/$quot$quot/go){
# Replace " => ""
$must_be_quoted ||=1;
}
if($$column =~ /[\s\Q$sep\E]/o){
# Put quotes around if the column contains ,
$must_be_quoted ||=1;
}
$Global::use{"bytes"} ||= eval "use bytes; 1;";
if ($$column =~ /\0/) {
# Contains \0 => put quotes around
$must_be_quoted ||=1;
}
if($must_be_quoted){
push \@out, \$sep, \$quot, $column, \$quot;
} else {
push @out, \$sep, $column;
}
}
# Pop off a $sep
shift @out;
return @out;
}
sub combine {
# Inspired by Text::CSV_PP::_combine (by Makamaka Hannyaharamitu)
my @part = @_;
my $sep = $Global::csv;
my $quot = '"';
my $must_be_quoted;
for my $column (@part) {
# Memory optimization: Content transferred as reference
if(ref $column ne "SCALAR") {
($column,$$column) = ($$column,"");
}
if(not defined $column) {
$column = '';
next;
}
$must_be_quoted = 0;
if($column =~ s/$quot/$quot$quot/go){
# Replace " => ""
$must_be_quoted ||=1;
}
if($column =~ /[\s\Q$sep\E]/o){
# Put quotes around if the column contains ,
$must_be_quoted ||=1;
}
$Global::use{"bytes"} ||= eval "use bytes; 1;";
if ($column =~ /\0/) {
# Contains \0 => put quotes around
$must_be_quoted ||=1;
}
if($must_be_quoted){
$column = $quot . $column . $quot;
}
}
return join($sep, @part) . "\n";
}
sub print_files {
# Print the name of the file containing stdout on stdout # Print the name of the file containing stdout on stdout
# Uses: # Uses:
# $opt::pipe # $opt::pipe
@ -8182,9 +8377,8 @@ sub files_print {
} }
} elsif($fdno == 1 and $self->fh($fdno,"name")) { } elsif($fdno == 1 and $self->fh($fdno,"name")) {
print $out_fd $self->tag(),$self->fh($fdno,"name"),"\n"; print $out_fd $self->tag(),$self->fh($fdno,"name"),"\n";
if($opt::sqlworker) { if($Global::membuffer) {
$Global::sql->update("SET Stdout = ? WHERE Seq = ".$self->seq(), push @{$self->{'output'}{$fdno}}, $self->tag(), $self->fh($fdno,"name");
$self->tag().$self->fh($fdno,"name"));
} }
$self->add_returnsize(-s $self->fh($fdno,"name")); $self->add_returnsize(-s $self->fh($fdno,"name"));
# Mark as printed - do not print again # Mark as printed - do not print again
@ -8192,7 +8386,7 @@ sub files_print {
} }
} }
sub linebuffer_print { sub print_linebuffer {
my $self = shift; my $self = shift;
my ($fdno,$in_fh,$out_fd) = @_; my ($fdno,$in_fh,$out_fd) = @_;
my $partial = \$self->{'partial_line',$fdno}; my $partial = \$self->{'partial_line',$fdno};
@ -8211,9 +8405,12 @@ sub linebuffer_print {
} }
} }
} }
if($opt::files or $opt::results) { if($opt::files or ($opt::results and not $Global::csv)) {
if($fdno == 1 and not $self->fh($fdno,"printed")) { if($fdno == 1 and not $self->fh($fdno,"printed")) {
print $out_fd $self->tag(),$self->fh($fdno,"name"),"\n"; print $out_fd $self->tag(),$self->fh($fdno,"name"),"\n";
if($Global::membuffer) {
push @{$self->{'output'}{$fdno}}, $self->tag(), $self->fh($fdno,"name");
}
$self->set_fh($fdno,"printed",1); $self->set_fh($fdno,"printed",1);
} }
# No need for reading $in_fh, as it it from "cat >/dev/null" # No need for reading $in_fh, as it it from "cat >/dev/null"
@ -8244,9 +8441,9 @@ sub linebuffer_print {
} }
# Print up to and including the last \n # Print up to and including the last \n
print $out_fd substr($$partial,0,$i); print $out_fd substr($$partial,0,$i);
if($opt::sqlworker) { # Buffer in memory for SQL and CSV-output
push (@{$self->{'sqlworker'}{$fdno}}, if($Global::membuffer) {
substr($$partial,0,$i)); push @{$self->{'output'}{$fdno}}, substr($$partial,0,$i);
} }
# Remove the printed part # Remove the printed part
substr($$partial,0,$i) = ""; substr($$partial,0,$i) = "";
@ -8255,7 +8452,7 @@ sub linebuffer_print {
$self->add_returnsize($outputlength); $self->add_returnsize($outputlength);
} }
if(defined $self->{'exitstatus'}) { if(defined $self->{'exitstatus'}) {
if($opt::files or $opt::results) { if($opt::files or ($opt::results and not $Global::csv)) {
$self->add_returnsize(-s $self->fh($fdno,"name")); $self->add_returnsize(-s $self->fh($fdno,"name"));
} else { } else {
# If the job is dead: print the remaining partial line # If the job is dead: print the remaining partial line
@ -8266,8 +8463,8 @@ sub linebuffer_print {
$$partial =~ s/^/$tag/gm; $$partial =~ s/^/$tag/gm;
} }
print $out_fd $$partial; print $out_fd $$partial;
if($opt::sqlworker) { if($Global::membuffer) {
push (@{$self->{'sqlworker'}{$fdno}},$$partial); push @{$self->{'output'}{$fdno}}, $$partial;
} }
} }
# Release the memory # Release the memory
@ -8275,13 +8472,7 @@ sub linebuffer_print {
if($self->fh($fdno,"rpid") and CORE::kill 0, $self->fh($fdno,"rpid")) { if($self->fh($fdno,"rpid") and CORE::kill 0, $self->fh($fdno,"rpid")) {
# decompress still running # decompress still running
} else { } else {
# decompress done: # decompress done: close fh
# copy to sql (if needed)
# then close fh
if($opt::sqlworker and not $opt::results) {
$Global::sql->output($fdno, $self->seq(),
join("",@{$self->{'sqlworker'}{$fdno}}));
}
close $in_fh; close $in_fh;
if($? and $opt::compress) { if($? and $opt::compress) {
::error($opt::decompress_program." failed."); ::error($opt::decompress_program." failed.");
@ -8291,7 +8482,7 @@ sub linebuffer_print {
} }
} }
sub tag_print { sub print_tag {
my $self = shift; my $self = shift;
my ($fdno,$in_fh,$out_fd) = @_; my ($fdno,$in_fh,$out_fd) = @_;
my $buf; my $buf;
@ -8309,16 +8500,13 @@ sub tag_print {
while(<$in_fh>) { while(<$in_fh>) {
print $out_fd $tag,$_; print $out_fd $tag,$_;
$outputlength += length $_; $outputlength += length $_;
if($opt::sqlworker) { if($Global::membuffer) {
push @output, $tag,$_; push @{$self->{'output'}{$fdno}}, $tag, $_;
} }
} }
if($fdno == 1) { if($fdno == 1) {
$self->add_returnsize($outputlength); $self->add_returnsize($outputlength);
} }
if($opt::sqlworker and not $opt::results) {
$Global::sql->output($fdno, $self->seq(), join("",@output));
}
close $in_fh; close $in_fh;
if($? and $opt::compress) { if($? and $opt::compress) {
::error($opt::decompress_program." failed."); ::error($opt::decompress_program." failed.");
@ -8326,7 +8514,7 @@ sub tag_print {
} }
} }
sub normal_print { sub print_normal {
my $self = shift; my $self = shift;
my ($fdno,$in_fh,$out_fd) = @_; my ($fdno,$in_fh,$out_fd) = @_;
my $buf; my $buf;
@ -8342,17 +8530,13 @@ sub normal_print {
while(sysread($in_fh,$buf,131072)) { while(sysread($in_fh,$buf,131072)) {
print $out_fd $buf; print $out_fd $buf;
$outputlength += length $buf; $outputlength += length $buf;
if($opt::sqlworker) { if($Global::membuffer) {
push @output, $buf; push @{$self->{'output'}{$fdno}}, $buf;
} }
} }
if($fdno == 1) { if($fdno == 1) {
$self->add_returnsize($outputlength); $self->add_returnsize($outputlength);
} }
if($opt::sqlworker and not $opt::results) {
$Global::sql->output($fdno, $self->seq(),
join("",@output));
}
close $in_fh; close $in_fh;
if($? and $opt::compress) { if($? and $opt::compress) {
::error($opt::decompress_program." failed."); ::error($opt::decompress_program." failed.");
@ -8597,7 +8781,8 @@ sub populate {
# Returns: N/A # Returns: N/A
my $self = shift; my $self = shift;
my $next_arg; my $next_arg;
my $max_len = $Global::minimal_command_line_length || Limits::Command::max_length(); my $max_len = $Global::minimal_command_line_length
|| Limits::Command::max_length();
if($opt::cat or $opt::fifo) { if($opt::cat or $opt::fifo) {
# Get the empty arg added by --pipepart (if any) # Get the empty arg added by --pipepart (if any)
@ -8659,6 +8844,7 @@ sub populate {
} }
} }
} }
if($opt::sqlmaster) { if($opt::sqlmaster) {
# Insert the V1..Vn for this $seq in SQL table instead of generating one # Insert the V1..Vn for this $seq in SQL table instead of generating one
$Global::sql->insert_records($self->seq(),$self->{'arg_list_flat_orig'}); $Global::sql->insert_records($self->seq(),$self->{'arg_list_flat_orig'});
@ -9027,7 +9213,7 @@ sub replaced {
$normal_replace or last; $normal_replace or last;
} }
} }
@Arg::arg = (); *Arg::arg = [];
if($quote) { if($quote) {
@target = ::shell_quote(@target); @target = ::shell_quote(@target);
} }
@ -10404,13 +10590,11 @@ sub update {
sub output { sub output {
my $self = shift; my $self = shift;
my $fdno = shift; my $commandline = shift;
my $seq = shift;
my @output = @_;
my %column_of_fdno = ( 1 => "Stdout", 2 => "Stderr" ); $self->update("SET Stdout = ?, Stderr = ? WHERE Seq = ".$commandline->seq(),
my $column = $column_of_fdno{$fdno}; join("",@{$commandline->{'output'}{1}}),
$self->update("SET $column = ? WHERE Seq = ".$seq, join("",@output)); join("",@{$commandline->{'output'}{2}}));
} }
sub max_number_of_args { sub max_number_of_args {

View file

@ -565,9 +565,10 @@ Compress temporary files. If the output is big and very compressible
this will take up less disk space in $TMPDIR and possibly be faster this will take up less disk space in $TMPDIR and possibly be faster
due to less disk I/O. due to less disk I/O.
GNU B<parallel> will try B<lz4>, B<lzop>, B<pbzip2>, B<pigz>, GNU B<parallel> will try B<pzstd>, B<lbzip2>, B<pbzip2>, B<zstd>,
B<plzip>, B<lzip> B<gzip>, B<pxz>, B<lzma>, B<xz>, B<bzip2>, in that B<pigz>, B<lz4>, B<lzop>, B<plzip>, B<lzip>, B<lrz>, B<gzip>, B<pxz>,
order, and use the first available. B<lzma>, B<bzip2>, B<xz>, B<clzip>, in that order, and use the first
available.
=item B<--compress-program> I<prg> =item B<--compress-program> I<prg>
@ -1441,18 +1442,36 @@ it to the command.
Only used with B<--pipe>. Only used with B<--pipe>.
=item B<--results> I<prefix> =item B<--results> I<name> (alpha testing)
=item B<--res> I<prefix> =item B<--res> I<name> (alpha testing)
Save the output into files. The files will be stored in a directory tree Save the output into files.
rooted at I<prefix>. Within this directory tree, each command will result
in two files: I<prefix>/<ARGS>/stdout and I<prefix>/<ARGS>/stderr, where B<CSV file output>
<ARGS> is a sequence of directories representing the header of the input
source (if using B<--header :>) or the number of the input source and If I<name> ends in B<.csv>/B<.tsv> the output will be a CSV-file
named I<name>.
B<.csv> gives a comma separated value file. B<.tsv> gives a TAB
separated value file.
B<-.csv>/B<-.tsv> are special: It will give the file on stdout
(standard output).
B<Dir structure output>
If I<name> does not end in B<.csv>/B<.tsv> will be treated as a dir.
The files will be stored in a directory tree rooted at I<name>.
Within this directory tree, each command will result in two files:
I<name>/<ARGS>/stdout and I<name>/<ARGS>/stderr, where <ARGS> is a
sequence of directories representing the header of the input source
(if using B<--header :>) or the number of the input source and
corresponding values. corresponding values.
I<prefix> can contain replacement strings. I<name> can contain replacement strings.
E.g: E.g:
@ -3408,6 +3427,43 @@ Note: The default for GNU B<parallel> is to remove the spaces around the columns
parallel -a table_file.tsv --trim n --colsep '\t' cmd -o {2} -i {1} parallel -a table_file.tsv --trim n --colsep '\t' cmd -o {2} -i {1}
=head1 EXAMPLE: Output as CSV-file
GNU B<parallel> can output to a database table and a CSV-file:
DBURL=csv:///%2Ftmp%2Fmy.csv
DBTABLEURL=$DBURL/mytable
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
It is rather slow and takes up a lot of CPU time because GNU
B<parallel> parses the whole CSV file for each update.
A better approach is to use an SQLite-base and then convert that to CSV:
DBURL=sqlite3:///%2Ftmp%2Fmy.sqlite
DBTABLEURL=$DBURL/mytable
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
sql $DBURL '.headers on' '.mode csv' 'SELECT * FROM mytable;'
This takes around a second per job.
If you have access to a real database system, such as PostgreSQL, it
is even faster:
DBURL=pg://user:pass@host/mydb
DBTABLEURL=$DBURL/mytable
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
sql $DBURL "COPY (SELECT * FROM mytable) TO stdout DELIMITER ',' CSV HEADER;"
Or MySQL:
DBURL=mysql://user:pass@host/mydb
DBTABLEURL=$DBURL/mytable
parallel --sqlandworker $DBTABLEURL seq ::: {1..10}
sql -p -B $DBURL "SELECT * FROM mytable;" > mytable.tsv
perl -pe 's/"/""/g;s/\t/","/g;s/^/"/;s/$/"/;s/\\\\/\\/g;s/\\t/\t/g;s/\\n/\n/g;' mytable.tsv
=head1 EXAMPLE: Run the same command 10 times =head1 EXAMPLE: Run the same command 10 times
If you want to run the same command with the same arguments 10 times If you want to run the same command with the same arguments 10 times

View file

@ -768,6 +768,19 @@ not need to sync them to disk.
It gives the odd situation that a disk can be fully used, but there It gives the odd situation that a disk can be fully used, but there
are no visible files on it. are no visible files on it.
=head3 Partly buffering in memory
When using output formats SQL and CSV then GNU Parallel has to read
the whole output into memory. When run normally it will only read the
output from a single job. But when using B<--linebuffer> every line
printed will also be buffered in memory - for all jobs currently
running.
If memory is tight, then do not use the output format SQL/CSV with
B<--linebuffer>.
=head3 Comparing to buffering in memory =head3 Comparing to buffering in memory
B<gargs> is a parallelizing tool that buffers in memory. It is B<gargs> is a parallelizing tool that buffers in memory. It is

View file

@ -664,3 +664,13 @@ find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | wc -l
find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | parallel rm find /tmp{/*,}/*.{par,tms,tmx} 2>/dev/null -mmin -10 | parallel rm
sudo umount -l /tmp/smalldisk.img sudo umount -l /tmp/smalldisk.img
par_empty() {
echo "bug #:"
parallel echo ::: true
}
export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | sort | parallel -j6 --tag -k '{} 2>&1'

View file

@ -1,5 +1,4 @@
#!/bin/bash #!/bin/bash
exit 0
# Simple jobs that never fails # Simple jobs that never fails
# Each should be taking >100s and be possible to run in parallel # Each should be taking >100s and be possible to run in parallel

View file

@ -133,6 +133,7 @@ par_compress_fail() {
} }
par_distribute_input_by_ability() { par_distribute_input_by_ability() {
echo "### bug #48290: round-robin does not distribute data based on business"
echo "### Distribute input to jobs that are ready" echo "### Distribute input to jobs that are ready"
echo "Job-slot n is 50% slower than n+1, so the order should be 1..7" echo "Job-slot n is 50% slower than n+1, so the order should be 1..7"
seq 20000000 | seq 20000000 |
@ -147,6 +148,22 @@ par_round_robin_blocks() {
seq 20000000 | parallel --block 10M --round-robin --pipe wc -c | wc -l seq 20000000 | parallel --block 10M --round-robin --pipe wc -c | wc -l
} }
par_results_csv() {
echo "bug #: --results csv"
doit() {
parallel -k $@ --results -.csv echo ::: H2 22 23 ::: H1 11 12;
}
export -f doit
parallel -k --tag doit ::: '--header :' '' \
::: --tag '' ::: --lb '' ::: --files '' ::: --compress '' |
perl -pe 's:/par......par:/tmpfile:g;s/\d+\.\d+/999.999/g'
}
par_results_compress() {
parallel --results /tmp/ged --compress echo ::: 1 | wc -l
parallel --results /tmp/ged echo ::: 1 | wc -l
}
export -f $(compgen -A function | grep par_) export -f $(compgen -A function | grep par_)
compgen -A function | grep par_ | sort | parallel -j6 --tag -k '{} 2>&1' compgen -A function | grep par_ | sort | parallel -j6 --tag -k '{} 2>&1'

View file

@ -22,15 +22,6 @@ par_tmp_full() {
stdout parallel -j1 --tmpdir $SHM cat /dev/zero ::: dummy stdout parallel -j1 --tmpdir $SHM cat /dev/zero ::: dummy
} }
par_bug_48290() {
echo "### bug #48290: round-robin does not distribute data based on business"
echo "Jobslot 1 is 256 times slower than jobslot 4 and should get much less data"
yes "$(seq 1000|xargs)" | head -c 30M |
parallel --tagstring {%} --linebuffer --compress -j4 --roundrobin --pipe --block 10k \
pv -qL '{= $_=int( $job->slot()**4/2+1) =}'0000 |
perl -ne '/^\d+/ and $s{$&}++; END { print map { "$_\n" } sort { $s{$b} <=> $s{$a} } keys %s}'
}
par_memory_leak() { par_memory_leak() {
a_run() { a_run() {
seq $1 |time -v parallel true 2>&1 | seq $1 |time -v parallel true 2>&1 |

View file

@ -30,7 +30,7 @@ p_wrapper() {
} }
p_template() { p_template() {
(sleep 2; (sleep 3;
parallel --sqlworker $DBURL "$@" sleep .3\;echo >$T1) & parallel --sqlworker $DBURL "$@" sleep .3\;echo >$T1) &
parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >$T2; parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >$T2;
} }
@ -112,9 +112,27 @@ par_shuf() {
touch $T1 touch $T1
} }
par_sqlandworker_lo() {
p_template -S lo
}
par_sql_joblog() {
echo '### should only give a single --joblog heading'
echo '### --sqlmaster/--sqlworker'
parallel -k --joblog - --sqlmaster $DBURL --wait sleep .3\;echo ::: {1..5} ::: {a..e} |
perl -pe 's/\d+\.\d+/999.999/g' | sort -n &
sleep 0.5
parallel -k --joblog - --sqlworker $DBURL sleep .3\;echo
wait
echo '### --sqlandworker'
parallel -k --joblog - --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} |
perl -pe 's/\d+\.\d+/999.999/g' | sort -n
# TODO --sqlandworker --wait
}
export -f $(compgen -A function | egrep 'p_|par_') export -f $(compgen -A function | egrep 'p_|par_')
# Tested that -j0 in parallel is fastest (up to 15 jobs) # Tested that -j0 in parallel is fastest (up to 15 jobs)
compgen -A function | grep par_ | sort | compgen -A function | grep par_ | sort |
stdout parallel -vj5 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \ stdout parallel -vj3 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \
:::: - ::: \$MYSQL \$PG \$SQLITE :::: - ::: \$MYSQL \$PG \$SQLITE

View file

@ -248,7 +248,8 @@ par_csh_man() {
echo exit value $status should be 255 echo exit value $status should be 255
_EOF _EOF
) )
ssh csh@lo "$myscript" # Sometimes the order f*cks up
stdout ssh csh@lo "$myscript" | sort
} }
par_fish_man() { par_fish_man() {
@ -862,4 +863,4 @@ export -f $(compgen -A function | grep par_)
# Tested with -j1..8 # Tested with -j1..8
# -j6 was fastest # -j6 was fastest
#compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1' #compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1'
compgen -A function | grep par_ | sort | parallel --delay 0.1 -j10 --tag -k '{} 2>&1' compgen -A function | grep par_ | sort | parallel --delay 0.1 -j2 --tag -k '{} 2>&1'

View file

@ -1759,3 +1759,5 @@ echo '**'
** **
### 1 .par file from --files expected ### 1 .par file from --files expected
10 10
par_empty bug #:
par_empty true

View file

@ -1,6 +1,7 @@
par_compress_fail ### bug #41609: --compress fails par_compress_fail ### bug #41609: --compress fails
par_compress_fail 24812dd0f24a26d08a780f988b9d5ad2 - par_compress_fail 24812dd0f24a26d08a780f988b9d5ad2 -
par_compress_fail 24812dd0f24a26d08a780f988b9d5ad2 - par_compress_fail 24812dd0f24a26d08a780f988b9d5ad2 -
par_distribute_input_by_ability ### bug #48290: round-robin does not distribute data based on business
par_distribute_input_by_ability ### Distribute input to jobs that are ready par_distribute_input_by_ability ### Distribute input to jobs that are ready
par_distribute_input_by_ability Job-slot n is 50% slower than n+1, so the order should be 1..7 par_distribute_input_by_ability Job-slot n is 50% slower than n+1, so the order should be 1..7
par_distribute_input_by_ability 1 par_distribute_input_by_ability 1
@ -538,6 +539,353 @@ par_print_before_halt_on_error 2 exit code 1
par_print_before_halt_on_error 2 0 0 par_print_before_halt_on_error 2 0 0
par_print_before_halt_on_error 2 parallel: This job failed: par_print_before_halt_on_error 2 parallel: This job failed:
par_print_before_halt_on_error 2 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ 2\ \>\ 0\ \?\ exit\ shift\ :\ exit\ not\ shift\; 1 par_print_before_halt_on_error 2 perl -e sleep\ \$ARGV\[0\]\;print\ STDERR\ @ARGV,\"\\n\"\;\ 2\ \>\ 0\ \?\ exit\ shift\ :\ exit\ not\ shift\; 1
par_results_compress 0
par_results_compress 1
par_results_csv bug #: --results csv
par_results_csv --header : --tag --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --lb --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --lb --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --files 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --lb --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --lb --compress 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --header : --tag --lb --compress ",
par_results_csv --header : --tag --lb --compress 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --header : --tag --lb --compress ",
par_results_csv --header : --tag --lb --compress 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --header : --tag --lb --compress ",
par_results_csv --header : --tag --lb --compress 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --header : --tag --lb --compress ",
par_results_csv --header : --tag --lb Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --lb 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --header : --tag --lb ",
par_results_csv --header : --tag --lb 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --header : --tag --lb ",
par_results_csv --header : --tag --lb 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --header : --tag --lb ",
par_results_csv --header : --tag --lb 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --header : --tag --lb ",
par_results_csv --header : --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --files 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --header : --tag --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag --compress 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --header : --tag --compress ",
par_results_csv --header : --tag --compress 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --header : --tag --compress ",
par_results_csv --header : --tag --compress 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --header : --tag --compress ",
par_results_csv --header : --tag --compress 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --header : --tag --compress ",
par_results_csv --header : --tag Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --tag 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --header : --tag ",
par_results_csv --header : --tag 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --header : --tag ",
par_results_csv --header : --tag 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --header : --tag ",
par_results_csv --header : --tag 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --header : --tag ",
par_results_csv --header : --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --lb --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --lb --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --files 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --lb --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --lb --compress 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv --header : --lb --compress ",
par_results_csv --header : --lb --compress 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv --header : --lb --compress ",
par_results_csv --header : --lb --compress 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --header : --lb --compress ",
par_results_csv --header : --lb --compress 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --header : --lb --compress ",
par_results_csv --header : --lb Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --lb 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv --header : --lb ",
par_results_csv --header : --lb 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv --header : --lb ",
par_results_csv --header : --lb 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --header : --lb ",
par_results_csv --header : --lb 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --header : --lb ",
par_results_csv --header : --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --files --compress 1,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 2,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 3,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --files 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --files 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --header : --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : --compress 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv --header : --compress ",
par_results_csv --header : --compress 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv --header : --compress ",
par_results_csv --header : --compress 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --header : --compress ",
par_results_csv --header : --compress 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --header : --compress ",
par_results_csv --header : Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,H2,H1,Stdout,Stderr
par_results_csv --header : 1,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv --header : ",
par_results_csv --header : 2,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv --header : ",
par_results_csv --header : 3,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --header : ",
par_results_csv --header : 4,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --header : ",
par_results_csv --tag --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --lb --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --lb --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --files 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --lb --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --lb --compress 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 H2 H1
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 H2 11
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 H2 12
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 22 H1
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 23 H1
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb --compress 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --tag --lb --compress ",
par_results_csv --tag --lb Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --lb 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 H2 H1
par_results_csv --tag --lb ",
par_results_csv --tag --lb 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 H2 11
par_results_csv --tag --lb ",
par_results_csv --tag --lb 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 H2 12
par_results_csv --tag --lb ",
par_results_csv --tag --lb 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 22 H1
par_results_csv --tag --lb ",
par_results_csv --tag --lb 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --tag --lb ",
par_results_csv --tag --lb 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --tag --lb ",
par_results_csv --tag --lb 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 23 H1
par_results_csv --tag --lb ",
par_results_csv --tag --lb 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --tag --lb ",
par_results_csv --tag --lb 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --tag --lb ",
par_results_csv --tag --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --files 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 /tmp/parallel-local-10s-tmpdir/tmpfile",
par_results_csv --tag --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag --compress 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 H2 H1
par_results_csv --tag --compress ",
par_results_csv --tag --compress 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 H2 11
par_results_csv --tag --compress ",
par_results_csv --tag --compress 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 H2 12
par_results_csv --tag --compress ",
par_results_csv --tag --compress 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 22 H1
par_results_csv --tag --compress ",
par_results_csv --tag --compress 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --tag --compress ",
par_results_csv --tag --compress 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --tag --compress ",
par_results_csv --tag --compress 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 23 H1
par_results_csv --tag --compress ",
par_results_csv --tag --compress 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --tag --compress ",
par_results_csv --tag --compress 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --tag --compress ",
par_results_csv --tag Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --tag 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1 H2 H1
par_results_csv --tag ",
par_results_csv --tag 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11 H2 11
par_results_csv --tag ",
par_results_csv --tag 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12 H2 12
par_results_csv --tag ",
par_results_csv --tag 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1 22 H1
par_results_csv --tag ",
par_results_csv --tag 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11 22 11
par_results_csv --tag ",
par_results_csv --tag 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12 22 12
par_results_csv --tag ",
par_results_csv --tag 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1 23 H1
par_results_csv --tag ",
par_results_csv --tag 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11 23 11
par_results_csv --tag ",
par_results_csv --tag 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12 23 12
par_results_csv --tag ",
par_results_csv --lb --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --lb --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --lb --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --files 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --lb --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --lb --compress 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1
par_results_csv --lb --compress ",
par_results_csv --lb --compress 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11
par_results_csv --lb --compress ",
par_results_csv --lb --compress 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12
par_results_csv --lb --compress ",
par_results_csv --lb --compress 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1
par_results_csv --lb --compress ",
par_results_csv --lb --compress 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv --lb --compress ",
par_results_csv --lb --compress 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv --lb --compress ",
par_results_csv --lb --compress 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1
par_results_csv --lb --compress ",
par_results_csv --lb --compress 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --lb --compress ",
par_results_csv --lb --compress 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --lb --compress ",
par_results_csv --lb Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --lb 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1
par_results_csv --lb ",
par_results_csv --lb 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11
par_results_csv --lb ",
par_results_csv --lb 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12
par_results_csv --lb ",
par_results_csv --lb 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1
par_results_csv --lb ",
par_results_csv --lb 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv --lb ",
par_results_csv --lb 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv --lb ",
par_results_csv --lb 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1
par_results_csv --lb ",
par_results_csv --lb 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --lb ",
par_results_csv --lb 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --lb ",
par_results_csv --files --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --files --compress 1,:,999.999,999.999,0,31,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 2,:,999.999,999.999,0,31,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 3,:,999.999,999.999,0,31,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 4,:,999.999,999.999,0,31,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 5,:,999.999,999.999,0,31,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 6,:,999.999,999.999,0,31,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 7,:,999.999,999.999,0,31,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 8,:,999.999,999.999,0,31,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files --compress 9,:,999.999,999.999,0,31,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --files 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --files 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,/tmp/parallel-local-10s-tmpdir/tmpfile,
par_results_csv --compress Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv --compress 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1
par_results_csv --compress ",
par_results_csv --compress 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11
par_results_csv --compress ",
par_results_csv --compress 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12
par_results_csv --compress ",
par_results_csv --compress 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1
par_results_csv --compress ",
par_results_csv --compress 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv --compress ",
par_results_csv --compress 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv --compress ",
par_results_csv --compress 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1
par_results_csv --compress ",
par_results_csv --compress 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv --compress ",
par_results_csv --compress 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv --compress ",
par_results_csv Seq,Host,Starttime,JobRuntime,Send,Receive,Exitval,Signal,Command,V1,V2,Stdout,Stderr
par_results_csv 1,:,999.999,999.999,0,6,0,0,"echo H2 H1",H2,H1,"H2 H1
par_results_csv ",
par_results_csv 2,:,999.999,999.999,0,6,0,0,"echo H2 11",H2,11,"H2 11
par_results_csv ",
par_results_csv 3,:,999.999,999.999,0,6,0,0,"echo H2 12",H2,12,"H2 12
par_results_csv ",
par_results_csv 4,:,999.999,999.999,0,6,0,0,"echo 22 H1",22,H1,"22 H1
par_results_csv ",
par_results_csv 5,:,999.999,999.999,0,6,0,0,"echo 22 11",22,11,"22 11
par_results_csv ",
par_results_csv 6,:,999.999,999.999,0,6,0,0,"echo 22 12",22,12,"22 12
par_results_csv ",
par_results_csv 7,:,999.999,999.999,0,6,0,0,"echo 23 H1",23,H1,"23 H1
par_results_csv ",
par_results_csv 8,:,999.999,999.999,0,6,0,0,"echo 23 11",23,11,"23 11
par_results_csv ",
par_results_csv 9,:,999.999,999.999,0,6,0,0,"echo 23 12",23,12,"23 12
par_results_csv ",
par_round_robin_blocks bug #49664: --round-robin does not complete par_round_robin_blocks bug #49664: --round-robin does not complete
par_round_robin_blocks 2 par_round_robin_blocks 2
par_testhalt ### testhalt --halt now,fail=0 par_testhalt ### testhalt --halt now,fail=0

View file

@ -1,9 +1,3 @@
par_bug_48290 ### bug #48290: round-robin does not distribute data based on business
par_bug_48290 Jobslot 1 is 256 times slower than jobslot 4 and should get much less data
par_bug_48290 4
par_bug_48290 3
par_bug_48290 2
par_bug_48290 1
par_linebuffer_matters_compress ### (--linebuffer) --compress --tag should give different output par_linebuffer_matters_compress ### (--linebuffer) --compress --tag should give different output
par_linebuffer_matters_compress OK: --linebuffer makes a difference par_linebuffer_matters_compress OK: --linebuffer makes a difference
par_linebuffer_matters_compress_tag ### (--linebuffer) --compress --tag should give different output par_linebuffer_matters_compress_tag ### (--linebuffer) --compress --tag should give different output

View file

@ -431,6 +431,461 @@ par_shuf $SQLITE :|sleep .3;echo 5 b|5|b|/tmp/parallel-bug49791-932/1/5/2/b/stdo
par_shuf $SQLITE :|sleep .3;echo 5 c|5|c|/tmp/parallel-bug49791-932/1/5/2/c/stdout|/tmp/parallel-bug49791-932/1/5/2/c/stderr par_shuf $SQLITE :|sleep .3;echo 5 c|5|c|/tmp/parallel-bug49791-932/1/5/2/c/stdout|/tmp/parallel-bug49791-932/1/5/2/c/stderr
par_shuf $SQLITE :|sleep .3;echo 5 d|5|d|/tmp/parallel-bug49791-932/1/5/2/d/stdout|/tmp/parallel-bug49791-932/1/5/2/d/stderr par_shuf $SQLITE :|sleep .3;echo 5 d|5|d|/tmp/parallel-bug49791-932/1/5/2/d/stdout|/tmp/parallel-bug49791-932/1/5/2/d/stderr
par_shuf $SQLITE :|sleep .3;echo 5 e|5|e|/tmp/parallel-bug49791-932/1/5/2/e/stdout|/tmp/parallel-bug49791-932/1/5/2/e/stderr par_shuf $SQLITE :|sleep .3;echo 5 e|5|e|/tmp/parallel-bug49791-932/1/5/2/e/stdout|/tmp/parallel-bug49791-932/1/5/2/e/stderr
p_wrapper par_sql_joblog \$MYSQL
par_sql_joblog $MYSQL ### should only give a single --joblog heading
par_sql_joblog $MYSQL ### --sqlmaster/--sqlworker
par_sql_joblog $MYSQL 1 a
par_sql_joblog $MYSQL 1 b
par_sql_joblog $MYSQL 1 c
par_sql_joblog $MYSQL 1 d
par_sql_joblog $MYSQL 1 e
par_sql_joblog $MYSQL 2 a
par_sql_joblog $MYSQL 2 b
par_sql_joblog $MYSQL 2 c
par_sql_joblog $MYSQL 2 d
par_sql_joblog $MYSQL 2 e
par_sql_joblog $MYSQL 3 a
par_sql_joblog $MYSQL 3 b
par_sql_joblog $MYSQL 3 c
par_sql_joblog $MYSQL 3 d
par_sql_joblog $MYSQL 3 e
par_sql_joblog $MYSQL 4 a
par_sql_joblog $MYSQL 4 b
par_sql_joblog $MYSQL 4 c
par_sql_joblog $MYSQL 4 d
par_sql_joblog $MYSQL 4 e
par_sql_joblog $MYSQL 5 a
par_sql_joblog $MYSQL 5 b
par_sql_joblog $MYSQL 5 c
par_sql_joblog $MYSQL 5 d
par_sql_joblog $MYSQL 5 e
par_sql_joblog $MYSQL Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
par_sql_joblog $MYSQL 1 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 a
par_sql_joblog $MYSQL 2 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 b
par_sql_joblog $MYSQL 3 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 c
par_sql_joblog $MYSQL 4 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 d
par_sql_joblog $MYSQL 5 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 e
par_sql_joblog $MYSQL 6 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 a
par_sql_joblog $MYSQL 7 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 b
par_sql_joblog $MYSQL 8 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 c
par_sql_joblog $MYSQL 9 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 d
par_sql_joblog $MYSQL 10 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 e
par_sql_joblog $MYSQL 11 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 a
par_sql_joblog $MYSQL 12 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 b
par_sql_joblog $MYSQL 13 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 c
par_sql_joblog $MYSQL 14 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 d
par_sql_joblog $MYSQL 15 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 e
par_sql_joblog $MYSQL 16 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 a
par_sql_joblog $MYSQL 17 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 b
par_sql_joblog $MYSQL 18 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 c
par_sql_joblog $MYSQL 19 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 d
par_sql_joblog $MYSQL 20 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 e
par_sql_joblog $MYSQL 21 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 a
par_sql_joblog $MYSQL 22 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 b
par_sql_joblog $MYSQL 23 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 c
par_sql_joblog $MYSQL 24 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 d
par_sql_joblog $MYSQL 25 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 e
par_sql_joblog $MYSQL ### --sqlandworker
par_sql_joblog $MYSQL Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
par_sql_joblog $MYSQL 1 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 a
par_sql_joblog $MYSQL 1 a
par_sql_joblog $MYSQL 1 b
par_sql_joblog $MYSQL 1 c
par_sql_joblog $MYSQL 1 d
par_sql_joblog $MYSQL 1 e
par_sql_joblog $MYSQL 2 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 b
par_sql_joblog $MYSQL 2 a
par_sql_joblog $MYSQL 2 b
par_sql_joblog $MYSQL 2 c
par_sql_joblog $MYSQL 2 d
par_sql_joblog $MYSQL 2 e
par_sql_joblog $MYSQL 3 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 c
par_sql_joblog $MYSQL 3 a
par_sql_joblog $MYSQL 3 b
par_sql_joblog $MYSQL 3 c
par_sql_joblog $MYSQL 3 d
par_sql_joblog $MYSQL 3 e
par_sql_joblog $MYSQL 4 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 d
par_sql_joblog $MYSQL 4 a
par_sql_joblog $MYSQL 4 b
par_sql_joblog $MYSQL 4 c
par_sql_joblog $MYSQL 4 d
par_sql_joblog $MYSQL 4 e
par_sql_joblog $MYSQL 5 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 e
par_sql_joblog $MYSQL 5 a
par_sql_joblog $MYSQL 5 b
par_sql_joblog $MYSQL 5 c
par_sql_joblog $MYSQL 5 d
par_sql_joblog $MYSQL 5 e
par_sql_joblog $MYSQL 6 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 a
par_sql_joblog $MYSQL 7 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 b
par_sql_joblog $MYSQL 8 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 c
par_sql_joblog $MYSQL 9 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 d
par_sql_joblog $MYSQL 10 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 e
par_sql_joblog $MYSQL 11 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 a
par_sql_joblog $MYSQL 12 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 b
par_sql_joblog $MYSQL 13 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 c
par_sql_joblog $MYSQL 14 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 d
par_sql_joblog $MYSQL 15 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 e
par_sql_joblog $MYSQL 16 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 a
par_sql_joblog $MYSQL 17 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 b
par_sql_joblog $MYSQL 18 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 c
par_sql_joblog $MYSQL 19 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 d
par_sql_joblog $MYSQL 20 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 e
par_sql_joblog $MYSQL 21 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 a
par_sql_joblog $MYSQL 22 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 b
par_sql_joblog $MYSQL 23 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 c
par_sql_joblog $MYSQL 24 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 d
par_sql_joblog $MYSQL 25 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 e
par_sql_joblog $MYSQL Exit=0
par_sql_joblog $MYSQL Exit=0
par_sql_joblog $MYSQL Host Command V1 V2 Stdout Stderr
par_sql_joblog $MYSQL : sleep .3;echo 1 a 1 a 1 a\n
par_sql_joblog $MYSQL : sleep .3;echo 1 b 1 b 1 b\n
par_sql_joblog $MYSQL : sleep .3;echo 1 c 1 c 1 c\n
par_sql_joblog $MYSQL : sleep .3;echo 1 d 1 d 1 d\n
par_sql_joblog $MYSQL : sleep .3;echo 1 e 1 e 1 e\n
par_sql_joblog $MYSQL : sleep .3;echo 2 a 2 a 2 a\n
par_sql_joblog $MYSQL : sleep .3;echo 2 b 2 b 2 b\n
par_sql_joblog $MYSQL : sleep .3;echo 2 c 2 c 2 c\n
par_sql_joblog $MYSQL : sleep .3;echo 2 d 2 d 2 d\n
par_sql_joblog $MYSQL : sleep .3;echo 2 e 2 e 2 e\n
par_sql_joblog $MYSQL : sleep .3;echo 3 a 3 a 3 a\n
par_sql_joblog $MYSQL : sleep .3;echo 3 b 3 b 3 b\n
par_sql_joblog $MYSQL : sleep .3;echo 3 c 3 c 3 c\n
par_sql_joblog $MYSQL : sleep .3;echo 3 d 3 d 3 d\n
par_sql_joblog $MYSQL : sleep .3;echo 3 e 3 e 3 e\n
par_sql_joblog $MYSQL : sleep .3;echo 4 a 4 a 4 a\n
par_sql_joblog $MYSQL : sleep .3;echo 4 b 4 b 4 b\n
par_sql_joblog $MYSQL : sleep .3;echo 4 c 4 c 4 c\n
par_sql_joblog $MYSQL : sleep .3;echo 4 d 4 d 4 d\n
par_sql_joblog $MYSQL : sleep .3;echo 4 e 4 e 4 e\n
par_sql_joblog $MYSQL : sleep .3;echo 5 a 5 a 5 a\n
par_sql_joblog $MYSQL : sleep .3;echo 5 b 5 b 5 b\n
par_sql_joblog $MYSQL : sleep .3;echo 5 c 5 c 5 c\n
par_sql_joblog $MYSQL : sleep .3;echo 5 d 5 d 5 d\n
par_sql_joblog $MYSQL : sleep .3;echo 5 e 5 e 5 e\n
p_wrapper par_sql_joblog \$PG
par_sql_joblog $PG ### should only give a single --joblog heading
par_sql_joblog $PG ### --sqlmaster/--sqlworker
par_sql_joblog $PG 1 a
par_sql_joblog $PG 1 b
par_sql_joblog $PG 1 c
par_sql_joblog $PG 1 d
par_sql_joblog $PG 1 e
par_sql_joblog $PG 2 a
par_sql_joblog $PG 2 b
par_sql_joblog $PG 2 c
par_sql_joblog $PG 2 d
par_sql_joblog $PG 2 e
par_sql_joblog $PG 3 a
par_sql_joblog $PG 3 b
par_sql_joblog $PG 3 c
par_sql_joblog $PG 3 d
par_sql_joblog $PG 3 e
par_sql_joblog $PG 4 a
par_sql_joblog $PG 4 b
par_sql_joblog $PG 4 c
par_sql_joblog $PG 4 d
par_sql_joblog $PG 4 e
par_sql_joblog $PG 5 a
par_sql_joblog $PG 5 b
par_sql_joblog $PG 5 c
par_sql_joblog $PG 5 d
par_sql_joblog $PG 5 e
par_sql_joblog $PG Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
par_sql_joblog $PG 1 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 a
par_sql_joblog $PG 2 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 b
par_sql_joblog $PG 3 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 c
par_sql_joblog $PG 4 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 d
par_sql_joblog $PG 5 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 e
par_sql_joblog $PG 6 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 a
par_sql_joblog $PG 7 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 b
par_sql_joblog $PG 8 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 c
par_sql_joblog $PG 9 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 d
par_sql_joblog $PG 10 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 e
par_sql_joblog $PG 11 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 a
par_sql_joblog $PG 12 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 b
par_sql_joblog $PG 13 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 c
par_sql_joblog $PG 14 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 d
par_sql_joblog $PG 15 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 e
par_sql_joblog $PG 16 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 a
par_sql_joblog $PG 17 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 b
par_sql_joblog $PG 18 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 c
par_sql_joblog $PG 19 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 d
par_sql_joblog $PG 20 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 e
par_sql_joblog $PG 21 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 a
par_sql_joblog $PG 22 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 b
par_sql_joblog $PG 23 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 c
par_sql_joblog $PG 24 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 d
par_sql_joblog $PG 25 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 e
par_sql_joblog $PG ### --sqlandworker
par_sql_joblog $PG Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
par_sql_joblog $PG 1 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 a
par_sql_joblog $PG 1 a
par_sql_joblog $PG 1 b
par_sql_joblog $PG 1 c
par_sql_joblog $PG 1 d
par_sql_joblog $PG 1 e
par_sql_joblog $PG 2 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 b
par_sql_joblog $PG 2 a
par_sql_joblog $PG 2 b
par_sql_joblog $PG 2 c
par_sql_joblog $PG 2 d
par_sql_joblog $PG 2 e
par_sql_joblog $PG 3 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 c
par_sql_joblog $PG 3 a
par_sql_joblog $PG 3 b
par_sql_joblog $PG 3 c
par_sql_joblog $PG 3 d
par_sql_joblog $PG 3 e
par_sql_joblog $PG 4 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 d
par_sql_joblog $PG 4 a
par_sql_joblog $PG 4 b
par_sql_joblog $PG 4 c
par_sql_joblog $PG 4 d
par_sql_joblog $PG 4 e
par_sql_joblog $PG 5 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 e
par_sql_joblog $PG 5 a
par_sql_joblog $PG 5 b
par_sql_joblog $PG 5 c
par_sql_joblog $PG 5 d
par_sql_joblog $PG 5 e
par_sql_joblog $PG 6 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 a
par_sql_joblog $PG 7 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 b
par_sql_joblog $PG 8 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 c
par_sql_joblog $PG 9 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 d
par_sql_joblog $PG 10 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 e
par_sql_joblog $PG 11 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 a
par_sql_joblog $PG 12 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 b
par_sql_joblog $PG 13 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 c
par_sql_joblog $PG 14 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 d
par_sql_joblog $PG 15 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 e
par_sql_joblog $PG 16 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 a
par_sql_joblog $PG 17 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 b
par_sql_joblog $PG 18 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 c
par_sql_joblog $PG 19 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 d
par_sql_joblog $PG 20 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 e
par_sql_joblog $PG 21 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 a
par_sql_joblog $PG 22 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 b
par_sql_joblog $PG 23 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 c
par_sql_joblog $PG 24 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 d
par_sql_joblog $PG 25 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 e
par_sql_joblog $PG Exit=0
par_sql_joblog $PG Exit=0
par_sql_joblog $PG host | command | v1 | v2 | stdout | stderr
par_sql_joblog $PG ------+-------------------+----+----+--------+--------
par_sql_joblog $PG : | sleep .3;echo 1 a | 1 | a | 1 a +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 1 b | 1 | b | 1 b +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 1 c | 1 | c | 1 c +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 1 d | 1 | d | 1 d +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 1 e | 1 | e | 1 e +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 2 a | 2 | a | 2 a +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 2 b | 2 | b | 2 b +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 2 c | 2 | c | 2 c +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 2 d | 2 | d | 2 d +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 2 e | 2 | e | 2 e +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 3 a | 3 | a | 3 a +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 3 b | 3 | b | 3 b +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 3 c | 3 | c | 3 c +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 3 d | 3 | d | 3 d +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 3 e | 3 | e | 3 e +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 4 a | 4 | a | 4 a +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 4 b | 4 | b | 4 b +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 4 c | 4 | c | 4 c +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 4 d | 4 | d | 4 d +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 4 e | 4 | e | 4 e +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 5 a | 5 | a | 5 a +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 5 b | 5 | b | 5 b +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 5 c | 5 | c | 5 c +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 5 d | 5 | d | 5 d +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG : | sleep .3;echo 5 e | 5 | e | 5 e +|
par_sql_joblog $PG | | | | |
par_sql_joblog $PG (25 rows)
par_sql_joblog $PG
p_wrapper par_sql_joblog \$SQLITE
par_sql_joblog $SQLITE ### should only give a single --joblog heading
par_sql_joblog $SQLITE ### --sqlmaster/--sqlworker
par_sql_joblog $SQLITE 1 a
par_sql_joblog $SQLITE 1 b
par_sql_joblog $SQLITE 1 c
par_sql_joblog $SQLITE 1 d
par_sql_joblog $SQLITE 1 e
par_sql_joblog $SQLITE 2 a
par_sql_joblog $SQLITE 2 b
par_sql_joblog $SQLITE 2 c
par_sql_joblog $SQLITE 2 d
par_sql_joblog $SQLITE 2 e
par_sql_joblog $SQLITE 3 a
par_sql_joblog $SQLITE 3 b
par_sql_joblog $SQLITE 3 c
par_sql_joblog $SQLITE 3 d
par_sql_joblog $SQLITE 3 e
par_sql_joblog $SQLITE 4 a
par_sql_joblog $SQLITE 4 b
par_sql_joblog $SQLITE 4 c
par_sql_joblog $SQLITE 4 d
par_sql_joblog $SQLITE 4 e
par_sql_joblog $SQLITE 5 a
par_sql_joblog $SQLITE 5 b
par_sql_joblog $SQLITE 5 c
par_sql_joblog $SQLITE 5 d
par_sql_joblog $SQLITE 5 e
par_sql_joblog $SQLITE Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
par_sql_joblog $SQLITE 1 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 a
par_sql_joblog $SQLITE 2 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 b
par_sql_joblog $SQLITE 3 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 c
par_sql_joblog $SQLITE 4 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 d
par_sql_joblog $SQLITE 5 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 e
par_sql_joblog $SQLITE 6 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 a
par_sql_joblog $SQLITE 7 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 b
par_sql_joblog $SQLITE 8 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 c
par_sql_joblog $SQLITE 9 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 d
par_sql_joblog $SQLITE 10 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 e
par_sql_joblog $SQLITE 11 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 a
par_sql_joblog $SQLITE 12 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 b
par_sql_joblog $SQLITE 13 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 c
par_sql_joblog $SQLITE 14 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 d
par_sql_joblog $SQLITE 15 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 e
par_sql_joblog $SQLITE 16 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 a
par_sql_joblog $SQLITE 17 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 b
par_sql_joblog $SQLITE 18 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 c
par_sql_joblog $SQLITE 19 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 d
par_sql_joblog $SQLITE 20 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 e
par_sql_joblog $SQLITE 21 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 a
par_sql_joblog $SQLITE 22 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 b
par_sql_joblog $SQLITE 23 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 c
par_sql_joblog $SQLITE 24 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 d
par_sql_joblog $SQLITE 25 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 e
par_sql_joblog $SQLITE ### --sqlandworker
par_sql_joblog $SQLITE Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
par_sql_joblog $SQLITE 1 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 a
par_sql_joblog $SQLITE 1 a
par_sql_joblog $SQLITE 1 b
par_sql_joblog $SQLITE 1 c
par_sql_joblog $SQLITE 1 d
par_sql_joblog $SQLITE 1 e
par_sql_joblog $SQLITE 2 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 b
par_sql_joblog $SQLITE 2 a
par_sql_joblog $SQLITE 2 b
par_sql_joblog $SQLITE 2 c
par_sql_joblog $SQLITE 2 d
par_sql_joblog $SQLITE 2 e
par_sql_joblog $SQLITE 3 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 c
par_sql_joblog $SQLITE 3 a
par_sql_joblog $SQLITE 3 b
par_sql_joblog $SQLITE 3 c
par_sql_joblog $SQLITE 3 d
par_sql_joblog $SQLITE 3 e
par_sql_joblog $SQLITE 4 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 d
par_sql_joblog $SQLITE 4 a
par_sql_joblog $SQLITE 4 b
par_sql_joblog $SQLITE 4 c
par_sql_joblog $SQLITE 4 d
par_sql_joblog $SQLITE 4 e
par_sql_joblog $SQLITE 5 : 999.999 999.999 0 0 0 0 sleep .3;echo 1 e
par_sql_joblog $SQLITE 5 a
par_sql_joblog $SQLITE 5 b
par_sql_joblog $SQLITE 5 c
par_sql_joblog $SQLITE 5 d
par_sql_joblog $SQLITE 5 e
par_sql_joblog $SQLITE 6 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 a
par_sql_joblog $SQLITE 7 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 b
par_sql_joblog $SQLITE 8 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 c
par_sql_joblog $SQLITE 9 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 d
par_sql_joblog $SQLITE 10 : 999.999 999.999 0 0 0 0 sleep .3;echo 2 e
par_sql_joblog $SQLITE 11 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 a
par_sql_joblog $SQLITE 12 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 b
par_sql_joblog $SQLITE 13 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 c
par_sql_joblog $SQLITE 14 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 d
par_sql_joblog $SQLITE 15 : 999.999 999.999 0 0 0 0 sleep .3;echo 3 e
par_sql_joblog $SQLITE 16 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 a
par_sql_joblog $SQLITE 17 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 b
par_sql_joblog $SQLITE 18 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 c
par_sql_joblog $SQLITE 19 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 d
par_sql_joblog $SQLITE 20 : 999.999 999.999 0 0 0 0 sleep .3;echo 4 e
par_sql_joblog $SQLITE 21 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 a
par_sql_joblog $SQLITE 22 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 b
par_sql_joblog $SQLITE 23 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 c
par_sql_joblog $SQLITE 24 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 d
par_sql_joblog $SQLITE 25 : 999.999 999.999 0 0 0 0 sleep .3;echo 5 e
par_sql_joblog $SQLITE Exit=0
par_sql_joblog $SQLITE Exit=0
par_sql_joblog $SQLITE Host|Command|V1|V2|Stdout|Stderr
par_sql_joblog $SQLITE :|sleep .3;echo 1 a|1|a|1 a
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 1 b|1|b|1 b
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 1 c|1|c|1 c
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 1 d|1|d|1 d
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 1 e|1|e|1 e
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 2 a|2|a|2 a
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 2 b|2|b|2 b
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 2 c|2|c|2 c
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 2 d|2|d|2 d
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 2 e|2|e|2 e
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 3 a|3|a|3 a
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 3 b|3|b|3 b
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 3 c|3|c|3 c
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 3 d|3|d|3 d
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 3 e|3|e|3 e
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 4 a|4|a|4 a
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 4 b|4|b|4 b
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 4 c|4|c|4 c
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 4 d|4|d|4 d
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 4 e|4|e|4 e
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 5 a|5|a|5 a
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 5 b|5|b|5 b
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 5 c|5|c|5 c
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 5 d|5|d|5 d
par_sql_joblog $SQLITE |
par_sql_joblog $SQLITE :|sleep .3;echo 5 e|5|e|5 e
par_sql_joblog $SQLITE |
p_wrapper par_sqlandworker \$MYSQL p_wrapper par_sqlandworker \$MYSQL
par_sqlandworker $MYSQL Exit=0 par_sqlandworker $MYSQL Exit=0
par_sqlandworker $MYSQL Exit=0 par_sqlandworker $MYSQL Exit=0
@ -575,92 +1030,142 @@ p_wrapper par_sqlandworker_compress_linebuffer_tag \$MYSQL
par_sqlandworker_compress_linebuffer_tag $MYSQL Exit=0 par_sqlandworker_compress_linebuffer_tag $MYSQL Exit=0
par_sqlandworker_compress_linebuffer_tag $MYSQL Exit=0 par_sqlandworker_compress_linebuffer_tag $MYSQL Exit=0
par_sqlandworker_compress_linebuffer_tag $MYSQL Host Command V1 V2 Stdout Stderr par_sqlandworker_compress_linebuffer_tag $MYSQL Host Command V1 V2 Stdout Stderr
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 1 a 1 a NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 1 a 1 a 1 a\t1 a\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 1 b 1 b NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 1 b 1 b 1 b\t1 b\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 1 c 1 c NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 1 c 1 c 1 c\t1 c\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 1 d 1 d NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 1 d 1 d 1 d\t1 d\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 1 e 1 e NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 1 e 1 e 1 e\t1 e\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 2 a 2 a NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 2 a 2 a 2 a\t2 a\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 2 b 2 b NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 2 b 2 b 2 b\t2 b\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 2 c 2 c NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 2 c 2 c 2 c\t2 c\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 2 d 2 d NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 2 d 2 d 2 d\t2 d\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 2 e 2 e NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 2 e 2 e 2 e\t2 e\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 3 a 3 a NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 3 a 3 a 3 a\t3 a\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 3 b 3 b NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 3 b 3 b 3 b\t3 b\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 3 c 3 c NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 3 c 3 c 3 c\t3 c\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 3 d 3 d NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 3 d 3 d 3 d\t3 d\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 3 e 3 e NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 3 e 3 e 3 e\t3 e\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 4 a 4 a NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 4 a 4 a 4 a\t4 a\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 4 b 4 b NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 4 b 4 b 4 b\t4 b\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 4 c 4 c NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 4 c 4 c 4 c\t4 c\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 4 d 4 d NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 4 d 4 d 4 d\t4 d\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 4 e 4 e NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 4 e 4 e 4 e\t4 e\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 a 5 a NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 a 5 a 5 a\t5 a\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 b 5 b NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 b 5 b 5 b\t5 b\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 c 5 c NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 c 5 c 5 c\t5 c\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 d 5 d NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 d 5 d 5 d\t5 d\n
par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 e 5 e NULL NULL par_sqlandworker_compress_linebuffer_tag $MYSQL : sleep .3;echo 5 e 5 e 5 e\t5 e\n
p_wrapper par_sqlandworker_compress_linebuffer_tag \$PG p_wrapper par_sqlandworker_compress_linebuffer_tag \$PG
par_sqlandworker_compress_linebuffer_tag $PG Exit=0 par_sqlandworker_compress_linebuffer_tag $PG Exit=0
par_sqlandworker_compress_linebuffer_tag $PG Exit=0 par_sqlandworker_compress_linebuffer_tag $PG Exit=0
par_sqlandworker_compress_linebuffer_tag $PG host | command | v1 | v2 | stdout | stderr par_sqlandworker_compress_linebuffer_tag $PG host | command | v1 | v2 | stdout | stderr
par_sqlandworker_compress_linebuffer_tag $PG ------+-------------------+----+----+--------+-------- par_sqlandworker_compress_linebuffer_tag $PG ------+-------------------+----+----+-------------+--------
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 1 a | 1 | a | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 1 a | 1 | a | 1 a 1 a+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 1 b | 1 | b | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 1 c | 1 | c | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 1 b | 1 | b | 1 b 1 b+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 1 d | 1 | d | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 1 e | 1 | e | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 1 c | 1 | c | 1 c 1 c+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 2 a | 2 | a | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 2 b | 2 | b | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 1 d | 1 | d | 1 d 1 d+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 2 c | 2 | c | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 2 d | 2 | d | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 1 e | 1 | e | 1 e 1 e+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 2 e | 2 | e | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 3 a | 3 | a | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 2 a | 2 | a | 2 a 2 a+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 3 b | 3 | b | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 3 c | 3 | c | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 2 b | 2 | b | 2 b 2 b+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 3 d | 3 | d | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 3 e | 3 | e | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 2 c | 2 | c | 2 c 2 c+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 4 a | 4 | a | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 4 b | 4 | b | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 2 d | 2 | d | 2 d 2 d+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 4 c | 4 | c | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 4 d | 4 | d | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 2 e | 2 | e | 2 e 2 e+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 4 e | 4 | e | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 5 a | 5 | a | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 3 a | 3 | a | 3 a 3 a+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 5 b | 5 | b | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 5 c | 5 | c | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 3 b | 3 | b | 3 b 3 b+|
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 5 d | 5 | d | | par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 5 e | 5 | e | | par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 3 c | 3 | c | 3 c 3 c+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 3 d | 3 | d | 3 d 3 d+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 3 e | 3 | e | 3 e 3 e+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 4 a | 4 | a | 4 a 4 a+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 4 b | 4 | b | 4 b 4 b+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 4 c | 4 | c | 4 c 4 c+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 4 d | 4 | d | 4 d 4 d+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 4 e | 4 | e | 4 e 4 e+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 5 a | 5 | a | 5 a 5 a+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 5 b | 5 | b | 5 b 5 b+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 5 c | 5 | c | 5 c 5 c+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 5 d | 5 | d | 5 d 5 d+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG : | sleep .3;echo 5 e | 5 | e | 5 e 5 e+|
par_sqlandworker_compress_linebuffer_tag $PG | | | | |
par_sqlandworker_compress_linebuffer_tag $PG (25 rows) par_sqlandworker_compress_linebuffer_tag $PG (25 rows)
par_sqlandworker_compress_linebuffer_tag $PG par_sqlandworker_compress_linebuffer_tag $PG
p_wrapper par_sqlandworker_compress_linebuffer_tag \$SQLITE p_wrapper par_sqlandworker_compress_linebuffer_tag \$SQLITE
par_sqlandworker_compress_linebuffer_tag $SQLITE Exit=0 par_sqlandworker_compress_linebuffer_tag $SQLITE Exit=0
par_sqlandworker_compress_linebuffer_tag $SQLITE Exit=0 par_sqlandworker_compress_linebuffer_tag $SQLITE Exit=0
par_sqlandworker_compress_linebuffer_tag $SQLITE Host|Command|V1|V2|Stdout|Stderr par_sqlandworker_compress_linebuffer_tag $SQLITE Host|Command|V1|V2|Stdout|Stderr
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 1 a|1|a|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 1 a|1|a|1 a 1 a
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 1 b|1|b|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 1 c|1|c|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 1 b|1|b|1 b 1 b
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 1 d|1|d|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 1 e|1|e|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 1 c|1|c|1 c 1 c
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 2 a|2|a|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 2 b|2|b|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 1 d|1|d|1 d 1 d
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 2 c|2|c|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 2 d|2|d|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 1 e|1|e|1 e 1 e
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 2 e|2|e|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 3 a|3|a|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 2 a|2|a|2 a 2 a
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 3 b|3|b|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 3 c|3|c|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 2 b|2|b|2 b 2 b
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 3 d|3|d|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 3 e|3|e|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 2 c|2|c|2 c 2 c
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 4 a|4|a|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 4 b|4|b|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 2 d|2|d|2 d 2 d
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 4 c|4|c|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 4 d|4|d|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 2 e|2|e|2 e 2 e
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 4 e|4|e|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 5 a|5|a|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 3 a|3|a|3 a 3 a
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 5 b|5|b|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 5 c|5|c|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 3 b|3|b|3 b 3 b
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 5 d|5|d|| par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 5 e|5|e|| par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 3 c|3|c|3 c 3 c
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 3 d|3|d|3 d 3 d
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 3 e|3|e|3 e 3 e
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 4 a|4|a|4 a 4 a
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 4 b|4|b|4 b 4 b
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 4 c|4|c|4 c 4 c
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 4 d|4|d|4 d 4 d
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 4 e|4|e|4 e 4 e
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 5 a|5|a|5 a 5 a
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 5 b|5|b|5 b 5 b
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 5 c|5|c|5 c 5 c
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 5 d|5|d|5 d 5 d
par_sqlandworker_compress_linebuffer_tag $SQLITE |
par_sqlandworker_compress_linebuffer_tag $SQLITE :|sleep .3;echo 5 e|5|e|5 e 5 e
par_sqlandworker_compress_linebuffer_tag $SQLITE |
p_wrapper par_sqlandworker_linebuffer \$MYSQL p_wrapper par_sqlandworker_linebuffer \$MYSQL
par_sqlandworker_linebuffer $MYSQL Exit=0 par_sqlandworker_linebuffer $MYSQL Exit=0
par_sqlandworker_linebuffer $MYSQL Exit=0 par_sqlandworker_linebuffer $MYSQL Exit=0
@ -1505,31 +2010,31 @@ p_wrapper par_sqlandworker_unbuffer \$MYSQL
par_sqlandworker_unbuffer $MYSQL Exit=0 par_sqlandworker_unbuffer $MYSQL Exit=0
par_sqlandworker_unbuffer $MYSQL Exit=0 par_sqlandworker_unbuffer $MYSQL Exit=0
par_sqlandworker_unbuffer $MYSQL Host Command V1 V2 Stdout Stderr par_sqlandworker_unbuffer $MYSQL Host Command V1 V2 Stdout Stderr
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 a 1 a NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 a 1 a
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 b 1 b NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 b 1 b
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 c 1 c NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 c 1 c
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 d 1 d NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 d 1 d
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 e 1 e NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 1 e 1 e
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 a 2 a NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 a 2 a
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 b 2 b NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 b 2 b
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 c 2 c NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 c 2 c
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 d 2 d NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 d 2 d
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 e 2 e NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 2 e 2 e
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 a 3 a NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 a 3 a
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 b 3 b NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 b 3 b
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 c 3 c NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 c 3 c
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 d 3 d NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 d 3 d
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 e 3 e NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 3 e 3 e
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 a 4 a NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 a 4 a
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 b 4 b NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 b 4 b
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 c 4 c NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 c 4 c
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 d 4 d NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 d 4 d
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 e 4 e NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 4 e 4 e
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 a 5 a NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 a 5 a
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 b 5 b NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 b 5 b
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 c 5 c NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 c 5 c
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 d 5 d NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 d 5 d
par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 e 5 e NULL NULL par_sqlandworker_unbuffer $MYSQL : sleep .3;echo 5 e 5 e
p_wrapper par_sqlandworker_unbuffer \$PG p_wrapper par_sqlandworker_unbuffer \$PG
par_sqlandworker_unbuffer $PG Exit=0 par_sqlandworker_unbuffer $PG Exit=0
par_sqlandworker_unbuffer $PG Exit=0 par_sqlandworker_unbuffer $PG Exit=0

View file

@ -89,67 +89,67 @@ par_csh_funky Funky-  !"#$%&'()*+,-./0123456789:;<=
par_csh_funky func_echo: Command not found. par_csh_funky func_echo: Command not found.
par_csh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ par_csh_funky \\\\\\\\ \ \ \ \ \\\\\\\\\\\\\\ \!\"\#\$%\&\'\(\)\*+,-./0123456789:\;\<\=\>\?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]\^_\`abcdefghijklmnopqrstuvwxyz\{\|\}\~<7F>\\ƒ\„\…\†\‡\ˆ\‰\Š\\Œ\<5C>\Ž\<5C>\<5C>\\\“\”\•\\—\˜\™\š\\œ\<5C>\ž\Ÿ\ \¡\¢\£\¤\¥\¦\§\¨\©\ª\«\¬\­\®\¯\°\±\²\³\´\µ\¶\·\¸\¹\º\»\¼\½\¾\¿\À\Á\Â\Ã\Ä\Å\Æ\Ç\È\É\Ê\Ë\Ì\Í\Î\Ï\Ð\Ñ\Ò\Ó\Ô\Õ\Ö\×\Ø\Ù\Ú\Û\Ü\Ý\Þ\ß\à\á\â\ã\ä\å\æ\ç\è\é\ê\ë\ì\í\î\ï\ð\ñ\ò\ó\ô\õ\ö\÷\ø\ù\ú\û\ü\ý\þ\ÿ
par_csh_man ### csh par_csh_man ### csh
par_csh_man ### From man env_parallel
par_csh_man aliases work
par_csh_man aliases work
par_csh_man aliases work
par_csh_man aliases work
par_csh_man variables work
par_csh_man variables work
par_csh_man variables work
par_csh_man variables work
par_csh_man arrays
par_csh_man work,
par_csh_man too
par_csh_man arrays
par_csh_man work,
par_csh_man too
par_csh_man arrays
par_csh_man work,
par_csh_man too
par_csh_man arrays
par_csh_man work,
par_csh_man too
par_csh_man exit value 2 should be 2
par_csh_man Unknown option: no-such-option
par_csh_man Usage:
par_csh_man par_csh_man
par_csh_man parallel [options] [command [arguments]] < list_of_arguments
par_csh_man parallel [options] [command [arguments]] (::: arguments|:::: argfile(s))...
par_csh_man cat ... | parallel --pipe [options] [command [arguments]]
par_csh_man par_csh_man
par_csh_man -j n Run n jobs in parallel par_csh_man
par_csh_man -k Keep same order par_csh_man
par_csh_man -X Multiple arguments with context replace par_csh_man
par_csh_man --colsep regexp Split input on regexp for positional replacements par_csh_man
par_csh_man {} {.} {/} {/.} {#} {%} {= perl code =} Replacement strings par_csh_man
par_csh_man {3} {3.} {3/} {3/.} {=3 perl code =} Positional replacement strings par_csh_man
par_csh_man With --plus: {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = {..}.{+..} = par_csh_man
par_csh_man {+/}/{/..}.{+..} = {...}.{+...} = {+/}/{/...}.{+...} par_csh_man {+/}/{/..}.{+..} = {...}.{+...} = {+/}/{/...}.{+...}
par_csh_man par_csh_man ;login: The USENIX Magazine, February 2011:42-47.
par_csh_man -S sshlogin Example: foo@server.example.com par_csh_man O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
par_csh_man --slf .. Use ~/.parallel/sshloginfile as the list of sshlogins par_csh_man ### From man env_parallel
par_csh_man --trc {}.bar Shorthand for --transfer --return {}.bar --cleanup par_csh_man --colsep regexp Split input on regexp for positional replacements
par_csh_man --onall Run the given command with argument on all sshlogins
par_csh_man --nonall Run the given command with no arguments on all sshlogins par_csh_man --nonall Run the given command with no arguments on all sshlogins
par_csh_man par_csh_man --onall Run the given command with argument on all sshlogins
par_csh_man --pipe Split stdin (standard input) to multiple jobs. par_csh_man --pipe Split stdin (standard input) to multiple jobs.
par_csh_man --recend str Record end separator for --pipe. par_csh_man --recend str Record end separator for --pipe.
par_csh_man --recstart str Record start separator for --pipe. par_csh_man --recstart str Record start separator for --pipe.
par_csh_man par_csh_man --slf .. Use ~/.parallel/sshloginfile as the list of sshlogins
par_csh_man See 'man parallel' for details par_csh_man --trc {}.bar Shorthand for --transfer --return {}.bar --cleanup
par_csh_man par_csh_man -S sshlogin Example: foo@server.example.com
par_csh_man -X Multiple arguments with context replace
par_csh_man -j n Run n jobs in parallel
par_csh_man -k Keep same order
par_csh_man Academic tradition requires you to cite works you base your article on. par_csh_man Academic tradition requires you to cite works you base your article on.
par_csh_man When using programs that use GNU Parallel to process data for publication
par_csh_man please cite:
par_csh_man
par_csh_man O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
par_csh_man ;login: The USENIX Magazine, February 2011:42-47.
par_csh_man
par_csh_man This helps funding further development; AND IT WON'T COST YOU A CENT.
par_csh_man If you pay 10000 EUR you should feel free to use GNU Parallel without citing. par_csh_man If you pay 10000 EUR you should feel free to use GNU Parallel without citing.
par_csh_man par_csh_man See 'man parallel' for details
par_csh_man This helps funding further development; AND IT WON'T COST YOU A CENT.
par_csh_man Unknown option: no-such-option
par_csh_man Usage:
par_csh_man When using programs that use GNU Parallel to process data for publication
par_csh_man With --plus: {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = {..}.{+..} =
par_csh_man aliases work
par_csh_man aliases work
par_csh_man aliases work
par_csh_man aliases work
par_csh_man arrays
par_csh_man arrays
par_csh_man arrays
par_csh_man arrays
par_csh_man cat ... | parallel --pipe [options] [command [arguments]]
par_csh_man exit value -1 should be 255 par_csh_man exit value -1 should be 255
par_csh_man exit value 2 should be 2
par_csh_man parallel [options] [command [arguments]] (::: arguments|:::: argfile(s))...
par_csh_man parallel [options] [command [arguments]] < list_of_arguments
par_csh_man please cite:
par_csh_man too
par_csh_man too
par_csh_man too
par_csh_man too
par_csh_man variables work
par_csh_man variables work
par_csh_man variables work
par_csh_man variables work
par_csh_man work,
par_csh_man work,
par_csh_man work,
par_csh_man work,
par_csh_man {3} {3.} {3/} {3/.} {=3 perl code =} Positional replacement strings
par_csh_man {} {.} {/} {/.} {#} {%} {= perl code =} Replacement strings
par_csh_underscore ### csh par_csh_underscore ### csh
par_csh_underscore ### Testing of --env _ par_csh_underscore ### Testing of --env _
par_csh_underscore #: Command not found. par_csh_underscore #: Command not found.