mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-22 05:57:54 +00:00
parallel: Use --total-jobs + --bar if input is generated slowly.
This commit is contained in:
parent
53e3f5b7a3
commit
466e184d5f
|
@ -176,6 +176,10 @@ torsocks git push
|
||||||
torsocks git push origin $TAG
|
torsocks git push origin $TAG
|
||||||
torsocks git push origin $YYYYMMDD
|
torsocks git push origin $YYYYMMDD
|
||||||
|
|
||||||
|
git branch -d premaster
|
||||||
|
git branch premaster
|
||||||
|
|
||||||
|
|
||||||
== Zenodo ==
|
== Zenodo ==
|
||||||
|
|
||||||
Add tar.bz2 [Start upload] and [Publish].
|
Add tar.bz2 [Start upload] and [Publish].
|
||||||
|
@ -255,40 +259,23 @@ from:tange@gnu.org
|
||||||
to:parallel@gnu.org, bug-parallel@gnu.org
|
to:parallel@gnu.org, bug-parallel@gnu.org
|
||||||
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
stable-bcc: Jesse Alama <jessealama@fastmail.fm>
|
||||||
|
|
||||||
Subject: GNU Parallel 20221022 ('Nord Stream') released
|
Subject: GNU Parallel 20221122 ('Lula/#MashaAmina') released
|
||||||
|
|
||||||
GNU Parallel 20221022 ('Nord Stream') has been released. It is available for download at: lbry://@GnuParallel:4
|
GNU Parallel 20221122 ('<<>>') has been released. It is available for download at: lbry://@GnuParallel:4
|
||||||
|
|
||||||
Quote of the month:
|
Quote of the month:
|
||||||
|
|
||||||
If used properly, #gnuparallel actually enables time travel.
|
<<>>
|
||||||
-- Dr. James Wasmuth @jdwasmuth@twitter
|
|
||||||
|
|
||||||
New in this release:
|
New in this release:
|
||||||
|
|
||||||
* --latest-line chops line length at terminal width.
|
* <<>>
|
||||||
|
|
||||||
* Determine max command length faster on Microsoft Windows.
|
|
||||||
|
|
||||||
* Bug fixes and man page updates.
|
* Bug fixes and man page updates.
|
||||||
|
|
||||||
News about GNU Parallel:
|
News about GNU Parallel:
|
||||||
|
|
||||||
* Distributed Task Processing with GNU Parallel https://www.youtube.com/watch?v=usbMLggdMgc
|
* <<>>
|
||||||
|
|
||||||
* GNU Parallel workflow for many small, independent runs https://docs.csc.fi/support/tutorials/many/
|
|
||||||
|
|
||||||
* Copy a File To Multiple Directories With A Single Command on Linux https://www.linuxfordevices.com/tutorials/linux/copy-file-to-multiple-directories-with-one-command
|
|
||||||
|
|
||||||
* Behind The Scenes: The Power Of Simple Command Line Tools At Cloud Scale https://blog.gdeltproject.org/behind-the-scenes-the-power-of-simple-command-line-tools-at-cloud-scale/
|
|
||||||
|
|
||||||
* Run lz4 compression in parallel using GNU parallel https://www.openguru.com/2022/09/
|
|
||||||
|
|
||||||
* Xargs / Parallel With Code Examples https://www.folkstalk.com/2022/09/xargs-parallel-with-code-examples.html
|
|
||||||
|
|
||||||
* Parallel processing on a single node with GNU Parallel https://www3.cs.stonybrook.edu/~cse416/Section01/Slides/SeaWulfIntro_CSE416_09222022.pdf
|
|
||||||
|
|
||||||
* Using GNU parallel painlessly -- from basics to bioinformatics job orchestration https://www.youtube.com/watch?v=qypUdm-IE9c
|
|
||||||
|
|
||||||
|
|
||||||
GNU Parallel - For people who live life in the parallel lane.
|
GNU Parallel - For people who live life in the parallel lane.
|
||||||
|
|
|
@ -1922,6 +1922,8 @@ sub options_completion_hash() {
|
||||||
("eta[Show the estimated number of seconds before finishing]"
|
("eta[Show the estimated number of seconds before finishing]"
|
||||||
=> \$opt::eta),
|
=> \$opt::eta),
|
||||||
"bar[Show progress as a progress bar]" => \$opt::bar,
|
"bar[Show progress as a progress bar]" => \$opt::bar,
|
||||||
|
("total-jobs|totaljobs|total=s".
|
||||||
|
"[Set total number of jobs]" => \$opt::totaljobs),
|
||||||
"shuf[Shuffle jobs]" => \$opt::shuf,
|
"shuf[Shuffle jobs]" => \$opt::shuf,
|
||||||
("arg-sep|argsep=s".
|
("arg-sep|argsep=s".
|
||||||
"[Use sep-str instead of ::: as separator string]:sep-str"
|
"[Use sep-str instead of ::: as separator string]:sep-str"
|
||||||
|
@ -8873,7 +8875,9 @@ sub total_jobs($) {
|
||||||
::error("--pipe is incompatible with --eta/--bar/--shuf");
|
::error("--pipe is incompatible with --eta/--bar/--shuf");
|
||||||
::wait_and_exit(255);
|
::wait_and_exit(255);
|
||||||
}
|
}
|
||||||
if($opt::sqlworker) {
|
if($opt::totaljobs) {
|
||||||
|
$self->{'total_jobs'} = $opt::totaljobs;
|
||||||
|
} elsif($opt::sqlworker) {
|
||||||
$self->{'total_jobs'} = $Global::sql->total_jobs();
|
$self->{'total_jobs'} = $Global::sql->total_jobs();
|
||||||
} else {
|
} else {
|
||||||
my $record;
|
my $record;
|
||||||
|
|
|
@ -556,6 +556,8 @@ It is compatible with B<zenity>:
|
||||||
2> >(perl -pe 'BEGIN{$/="\r";$|=1};s/\r/\n/g' |
|
2> >(perl -pe 'BEGIN{$/="\r";$|=1};s/\r/\n/g' |
|
||||||
zenity --progress --auto-kill) | wc
|
zenity --progress --auto-kill) | wc
|
||||||
|
|
||||||
|
See also: B<--eta> B<--progress> B<--total-jobs>
|
||||||
|
|
||||||
|
|
||||||
=item B<--basefile> I<file>
|
=item B<--basefile> I<file>
|
||||||
|
|
||||||
|
@ -3053,6 +3055,10 @@ If I<password> is given, B<sshpass> will be used. Otherwise the
|
||||||
sshlogin must not require a password (B<ssh-agent> and B<ssh-copy-id>
|
sshlogin must not require a password (B<ssh-agent> and B<ssh-copy-id>
|
||||||
may help with that).
|
may help with that).
|
||||||
|
|
||||||
|
If the hostname is an IPv6 address, the port can be given separated
|
||||||
|
with p or #. If the address is enclosed in [] you can also use :.
|
||||||
|
E.g. ::1p2222 ::1#2222 [::1]:2222
|
||||||
|
|
||||||
The sshlogin ':' is special, it means 'no ssh' and will therefore run
|
The sshlogin ':' is special, it means 'no ssh' and will therefore run
|
||||||
on the local computer.
|
on the local computer.
|
||||||
|
|
||||||
|
@ -3280,6 +3286,20 @@ dies before the waiting time is up.
|
||||||
See also: B<--halt> B<--timeout> B<--memfree>
|
See also: B<--halt> B<--timeout> B<--memfree>
|
||||||
|
|
||||||
|
|
||||||
|
=item B<--total-jobs> I<jobs> (alpha testing)
|
||||||
|
|
||||||
|
=item B<--total> I<jobs> (alpha testing)
|
||||||
|
|
||||||
|
Provide the total number of jobs for computing ETA which is also used
|
||||||
|
for B<--bar>.
|
||||||
|
|
||||||
|
Without B<--total-jobs> GNU Parallel will read all jobs before
|
||||||
|
starting a job. B<--total-jobs> is useful if the input is generated
|
||||||
|
slowly.
|
||||||
|
|
||||||
|
See also: B<--bar> B<--eta>
|
||||||
|
|
||||||
|
|
||||||
=item B<--tmpdir> I<dirname>
|
=item B<--tmpdir> I<dirname>
|
||||||
|
|
||||||
Directory for temporary files.
|
Directory for temporary files.
|
||||||
|
@ -4295,8 +4315,8 @@ by others, the output might help them figure out the problem.
|
||||||
|
|
||||||
Whether you have watched the intro videos
|
Whether you have watched the intro videos
|
||||||
(https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1), walked
|
(https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1), walked
|
||||||
through the tutorial (man parallel_tutorial), and read the EXAMPLE
|
through the tutorial (man parallel_tutorial), and read the examples
|
||||||
section in the man page (man parallel - search for EXAMPLE:).
|
(man parallel_examples).
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
|
|
@ -772,13 +772,16 @@ printed as soon as possible you can use B<-u>.
|
||||||
|
|
||||||
Compare the output of:
|
Compare the output of:
|
||||||
|
|
||||||
parallel wget --limit-rate=100k \
|
parallel wget --progress=dot --limit-rate=100k \
|
||||||
https://ftpmirror.gnu.org/parallel/parallel-20{}0822.tar.bz2 \
|
https://ftpmirror.gnu.org/parallel/parallel-20{}0822.tar.bz2 \
|
||||||
::: {12..16}
|
::: {12..16}
|
||||||
parallel --line-buffer wget --limit-rate=100k \
|
parallel --line-buffer wget --progress=dot --limit-rate=100k \
|
||||||
https://ftpmirror.gnu.org/parallel/parallel-20{}0822.tar.bz2 \
|
https://ftpmirror.gnu.org/parallel/parallel-20{}0822.tar.bz2 \
|
||||||
::: {12..16}
|
::: {12..16}
|
||||||
parallel -u wget --limit-rate=100k \
|
parallel --latest-line wget --progress=dot --limit-rate=100k \
|
||||||
|
https://ftpmirror.gnu.org/parallel/parallel-20{}0822.tar.bz2 \
|
||||||
|
::: {12..16}
|
||||||
|
parallel -u wget --progress=dot --limit-rate=100k \
|
||||||
https://ftpmirror.gnu.org/parallel/parallel-20{}0822.tar.bz2 \
|
https://ftpmirror.gnu.org/parallel/parallel-20{}0822.tar.bz2 \
|
||||||
::: {12..16}
|
::: {12..16}
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,20 @@
|
||||||
# Each should be taking 10-30s and be possible to run in parallel
|
# Each should be taking 10-30s and be possible to run in parallel
|
||||||
# I.e.: No race conditions, no logins
|
# I.e.: No race conditions, no logins
|
||||||
|
|
||||||
|
par_totaljobs() {
|
||||||
|
. `which env_parallel.bash`
|
||||||
|
myrun() {
|
||||||
|
total="$@"
|
||||||
|
slowseq() { seq "$@" | pv -qL 3; }
|
||||||
|
elapsed() { /usr/bin/time -f %e stdout "$@" 2>&1 >/dev/null; }
|
||||||
|
slowseq 5 | elapsed parallel -j 1 $total --bar 'sleep 1; true'
|
||||||
|
}
|
||||||
|
export -f myrun
|
||||||
|
parset mytime myrun ::: '' '--total 5'
|
||||||
|
# --total should run > 2 sec faster
|
||||||
|
perl -E 'say ((2+shift) < (shift) ? "Error: --total should be faster" : "OK")' ${mytime[0]} ${mytime[1]}
|
||||||
|
}
|
||||||
|
|
||||||
par_ll_long_line() {
|
par_ll_long_line() {
|
||||||
echo '### --latest-line with lines longer than terminal width'
|
echo '### --latest-line with lines longer than terminal width'
|
||||||
COLUMNS=30 parallel --delay 0.3 --tagstring '{=$_.="x"x$_=}' \
|
COLUMNS=30 parallel --delay 0.3 --tagstring '{=$_.="x"x$_=}' \
|
||||||
|
|
|
@ -960,10 +960,10 @@ par_sem_quote ### sem --quote should not add empty argument
|
||||||
par_sem_quote echo
|
par_sem_quote echo
|
||||||
par_sem_quote
|
par_sem_quote
|
||||||
par_shellcompletion ### --shellcompletion
|
par_shellcompletion ### --shellcompletion
|
||||||
par_shellcompletion 863f31c091219fc53dc89fd707f5995b -
|
par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac -
|
||||||
par_shellcompletion 863f31c091219fc53dc89fd707f5995b -
|
par_shellcompletion 139a52b9a64a9fd8ec1f63c2d78ff9ac -
|
||||||
par_shellcompletion 88a69a99c93b79b5ed6491c80e9762b0 -
|
par_shellcompletion 01947895bda95d99e1b8948a31b1c1f7 -
|
||||||
par_shellcompletion 88a69a99c93b79b5ed6491c80e9762b0 -
|
par_shellcompletion 01947895bda95d99e1b8948a31b1c1f7 -
|
||||||
par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks
|
par_slow_pipe_regexp ### bug #53718: --pipe --regexp -N blocks
|
||||||
par_slow_pipe_regexp This should take a few ms, but took more than 2 hours
|
par_slow_pipe_regexp This should take a few ms, but took more than 2 hours
|
||||||
par_slow_pipe_regexp 0 1 1
|
par_slow_pipe_regexp 0 1 1
|
||||||
|
|
|
@ -1074,6 +1074,7 @@ par_tmp_full parallel: Error: Change $TMPDIR with --tmpdir or use --compress.
|
||||||
par_tmux_fg bug #50107: --tmux --fg should also write how to access it
|
par_tmux_fg bug #50107: --tmux --fg should also write how to access it
|
||||||
par_tmux_fg See output with: tmux -S tmp attach
|
par_tmux_fg See output with: tmux -S tmp attach
|
||||||
par_tmux_fg open terminal failed: not a terminal
|
par_tmux_fg open terminal failed: not a terminal
|
||||||
|
par_totaljobs OK
|
||||||
par_xargs_compat xargs compatibility
|
par_xargs_compat xargs compatibility
|
||||||
par_xargs_compat ### Test -L -l and --max-lines
|
par_xargs_compat ### Test -L -l and --max-lines
|
||||||
par_xargs_compat a_b
|
par_xargs_compat a_b
|
||||||
|
|
|
@ -120,7 +120,7 @@ par_kill_hup parallel: bash -c 'sleep 3 & pid=$!; wait $pid'
|
||||||
par_kill_hup bash---pstree
|
par_kill_hup bash---pstree
|
||||||
par_ll_lb_color bug #62386: --color (--ctag but without --tag)
|
par_ll_lb_color bug #62386: --color (--ctag but without --tag)
|
||||||
par_ll_lb_color bug #62438: See last line from multiple jobslots
|
par_ll_lb_color bug #62438: See last line from multiple jobslots
|
||||||
par_ll_lb_color 29fcbb4944fef7ba0cd0fa8358dba815 -
|
par_ll_lb_color c13699ada05324a5bab5aee05d97aa55 -
|
||||||
par_more_than_9_relative_sshlogin ### Check more than 9(relative) simultaneous sshlogins
|
par_more_than_9_relative_sshlogin ### Check more than 9(relative) simultaneous sshlogins
|
||||||
par_more_than_9_relative_sshlogin 1
|
par_more_than_9_relative_sshlogin 1
|
||||||
par_more_than_9_relative_sshlogin 2
|
par_more_than_9_relative_sshlogin 2
|
||||||
|
|
Loading…
Reference in a new issue