parallel: ETA format changed. SHM+joblog testsuite fixed.

This commit is contained in:
Ole Tange 2014-02-14 00:10:49 +01:00
parent 4ef63ba2e1
commit e014e33743
7 changed files with 53 additions and 18 deletions

View file

@ -204,24 +204,42 @@ cc:Sandro Cazzaniga <kharec@mandriva.org>,
Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>, Ryoichiro Suzuki <ryoichiro.suzuki@gmail.com>,
Jesse Alama <jesse.alama@gmail.com> Jesse Alama <jesse.alama@gmail.com>
Subject: GNU Parallel 20140222 ('Sochi') released Subject: GNU Parallel 20140222 ('Со́чи') released
GNU Parallel 20140222 ('Sochi') has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/ GNU Parallel 20140222 ('Со́чи') has been released. It is available for download at: http://ftp.gnu.org/gnu/parallel/
The --compress change is so big that this release is of alpha quality.
New in this release: New in this release:
* --tollef has been retired. * --tollef has been retired.
* --compress has be redesigned due to bugs.
* GNU Parallel was cited in: Speaker Verification and Keyword Spotting * GNU Parallel was cited in: Speaker Verification and Keyword Spotting
Systems for Forensic Applications Systems for Forensic Applications
http://lantana.tenet.res.in/website_files/thesis/Phd/srikanth.pdf http://lantana.tenet.res.in/website_files/thesis/Phd/srikanth.pdf
* GNU Parallel was used (unfortunately without citation) in:
Performance and Energy Efficiency of Common Compression /
Decompression Utilities
http://www.researchgate.net/publication/243962643_Performance_and_Energy_Efficiency_of_Common_CompressionDecompression_Utilities_An_Experimental_Study_in_Mobile_and_Workstation_Computer_Platforms/file/3deec51d1dbc0474f9.pdf
* GNU Parallel is co-distributed with RepeatExplorer * GNU Parallel is co-distributed with RepeatExplorer
http://www.vcru.wisc.edu/simonlab/bioinformatics/programs/repeatexplorer/README.txt http://www.vcru.wisc.edu/simonlab/bioinformatics/programs/repeatexplorer/README.txt
* Convert MP3 to a scrolling spectrum waterfall plot video
http://jdesbonnet.blogspot.dk/2014/02/convert-mp3-to-scrolling-spectrum.html
* PHP wrapper class for the GNU Parallel tool * PHP wrapper class for the GNU Parallel tool
https://github.com/geopal-solutions/gnu-parallel-wrapper/tree/master https://github.com/geopal-solutions/gnu-parallel-wrapper/tree/master
* Single-Thread-Programme auf Multicore-Rechnern parallelisieren
http://www.adlerweb.info/blog/2014/02/08/linux-single-thread-programme-auf-multicore-rechnern-parallelisieren
* Распараллеливаем процессы для ускорения вычислений и выполнения заданий в Linux
http://savepearlharbor.com/?p=210480
* Bug fixes and man page updates. * Bug fixes and man page updates.

View file

@ -1624,7 +1624,7 @@ sub progress {
} else { } else {
$this_eta = $Private::last_eta; $this_eta = $Private::last_eta;
} }
$eta = sprintf("ETA: %ds %dleft %.2favg ", $this_eta, $left, $avgtime); $eta = sprintf("ETA: %ds Left: %d AVG: %.2fs ", $this_eta, $left, $avgtime);
if($opt::bar) { if($opt::bar) {
my $arg = $Global::newest_job ? my $arg = $Global::newest_job ?
$Global::newest_job->{'commandline'}->simple_replace_placeholders($Global::replace{"{}"}) : ""; $Global::newest_job->{'commandline'}->simple_replace_placeholders($Global::replace{"{}"}) : "";

View file

@ -3,6 +3,13 @@
# Simple jobs that never fails # Simple jobs that never fails
# Each should be taking 30-100s and be possible to run in parallel # Each should be taking 30-100s and be possible to run in parallel
# I.e.: No race conditions, no logins # I.e.: No race conditions, no logins
# Assume /tmp/shm is easy to fill up
export SHM=/tmp/shm/parallel
mkdir -p $SHM
sudo umount -l $SHM
sudo mount -t tmpfs -o size=10% none $SHM
cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -k -j4 -L1 cat <<'EOF' | sed -e 's/;$/; /;s/$SERVER1/'$SERVER1'/;s/$SERVER2/'$SERVER2'/' | stdout parallel -k -j4 -L1
echo '### Test race condition on 8 CPU (my laptop)'; echo '### Test race condition on 8 CPU (my laptop)';
seq 1 5000000 > /tmp/parallel_test; seq 1 5000000 > /tmp/parallel_test;
@ -11,7 +18,7 @@ echo '### Test race condition on 8 CPU (my laptop)';
echo '**' echo '**'
echo "### Test --tmpdir running full. bug #40733 was caused by this" echo "### Test --tmpdir running full. bug #40733 was caused by this"
stdout parallel -j1 --tmpdir /run/shm cat /dev/zero ::: dummy stdout parallel -j1 --tmpdir $SHM cat /dev/zero ::: dummy
echo '**' echo '**'

View file

@ -143,7 +143,7 @@ echo '### Test {#}'
seq 1 10 | parallel -k echo {#} seq 1 10 | parallel -k echo {#}
echo '### Test --seqreplace and line too long' echo '### Test --seqreplace and line too long'
seq 1 100 | stdout parallel -k --seqreplace I echo $(perl -e 'print "I"x130000') \|wc seq 1 100 | stdout parallel -k --seqreplace I echo $(perl -e 'print "I"x130000') \|wc | uniq
echo '### bug #37042: -J foo is taken from the whole command line - not just the part before the command' echo '### bug #37042: -J foo is taken from the whole command line - not just the part before the command'
echo '--tagstring foo' > ~/.parallel/bug_37042_profile; echo '--tagstring foo' > ~/.parallel/bug_37042_profile;

View file

@ -1,25 +1,36 @@
#!/bin/bash #!/bin/bash
# Assume /dev/shm is easy to fill up # Assume /dev/shm is easy to fill up
mkdir -p /dev/shm/parallel SHM=/tmp/shm/parallel
mkdir -p $SHM
sudo umount -l $SHM
sudo mount -t tmpfs -o size=10% none $SHM
echo '3 x terminated is OK' >&2
echo '### Test $TMPDIR' echo '### Test $TMPDIR'
TMPDIR=/dev/shm/parallel stdout timeout -k 1 6 parallel head -c 2000m '<'{} >/dev/null ::: /dev/zero & TMPDIR=$SHM stdout timeout -k 1 6 parallel pv -qL10m {} ::: /dev/zero >/dev/null &
seq 1 200 | parallel -j1 "df /dev/shm | parallel -k --colsep ' +' echo {4}|tail -n 1;sleep 0.1" \ PID=$!
| stdout timeout -k 1 10 perl -ne 'BEGIN{$a=<>} $b=<>; if ($a-1000 > $b) { print "More than 1 MB gone. Good!\n"; exit }' seq 1 200 | parallel -j1 "df $SHM | parallel -k --colsep ' +' echo {4}|tail -n 1;sleep 0.1" \
| stdout timeout -k 1 10 perl -ne 'BEGIN{$a=<>} $b=<>;
if ($a-1000 > $b) { print "More than 1 MB gone. Good!\n";exit }'
kill $PID
wait wait
sleep 0.1 sleep 0.1
echo '### Test --tmpdir' echo '### Test --tmpdir'
stdout timeout -k 1 6 parallel --tmpdir /dev/shm/parallel head -c 2000m '<'{} >/dev/null ::: /dev/zero & stdout timeout -k 1 6 parallel --tmpdir $SHM pv -qL10m {} ::: /dev/zero >/dev/null &
seq 1 200 | parallel -j1 "df /dev/shm | parallel -k --colsep ' +' echo {4}|tail -n 1;sleep 0.1" \ PID=$!
seq 1 200 | parallel -j1 "df $SHM | parallel -k --colsep ' +' echo {4}|tail -n 1;sleep 0.1" \
| stdout timeout -k 1 10 perl -ne 'BEGIN{$a=<>} $b=<>; if ($a-1000 > $b) { print "More than 1 MB gone. Good!\n"; exit }' | stdout timeout -k 1 10 perl -ne 'BEGIN{$a=<>} $b=<>; if ($a-1000 > $b) { print "More than 1 MB gone. Good!\n"; exit }'
kill $PID
wait wait
sleep 0.1 sleep 0.1
echo '### Test $TMPDIR and --tmpdir' echo '### Test $TMPDIR and --tmpdir'
TMPDIR=/tmp stdout timeout -k 1 6 parallel --tmpdir /dev/shm/parallel head -c 2000m '<'{} >/dev/null ::: /dev/zero & TMPDIR=/tmp stdout timeout -k 1 6 parallel --tmpdir $SHM pv -qL10m {} ::: /dev/zero >/dev/null &
seq 1 200 | parallel -j1 "df /dev/shm | parallel -k --colsep ' +' echo {4}|tail -n 1;sleep 0.1" \ PID=$!
seq 1 200 | parallel -j1 "df $SHM | parallel -k --colsep ' +' echo {4}|tail -n 1;sleep 0.1" \
| stdout timeout -k 1 10 perl -ne 'BEGIN{$a=<>} $b=<>; if ($a-1000 > $b) { print "More than 1 MB gone. Good!\n"; exit }' | stdout timeout -k 1 10 perl -ne 'BEGIN{$a=<>} $b=<>; if ($a-1000 > $b) { print "More than 1 MB gone. Good!\n"; exit }'
kill $PID
wait wait
sleep 0.1 sleep 0.1

View file

@ -258,7 +258,6 @@ o
10 10
### Test --seqreplace and line too long ### Test --seqreplace and line too long
1 1 130001 1 1 130001
1 1 130001
parallel: Error: Command line too long (260009 >= 131071) at number 9: 10... parallel: Error: Command line too long (260009 >= 131071) at number 9: 10...
### bug #37042: -J foo is taken from the whole command line - not just the part before the command ### bug #37042: -J foo is taken from the whole command line - not just the part before the command
foo tag_with_foo foo tag_with_foo

View file

@ -90,14 +90,14 @@ echo '### -l -n with pipe'
echo '### bug #39360: --joblog does not work with --pipe' echo '### bug #39360: --joblog does not work with --pipe'
### bug #39360: --joblog does not work with --pipe ### bug #39360: --joblog does not work with --pipe
seq 100 | parallel --joblog - --pipe wc | tr '0-9' 'X' seq 100 | parallel --joblog - --pipe wc | tr '0-9' 'X'
Seq Host Starttime Runtime Send Receive Exitval Signal Command Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
X : XXXXXXXXXX.XXX X.XXX X X X X wc X : XXXXXXXXXX.XXX X.XXX X X X X wc
XXX XXX XXX XXX XXX XXX
echo '### bug #39572: --tty and --joblog do not work' echo '### bug #39572: --tty and --joblog do not work'
### bug #39572: --tty and --joblog do not work ### bug #39572: --tty and --joblog do not work
seq 1 | parallel --joblog - -u true | tr '0-9' 'X' seq 1 | parallel --joblog - -u true | tr '0-9' 'X'
Seq Host Starttime Runtime Send Receive Exitval Signal Command Seq Host Starttime JobRuntime Send Receive Exitval Signal Command
X : XXXXXXXXXX.XXX X.XXX X X X X true X X : XXXXXXXXXX.XXX X.XXX X X X X true X
echo '### How do we deal with missing $HOME' echo '### How do we deal with missing $HOME'
### How do we deal with missing $HOME ### How do we deal with missing $HOME
unset HOME; stdout perl -w $(which parallel) -k echo ::: 1 2 3 unset HOME; stdout perl -w $(which parallel) -k echo ::: 1 2 3