mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-10-18 12:59:39 +00:00
642 lines
27 KiB
Bash
642 lines
27 KiB
Bash
#!/bin/bash
|
|
|
|
# Simple jobs that never fails
|
|
# Each should be taking 1-3s and be possible to run in parallel
|
|
# I.e.: No race conditions, no logins
|
|
|
|
par_interactive() {
|
|
echo '### Test -p --interactive'
|
|
cat >/tmp/parallel-script-for-expect <<_EOF
|
|
#!/bin/bash
|
|
|
|
seq 1 3 | parallel -k -p "sleep 0.1; echo opt-p"
|
|
seq 1 3 | parallel -k --interactive "sleep 0.1; echo opt--interactive"
|
|
_EOF
|
|
chmod 755 /tmp/parallel-script-for-expect
|
|
|
|
(
|
|
expect -b - <<_EOF
|
|
spawn /tmp/parallel-script-for-expect
|
|
expect "echo opt-p 1"
|
|
send "y\n"
|
|
expect "echo opt-p 2"
|
|
send "n\n"
|
|
expect "echo opt-p 3"
|
|
send "y\n"
|
|
expect "opt-p 1"
|
|
expect "opt-p 3"
|
|
expect "echo opt--interactive 1"
|
|
send "y\n"
|
|
expect "echo opt--interactive 2"
|
|
send "n\n"
|
|
#expect "opt--interactive 1"
|
|
expect "echo opt--interactive 3"
|
|
send "y\n"
|
|
expect "opt--interactive 3"
|
|
send "\n"
|
|
_EOF
|
|
echo
|
|
) | perl -ne 's/\r//g;/\S/ and print' |
|
|
# Race will cause the order to change
|
|
LC_ALL=C sort
|
|
}
|
|
|
|
par_bug43654() {
|
|
echo "bug #43654: --bar with command not using {} - only last output line "
|
|
COLUMNS=80 stdout parallel --bar true {.} ::: 1 | perl -pe 's/.*\r/\r/'
|
|
}
|
|
|
|
par_replacement_rename() {
|
|
echo "### Test --basenamereplace"
|
|
parallel -j1 -k -X --basenamereplace FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
parallel -k --basenamereplace FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
|
|
echo "### Test --bnr"
|
|
parallel -j1 -k -X --bnr FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
parallel -k --bnr FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
|
|
echo "### Test --extensionreplace"
|
|
parallel -j1 -k -X --extensionreplace FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
parallel -k --extensionreplace FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
|
|
echo "### Test --er"
|
|
parallel -j1 -k -X --er FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
parallel -k --er FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
|
|
echo "### Test --basenameextensionreplace"
|
|
parallel -j1 -k -X --basenameextensionreplace FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
parallel -k --basenameextensionreplace FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
|
|
echo "### Test --bner"
|
|
parallel -j1 -k -X --bner FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
parallel -k --bner FOO echo FOO ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
}
|
|
|
|
par_replacement_strings() {
|
|
echo "### Test {/}"
|
|
parallel -j1 -k -X echo {/} ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
|
|
echo "### Test {/.}"
|
|
parallel -j1 -k -X echo {/.} ::: /a/b.c a/b.c b.c /a/b a/b b
|
|
|
|
echo "### Test {#/.}"
|
|
parallel -j1 -k -X echo {2/.} ::: /a/number1.c a/number2.c number3.c /a/number4 a/number5 number6
|
|
|
|
echo "### Test {#/}"
|
|
parallel -j1 -k -X echo {2/} ::: /a/number1.c a/number2.c number3.c /a/number4 a/number5 number6
|
|
|
|
echo "### Test {#.}"
|
|
parallel -j1 -k -X echo {2.} ::: /a/number1.c a/number2.c number3.c /a/number4 a/number5 number6
|
|
}
|
|
|
|
par_bug34241() {
|
|
echo "### bug #34241: --pipe should not spawn unneeded processes"
|
|
echo | parallel -r -j2 -N1 --pipe md5sum -c && echo OK
|
|
}
|
|
|
|
par_test_gt_quoting() {
|
|
echo '### Test of quoting of > bug'
|
|
echo '>/dev/null' | parallel echo
|
|
|
|
echo '### Test of quoting of > bug if line continuation'
|
|
(echo '> '; echo '> '; echo '>') | parallel --max-lines 3 echo
|
|
}
|
|
|
|
par_trim_illegal_value() {
|
|
echo '### Test of --trim illegal'
|
|
stdout parallel --trim fj ::: echo
|
|
}
|
|
|
|
par_eof_on_command_line_input_source() {
|
|
echo '### Test of eof string on :::'
|
|
parallel -k -E ole echo ::: foo ole bar
|
|
}
|
|
|
|
par_empty_string_command_line() {
|
|
echo '### Test of ignore-empty string on :::'
|
|
parallel -k -r echo ::: foo '' ole bar
|
|
}
|
|
|
|
par_trailing_space_line_continuation() {
|
|
echo '### Test of trailing space continuation'
|
|
(echo foo; echo '';echo 'ole ';echo bar;echo quux) | xargs -r -L2 echo
|
|
(echo foo; echo '';echo 'ole ';echo bar;echo quux) | parallel -kr -L2 echo
|
|
parallel -kr -L2 echo ::: foo '' 'ole ' bar quux
|
|
|
|
echo '### Test of trailing space continuation with -E eof'
|
|
(echo foo; echo '';echo 'ole ';echo bar;echo quux) | xargs -r -L2 -E bar echo
|
|
(echo foo; echo '';echo 'ole ';echo bar;echo quux) | parallel -kr -L2 -E bar echo
|
|
parallel -kr -L2 -E bar echo ::: foo '' 'ole ' bar quux
|
|
}
|
|
|
|
par_mix_triple_colon_with_quad_colon() {
|
|
echo '### Test :::: mixed with :::'
|
|
echo '### Test :::: < ::: :::'
|
|
parallel -k echo {1} {2} {3} :::: <(seq 6 7) ::: 4 5 ::: 1 2 3
|
|
|
|
echo '### Test :::: < < :::: <'
|
|
parallel -k echo {1} {2} {3} :::: <(seq 6 7) <(seq 4 5) :::: <(seq 1 3)
|
|
|
|
echo '### Test -a :::: < :::: <'
|
|
parallel -k -a <(seq 6 7) echo {1} {2} {3} :::: <(seq 4 5) :::: <(seq 1 3)
|
|
|
|
echo '### Test -a -a :::'
|
|
parallel -k -a <(seq 6 7) -a <(seq 4 5) echo {1} {2} {3} ::: 1 2 3
|
|
|
|
echo '### Test -a - -a :::'
|
|
seq 6 7 | parallel -k -a - -a <(seq 4 5) echo {1} {2} {3} ::: 1 2 3
|
|
|
|
echo '### Test :::: < - :::'
|
|
seq 4 5 | parallel -k echo {1} {2} {3} :::: <(seq 6 7) - ::: 1 2 3
|
|
}
|
|
|
|
par_test_E() {
|
|
echo '### Test -E'
|
|
seq 1 100 | parallel -k -E 5 echo :::: - ::: 2 3 4 5 6 7 8 9 10 :::: <(seq 3 11)
|
|
|
|
echo '### Test -E one empty'
|
|
seq 1 100 | parallel -k -E 3 echo :::: - ::: 2 3 4 5 6 7 8 9 10 :::: <(seq 3 11)
|
|
|
|
echo '### Test -E 2 empty'
|
|
seq 1 100 | parallel -k -E 3 echo :::: - ::: 3 4 5 6 7 8 9 10 :::: <(seq 3 11)
|
|
|
|
echo '### Test -E all empty'
|
|
seq 3 100 | parallel -k -E 3 echo :::: - ::: 3 4 5 6 7 8 9 10 :::: <(seq 3 11)
|
|
}
|
|
|
|
par_test_job_number() {
|
|
echo '### Test {#}'
|
|
seq 1 10 | parallel -k echo {#}
|
|
}
|
|
|
|
par_seqreplace_long_line() {
|
|
echo '### Test --seqreplace and line too long'
|
|
seq 1 1000 | stdout parallel -j1 -s 210 -k --seqreplace I echo IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII \|wc | uniq -c
|
|
}
|
|
|
|
par_bug37042() {
|
|
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;
|
|
parallel -J bug_37042_profile echo ::: tag_with_foo;
|
|
parallel --tagstring a -J bug_37042_profile echo ::: tag_with_a;
|
|
parallel --tagstring a echo -J bug_37042_profile ::: print_-J_bug_37042_profile
|
|
|
|
echo '### Bug introduce by fixing bug #37042'
|
|
parallel --xapply -a <(printf 'abc') --colsep '\t' echo {1}
|
|
}
|
|
|
|
par_header() {
|
|
echo "### Test --header with -N"
|
|
(echo h1; echo h2; echo 1a;echo 1b; echo 2a;echo 2b; echo 3a)| parallel -j1 --pipe -N2 -k --header '.*\n.*\n' echo Start\;cat \; echo Stop
|
|
|
|
echo "### Test --header with --block 1k"
|
|
(echo h1; echo h2; perl -e '$a="x"x110;for(1..22){print $_,$a,"\n"}') |
|
|
parallel -j1 --pipe -k --block 1k --header '.*\n.*\n' echo Start\;cat \; echo Stop
|
|
|
|
echo "### Test --header with multiple :::"
|
|
parallel --header : echo {a} {b} {1} {2} ::: b b1 ::: a a2
|
|
}
|
|
|
|
par_profiles_with_space() {
|
|
echo '### bug #42902: profiles containing arguments with space'
|
|
echo "--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' " > ~/.parallel/FULLPATH;
|
|
parallel -JFULLPATH echo FULLPATH ::: $0
|
|
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' -v" parallel echo FULLPATH ::: $0
|
|
PARALLEL="--rpl 'FULLPATH chomp(\$_=\"/bin/bash=\".\`readlink -f \$_\`);' perl -e \'print \\\"@ARGV\\\n\\\"\' " parallel With script in \\\$PARALLEL FULLPATH ::: . |
|
|
perl -pe 's:parallel./:parallel/:'
|
|
}
|
|
|
|
par_compress_prg_fails() {
|
|
echo '### bug #44546: If --compress-program fails: fail'
|
|
doit() {
|
|
(parallel $* --compress-program false \
|
|
echo \; sleep 1\; ls ::: /no-existing
|
|
echo $?) | tail -n1
|
|
}
|
|
export -f doit
|
|
stdout parallel --tag -k doit ::: '' --line-buffer ::: '' --tag ::: '' --files |
|
|
grep -v -- -dc
|
|
}
|
|
|
|
par_pxz_complains() {
|
|
echo 'bug #44250: pxz complains File format not recognized but decompresses anyway'
|
|
|
|
# The first line dumps core if run from make file. Why?!
|
|
stdout parallel --compress --compress-program pxz ls /{} ::: OK-if-missing-file
|
|
stdout parallel --compress --compress-program pixz --decompress-program 'pixz -d' ls /{} ::: OK-if-missing-file
|
|
stdout parallel --compress --compress-program pixz --decompress-program 'pixz -d' true ::: OK-if-no-output
|
|
stdout parallel --compress --compress-program pxz true ::: OK-if-no-output
|
|
}
|
|
|
|
par_test_XI_mI() {
|
|
echo "### Test -I"
|
|
seq 1 10 | parallel -k 'seq 1 {} | parallel -k -I :: echo {} ::'
|
|
|
|
echo "### Test -X -I"
|
|
seq 1 10 | parallel -k 'seq 1 {} | parallel -j1 -X -k -I :: echo a{} b::'
|
|
|
|
echo "### Test -m -I"
|
|
seq 1 10 | parallel -k 'seq 1 {} | parallel -j1 -m -k -I :: echo a{} b::'
|
|
}
|
|
|
|
par_result() {
|
|
echo "### Test --results"
|
|
mkdir -p /tmp/parallel_results_test
|
|
parallel -k --results /tmp/parallel_results_test/testA echo {1} {2} ::: I II ::: III IIII
|
|
ls /tmp/parallel_results_test/testA/*/*/*/*/* | LC_ALL=C sort
|
|
rm -rf /tmp/parallel_results_test/testA*
|
|
|
|
echo "### Test --res"
|
|
mkdir -p /tmp/parallel_results_test
|
|
parallel -k --res /tmp/parallel_results_test/testD echo {1} {2} ::: I II ::: III IIII
|
|
ls /tmp/parallel_results_test/testD/*/*/*/*/* | LC_ALL=C sort
|
|
rm -rf /tmp/parallel_results_test/testD*
|
|
|
|
echo "### Test --result"
|
|
mkdir -p /tmp/parallel_results_test
|
|
parallel -k --result /tmp/parallel_results_test/testE echo {1} {2} ::: I II ::: III IIII
|
|
ls /tmp/parallel_results_test/testE/*/*/*/*/* | LC_ALL=C sort
|
|
rm -rf /tmp/parallel_results_test/testE*
|
|
|
|
echo "### Test --results --header :"
|
|
mkdir -p /tmp/parallel_results_test
|
|
parallel -k --header : --results /tmp/parallel_results_test/testB echo {1} {2} ::: a I II ::: b III IIII
|
|
ls /tmp/parallel_results_test/testB/*/*/*/*/* | LC_ALL=C sort
|
|
rm -rf /tmp/parallel_results_test/testB*
|
|
|
|
echo "### Test --results --header : named - a/b swapped"
|
|
mkdir -p /tmp/parallel_results_test
|
|
parallel -k --header : --results /tmp/parallel_results_test/testC echo {a} {b} ::: b III IIII ::: a I II
|
|
ls /tmp/parallel_results_test/testC/*/*/*/*/* | LC_ALL=C sort
|
|
rm -rf /tmp/parallel_results_test/testC*
|
|
|
|
echo "### Test --results --header : piped"
|
|
mkdir -p /tmp/parallel_results_test
|
|
(echo Col; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') | parallel --header : --result /tmp/parallel_results_test/testF true
|
|
find /tmp/parallel_results_test/testF/*/*/* | LC_ALL=C sort
|
|
rm -rf /tmp/parallel_results_test/testF*
|
|
|
|
echo "### Test --results --header : piped - non-existing column header"
|
|
mkdir -p /tmp/parallel_results_test
|
|
(printf "Col1\t\n"; printf "v1\tv2\tv3\n"; perl -e 'print "backslash\\tab\tslash/null\0eof\n"') |
|
|
parallel --header : --result /tmp/parallel_results_test/testG true
|
|
find /tmp/parallel_results_test/testG/ | LC_ALL=C sort
|
|
rm -rf /tmp/parallel_results_test/testG*
|
|
}
|
|
|
|
par_result_replace() {
|
|
echo '### bug #49983: --results with {1}'
|
|
parallel --results /tmp/par_{}_49983 -k echo ::: foo bar baz
|
|
find /tmp/par_*_49983 | LC_ALL=C sort
|
|
rm -rf /tmp/par_*_49983
|
|
parallel --results /tmp/par_{}_49983 -k echo ::: foo bar baz ::: A B C
|
|
find /tmp/par_*_49983 | LC_ALL=C sort
|
|
rm -rf /tmp/par_*_49983
|
|
parallel --results /tmp/par_{1}-{2}_49983 -k echo ::: foo bar baz ::: A B C
|
|
find /tmp/par_*_49983 | LC_ALL=C sort
|
|
rm -rf /tmp/par_*_49983
|
|
parallel --results /tmp/par__49983 -k echo ::: foo bar baz ::: A B C
|
|
find /tmp/par_*_49983 | LC_ALL=C sort
|
|
rm -rf /tmp/par_*_49983
|
|
parallel --results /tmp/par__49983 --header : -k echo ::: foo bar baz ::: A B C
|
|
find /tmp/par_*_49983 | LC_ALL=C sort
|
|
rm -rf /tmp/par_*_49983
|
|
parallel --results /tmp/par__49983-{}/ --header : -k echo ::: foo bar baz ::: A B C
|
|
find /tmp/par_*_49983-* | LC_ALL=C sort
|
|
rm -rf /tmp/par_*_49983-*
|
|
}
|
|
|
|
par_incomplete_linebuffer() {
|
|
echo 'bug #51337: --lb does not kill jobs at sigpipe'
|
|
cat > /tmp/parallel--lb-test <<'_EOF'
|
|
#!/usr/bin/perl
|
|
|
|
while(1){ print ++$t,"\n"}
|
|
_EOF
|
|
chmod +x /tmp/parallel--lb-test
|
|
|
|
parallel --lb /tmp/parallel--lb-test ::: 1 | head
|
|
# Should be empty
|
|
ps aux | grep parallel[-]-lb-test
|
|
}
|
|
|
|
par_header_parens() {
|
|
echo 'bug #49538: --header and {= =}'
|
|
|
|
parallel --header : echo '{=v2=}{=v1 $_=Q($_)=}' ::: v1 K ::: v2 O
|
|
parallel --header : echo '{2}{=1 $_=Q($_)=}' ::: v2 K ::: v1 O
|
|
parallel --header : echo {var/.} ::: var sub/dir/file.ext
|
|
parallel --header : echo {var//} ::: var sub/dir/file.ext
|
|
parallel --header : echo {var/.} ::: var sub/dir/file.ext
|
|
parallel --header : echo {var/} ::: var sub/dir/file.ext
|
|
parallel --header : echo {var.} ::: var sub/dir/file.ext
|
|
}
|
|
|
|
par_pipe_compress_blocks() {
|
|
echo "### bug #41482: --pipe --compress blocks at different -j/seq combinations"
|
|
seq 1 | parallel -k -j2 --compress -N1 -L1 --pipe cat
|
|
echo echo 1-4 + 1-4
|
|
seq 4 | parallel -k -j3 --compress -N1 -L1 -vv echo
|
|
echo 4 times wc to stderr to stdout
|
|
(seq 4 | parallel -k -j3 --compress -N1 -L1 --pipe wc '>&2') 2>&1 >/dev/null
|
|
echo 1 2 3 4
|
|
seq 4 | parallel -k -j3 --compress echo
|
|
echo 1 2 3 4
|
|
seq 4 | parallel -k -j1 --compress echo
|
|
echo 1 2
|
|
seq 2 | parallel -k -j1 --compress echo
|
|
echo 1 2 3
|
|
seq 3 | parallel -k -j2 --compress -N1 -L1 --pipe cat
|
|
}
|
|
|
|
par_too_long_line_X() {
|
|
echo 'bug #54869: Long lines break'
|
|
seq 3000 | parallel -Xj1 'echo {} {} {} {} {} {} {} {} {} {} {} {} {} {} | wc'
|
|
}
|
|
|
|
par_test_cpu_detection() {
|
|
pack() { zstd | mmencode; }
|
|
unpack() { mmencode -u | zstd -d; }
|
|
export -f unpack
|
|
|
|
cpu1() {
|
|
echo '2-8-8-8 Xeon 8 core server in Germany'
|
|
echo '
|
|
KLUv/QRYbRIARmlzIxBtqgDhSWTqT86MkL9zqf+EhavXzwbElKKZVR0oAgBg5J4gcQBiAGEA
|
|
sLnXDwczA4YzTNLcWTvx+utwzbFmQQYUDEZyZ60JhQYkubMk+Zi3NptQSECQAeUFvwJhFAiH
|
|
cDh4wAOAnBvxgAeAO2tjk1+UO2vBhWZkzZ31gC+26BM7BrfKhZVvkptwZ0HvoROSSzHkzqKz
|
|
e92kzALNss2vjU/N6N5c/Ep8Sms8b5+gcl8Xv41PO951/TZ/oW+kPnF0Z62WGmQJtiR3Flxq
|
|
4aE3sZPzVV5X7TNxxHofd9aaOGLIncP26pPPPW5Lp/vEbkHvS6djzJ3Vknyw8ZohD81Bjw7i
|
|
U67Vm6RyX7a7r8T6KlKH7J6GTmd9csYzTW+F/iQfmlN6eOm7Nt6N5csZI7r8OBxtd12fKltt
|
|
Od0jfCUPYXP96G+DH+ur491XtvvbfdpV9CrGP3btXaE7eoIRdA/MYrEsFE2jNIxCkSgUhkES
|
|
ZlmWZVEURUGSJEmYU+XGlZps8XQlJjPYpkofxVzgXV/jBN1LIagxprmzqtwopQfbw7AFMoAw
|
|
GMud1fzilGaDPeqj81GuFkZ/UVKXmFBz9EO5PsIncjT4pVpXTx5mux83IFADQJsOKpW46nns
|
|
Is7U2ZTFVYV3C3OmxEovTmU8sZyTYlYqcdTzmEUsR6PYOlV4tzAnSqz04lTGE8s5KWalEkc9
|
|
j1nEqahrvJxROjsHSSvQhQq1tpf4zCUJFtpLU3TfUioW5HyRY49kj+F7XHNrWzFtIuMXRNui
|
|
cMxHAZLOSIU=
|
|
' | unpack
|
|
}
|
|
cpu2() {
|
|
echo '1-4-8-4 Core i7-3632QM Acer laptop'
|
|
echo '
|
|
KLUv/QRYBRkANvyjJDBtnADAQSgjJ0We2YiUIhYo1GYrjfN9LZSRbXi0c1gXhgBQJaUAjQCQ
|
|
AFstjEt/y7WLjrldy3NJYZ2SHbJMae46JVsalxR2RPcoxwvjbzHHk8cuBwx/Hia6pGiF4+uD
|
|
LbZEjWjxPA9zSVEqFBoYjYRxSdEmmZzMwaXgkuKIbleblwqFBEazaG5wCQeENzw0TuQMELgH
|
|
NEQA6JQID4AAuKQoXPEN6JKiPG0SLtElZfIcXNUhy5anHRc0OkjUhEtKc9OULWpkYVxSpmRW
|
|
JucuAfLJlS35WxnfpHRMq/Pc1JnSfZSwmrrTg811xj11XM1RssP3ZdxtXhL/3mI84Su1h/1+
|
|
nPmNMl+ZP1lSXQLh3bJ17vYHQ1712CNHed9rH5GQfTF4deznbPhVfkPCrgxe134yPOO+8l7b
|
|
FUYO2eqSorBjvaVYHOaS8jSi781BlkXpepVJdIJstbBOLikKJA6u3txG3quftJvSzZXoq+5g
|
|
jJxCtvXgaW5/Kdd8ail3npR7o5jvek+tvh9kVRN8U/VY7y2u2eZZxFSXRNY1slhy1vWp0PWk
|
|
0b22tE2M+x3Zyj1zuxrJG2Z6lPnNsT1kbT+3JY8YCbujzPwG9pv1Ehj5WzZx+5TtooR/ItZu
|
|
n2gTDwIf27u4r6buWtkcZfzEEQQETgMtGA5BFDlQg1k8EBRBEEMALSDoeZpGAbRoGo/jNAWN
|
|
RcHjNA3DMNCCYZ6GYSDoWTCPwyxSR4XqWHHBT6WQu7wF6ekijecC53bUI+eSwsw6W1vLE11S
|
|
OiqMDvfW9CxPs2AUOOugdEhqqZp5Z147oSadsnlqmMiks5kuP1LI1k/hBFkGoZbGvOnc+/j2
|
|
veb6au5w6qPbeyWc+lXIV14UBzsgIKMZ0jAPK+HdMhUFdRtVjCeXO5JNULexYjxRJq2g2EaV
|
|
8O7CRoIUlGysjsfKBCko2ag6HruIkWyCuo0V44ky2YRS1xX8jOLIPpdShdsmd5zFkNBhyRjs
|
|
jWqiDxsGiQbeb74N2hniRTgqfc6PK/sOQHV9UrS1UtKWyvnmCMjuOeEbaVqYTWLEy8KHcwab
|
|
fNdt
|
|
' | unpack
|
|
}
|
|
cpu3() {
|
|
echo '1-2-4-2 Core i5-2410M laptop firewall'
|
|
echo '
|
|
KLUv/QRYTRUAdrWRJCBtLACzSvaJv8mdRORLLoVMJ3pdprIRArYowWEZLgRCIHoEDZEAfQCA
|
|
ALM94qbc+9LZVuOOaol8MPJ6MQ5Ze00x4WWw8MXBYO6orXj9nTTWluJ4LCCQRrmjVEUCA1Mm
|
|
xh21brZJ24vLcUdJ5GPe2qsiAYHBLJYXHKLh4AwMpbEMELwHMDwALJ0HD3AAuKM2MvmlcUcp
|
|
uG7G1dxRFPBFBj3ituBWqbDyRXIR7ij3HjqdXGkx7ig6u7dNyitytkd4bl0d/SQPIWtN0d8I
|
|
P9bXybu/bPe3+7Qn6FOMf9zYu7pPOoIQbG+YbX5lfGnGdtbiV8KntMbz9h9T+7b4ZXza8a3r
|
|
t/nrvlF6xNAdpVrCIE8sRrmj4EoL717ETc5Xedu0T8TQ6qW4o1TE0GLcOWSvPvnaY7aWO6qX
|
|
Bo/wgSYMfpLYV2I9vZedbnz1WfmgY+ue1vVVNp789pgt0xflaWz33Wv82Byfcp3eKFM7s939
|
|
JdbX3k9ROuT2tDud9ckZ32h6q7uEk4BRhI3/JD9iiK6E7SG6zLO2nPIUkgknzzod8pR3c0oe
|
|
XvqukXdk+XJGiC4/k0bZW9enSlY7DONoIIvFQcAsiwJhIAvHY1EUAgZj8WiU5VS5cSVMsni6
|
|
E5MXZFGlT3o0LvCuL/KGuaO6e6lzbDWaO6rKjVLyIHsazXoQLCAPAn5xSmZkLYr0LK1tuS8n
|
|
pqtw4xNxiyKrK19CfmWUnbn3SHdS3StP91h65T1FfXQ+ytNC6C9K6RPTsUk/lOvp9mMRj/AG
|
|
JSDQIqIi7LRUwrvFZJLUAVuxPLHcLdUEdcBUDE/UqSanrs9zRmXkcaNU+bZlG7hrcxA2mUBy
|
|
T8tuUnd4augwnjSRdwOqb6To3FJWLMn5yBHIbnjCtm86kCEx8rLwgZ4B68GiZg==
|
|
' | unpack
|
|
}
|
|
cpu4() {
|
|
echo '1-2-2-2 dual core laptop(?)'
|
|
echo '
|
|
KLUv/QRYvQoANtlJIkBprACDMMQtkTstiphu+tF3RsomRkcLaiECKgDo7qgtvyZCAEQAOQCP
|
|
WWerZUFc4QE7AaJ0dHLCDRiLr6TL4r9SgsrIVQLJV2KAb5n7w00ZMBbtzaiO+Sy+EvMajmSi
|
|
Qgr5So7s1iYdVgErQYUUnnkPtyjfZG2RNh52qpXhK6WHHVvZHIK4CR1Kxq/UPAsN6DFOFSB8
|
|
QWjD66ujsaYGFOWgQBTJV0oNBwwk+UpNDE5H7tHuHf1AB9sTijZ/Mj4kt521vTZ8x5l71n57
|
|
zK6I2rXtlfGd3ree1+Yrc13oD7uvlLphkB8qeQvBIZEonvPMg848955fM+pqwyLbO/qQrJaE
|
|
GlAOBElC+UrNb2UjF9SM9CEjo3zhZ6TR7qN4CFlrhj5Cu6/dDxAAAieJgnrpvudbNgNUIOzA
|
|
MqSoSuBmxjF3/rkp5oAwr3m0DVcImxgIDpyVKKrENj8=
|
|
' | unpack
|
|
}
|
|
cpu5() {
|
|
echo '2-24-48-24 24-core (maxwell?)'
|
|
echo '
|
|
KLUv/QRYdSQAGkNoCyQADcMCI0TLks4mlR/lnQWq4v01q/9MCZihKMz3R7P+/yfjrxe5AKIA
|
|
pAAKdnLCyuueNSgYcfRSeGMYCkYcyJs7DVYooYPcjoTeGL10uivYGQ9+6XTHSm+MTkjoHGAf
|
|
yJ3mYFNY4MMAgyNJQdQbYyvA/i645o6FGAIMk6Q3hlFBQYNkIeiNsW+6SR2Mx3pjJCRk3tpH
|
|
BQUJEIVAeoGnxRUmSQMYgkNwcOABHgCQcyM8wAMAb4yNTT4lbwzD2TfjkbwxKDgwNsQV7A5n
|
|
q1ywEirkJnhjPGig88ldHMgbg87udZPyERXKGb+S3vou4UlwFNFxfCj5CkbQTbQ9gi7zrC2n
|
|
PIXEdCbP+vzNmTDw0nc9vA/LlzMi6LJhwdF219VQZastp3t0zq7roz8k0PLjP/KO01xT6O+B
|
|
H+vrwruftvvbfdoP4k+Mh+zau74vtMJBOO6J2ubXxl/M6N5c/Cb4lNZ43v7yuK+L38anHe+6
|
|
fpu/7xsXVzDijWF0ojk84VDojeHsYp0/GMdK3hhVbpQJ6DRDcqSFAMMo9sZohnEm5uHoSPe8
|
|
sb/dDp1oxB/kxSvvKVRIJ6T8rIM4jHLxCfO1hTZQrl8Jncl16WHlR7oL9b0rXzr8yvPA+9po
|
|
e3vw0TEgFprzJxt99C5BiD+L9l20ft7bTjfCalgJndf2GVzXV+l48h3klp4nZFjb/ebeH3T8
|
|
6B6fcn2eoMddbXc/xfra+yf2n7i4w87Q73QGDGOYojCFJYwxxpZiii3EEGMUwyxJKYbQQmsh
|
|
i2EUoyhpUQohRSmFEiUpibHE0lJJJaVQQikphBikEFoQhRjDMGtRFKUwlhKFkIQQsha2MJWw
|
|
hKXFFkMpscSQhDCEMcyyLEtKTEEWslayLIolSVprIbUkpRCEUkIpIYSYlNCCEKMgtCQIMbYs
|
|
ayWJUmullBJCR1Plxk002eLpTph8OE1RKVws6wLeFR6erDdGdy99rwWA56ixqCwgIiKDAAhC
|
|
MCMAACxsAhKoQBgGIBAIxsEIwTkOEfxPwgUfLJZYP9vKZrhEZep2u7k7XFK1ZLTlxfNql0Dp
|
|
yIyLNj3Wy9LeMRJXK8cgHu09Fq1Yq8b0XW09VsBqLc3ckYn047pXflSABeQzkYdcPcePl78l
|
|
oEW3htyWDCvcopK7b0uGSt6uFhO7XBKlKikuaCWPOa6tcXOiBR1jXNPFta0FfQxn6O1mJGr5
|
|
2Luq5WO+pnaPdalaeiyWdukXgH8mpTAUl1kS47K2M8j8mHlcElJyq2RtiZDCbSm5+7ZkGJQZ
|
|
l7eixcwul0SpiowL2tRYJ0t7x0hcrRyDeLT3WLSiVo7pM9pyrIDRyjFUlvv8H/M+JvuQKzUY
|
|
kM7MMXFBQ7TYyblwJnts2KkJO02wk27ZTOpjv06V+jple920PkaXcca67lrtscV1V9y9WuCx
|
|
xLUirn8t9NjMkJcZXC01dpO13hjFq01jyqKWjd272jEWZke+Xv7966LvqzZTC0zEIma1yNpX
|
|
ketyZer/0g6AFe7sFs2nePnngUV+Cv9cPO6zftzOuDDzXMWe+8I/vwr+ll9K
|
|
' | unpack
|
|
}
|
|
cpu6() {
|
|
echo '1-2-2-2 HP Laptop Compaq 6530b'
|
|
echo '
|
|
KLUv/QRY1Q8A1iZsIyBvqwA3o23SyJIQjJ06dkMYGMYDOkA5MLcI3iHqFTCAyKAwaQBhAFkA
|
|
BstXShcNEAYKi5SvtE7UKLU9pSxfKQIb885WFw0MioNgOcKvKEpj4hQRCl8ZFQYcgxYeIAEA
|
|
o1y3Cl9pH4NvML5ScuvEp5qvZOHaY88hVuV2QoeFDYLL8JWc9pDRgTtRyleSsXs1SlYBy/iy
|
|
37Xnt/nrfN/kED9fKXWEOa5QjeUruZ2su9MgVhjb5NVoHxA/qtfiKyWIH6V83bE2G2zamK2M
|
|
eog1Oe0royrGV+oIbA7SWil3TFtbSFglPJxh7EXrr0SZqoVhCAoOAjudN8h/5DK74wjfE/KG
|
|
LB/G98jlh0Qlu/Z8TMhmw6h/7hG8c0zbor8Q/pufknefsd3f7suOnkfvvbGy93Quacg9Tt80
|
|
tvmT8Sfx6Zm+b4Qv5Xzn7Tsi/ep7y7Isak24byMMsne5FZGVY9CUbeJgLvCeDfKme6XjMMU0
|
|
X2nCfTDSHHswjXI4CJSDgsZXam4vRiJEQRD15Eqm8+cej4S574R19KcOX/KM3iyRvrHdfcab
|
|
d6yPdi7jbDC+M00HGgDJQBXgHVgYGFDCduKMmpHxiUzAByptDXwxQm8Orkb8MKwzCJ2GRGOh
|
|
S1UsIOebOfYk2efwPdf8XqtmFQx7uDu4QYQPJQq2DBQj
|
|
' | unpack
|
|
}
|
|
cpu7() {
|
|
echo '1-8-8-8 Huawei P Smart Octa-core (4x2.36 GHz Cortex-A53 & 4x1.7 GHz Cortex-A53)'
|
|
echo '
|
|
KLUv/QRYZQUAwkkgH1BnrABA24MVyJENxj4WLhwSzxygdYSSvS59MzORDgyGAoEto0jsDTHx
|
|
9XOWl0pYpXrUG5qMPlbneFtuptv5FMdasGcns3AXCd8HEEQylmN3Q5V+oUp/WRoo36uHPHs6
|
|
+wS+1kuCN9TLzdRNJHYM1hsSQAACYkE8JPWGOHaviyxTDgAkQAkMUAcDFIMBSmCAOhigGAwo
|
|
4Wbu07xD5gw177vZqo64sbtwFDXaE3w=
|
|
' | unpack
|
|
}
|
|
cpu8() {
|
|
echo '1-4-4-4 x96 quad-core Android TV-box'
|
|
echo '
|
|
KLUv/QRY5QcAhlE1H1BnKwDIkoetw1FHvrd6TW5nqI4+EQedzut9ABQptb4rACoALAD72HTS
|
|
yk/im3vpzs7kbugyATqUkc6ORAG7AF+v3P8qKK0RiLPTzJzcmE4E9W9C+qMuDC+XM+FLV09h
|
|
E+lcd0VsFHoHV7lcXB2t29Uq88Yq8xA2UX5yb77KfaSkV6aEdHbosq+3Gs64G9qYPqX1GiuB
|
|
6cKRoYzvB4kBdLr1Je+rShcoKVYc2jpeAaUQZCHItkI6rJSUYZOhzs6B+5oNUHsIDIyIs8O9
|
|
i6S3AKF1dhYmDgA0xZA5Q837braqI67uHZjSlgNrgIOBQ8Q8pCcNnhe5YjIBX0edag==
|
|
' | unpack
|
|
}
|
|
cpu9() {
|
|
echo '1-6-6-6 Kramses 200 USD laptop 6-core'
|
|
echo '
|
|
KLUv/QRYlQcAgk8uH1AJrABITeNdwrPRAqt9X9oa+rr/FE0XsNM0A4oUUSIDBmKowyiQcm/F
|
|
1bpHYhKJN2Fil2uzj1AMCHmi+/CivJxl8wjF8EIlVtlpUwbbQgjFcONYdrmRTnyRTjxjT4OP
|
|
mm/LkVuvCdm5F7OevZiFVEfGPxo2fffUHUZGD5s+s6dxzOYK7XH4DUsn6j6caoBSEkDUkz9B
|
|
OTi8hVeAAhjSAFdvXeVIHxAInlxbujNlXkPpyffFqMtbiAIVAC1AFUAfSJgbUAKU9wNU9gNU
|
|
+QH1Gq2EwfCdq39vKWe7c6q/wBoyA0HbuS0w7lMlg1sHMAcaacWR
|
|
' | unpack
|
|
}
|
|
cpu10() {
|
|
echo '4-48-48-48 Dell R815 4 CPU 48-core'
|
|
echo '
|
|
KLUv/QRYRSEApj+vIjBLLADDcJR4ZOmSMcbRLoFyVLE7QWmYAUkyhG4uXRgCwJ2sAJ0ApQDz
|
|
j2zYCFV5LceJnYZVIM0Qb46jYRWIevMJ5ZWQjNJCjmp8w8bjkeeoRoStN0cvIDkTshH1CaNs
|
|
CIZFChDO1ntzcITsMyPCiDSlBpRi7M1xRBwoMI9SSq1JvTn4qbFGUVJkvTkWkLSWbyNOWckZ
|
|
HkAvAFQjvnbhBgoEbw6mEDrz5jgmP5UiyXpzQExJoeINGxEDBYIoL8SM2yB4czzSieoDsYSo
|
|
N0dUuznWyCIBh4hwwdOxNJ5OR8GA8xeKttona4qP6pVQpZeQPY2P81B457kT23obqtCnrdCf
|
|
WheO5eixr3MheBuq8Xfihwo97XTexr5P9MRisX3sr63OnXii9BP0OWFsiP5lnHH3uftRT4pP
|
|
lJ7RjamY8Unjtr/QXqo0HkZ6XthH0aW33F+meI70DO2jpo99z23Pz5lKb1jFm+PoBZz2AXlv
|
|
jskSB7BxIykJvK9MfOnm6Hkg4pI3x4WYOi5BmhfQHsHdMbUKEhoQ594cbSWti5pA2JIcjm5k
|
|
219wO3M2oHd0L3S6nctRQ/QdIE+HJdiT4ox4IaVOYt5GAon4TqngbkB7lmA7VkbQHWKdDpX6
|
|
UpSYv5ZS6Xzhbes8MB41dR7JT4V+n4dfCUmHfifkH6SuZ8TLCo4sd0MLOWFLeui4+zQBlyg+
|
|
SgvvxKdSB4rylCRxyXvtOcdca6sxpthabymmmFOOYRqzLGxRlKUkK1lqJa29x5hza7WmnHKM
|
|
Mcxay6JUU5THJIlb3muKcyxpbT3GGmuKOYZ5bVkcU5S2koQp9t5inFNLa09hzCWvPfXUY865
|
|
1dZizqm23lpuMUxjloUtirKUJFHJe+8551xrrTHG2FprIQ+Mt+XbEQyq1Hq8fXpv733fNxdi
|
|
ygsIQfqIH6pFZoDlqEGwFQAEQA4AEAACcBMAAAgGEshgGAgBCAKCSSQgOCYK/2sGH+oAS++e
|
|
VqS/F4zU7z0u9T1GSvVeu1K9N6t0c0/yY6Xag3up98Qm5T0PSZX3+IzOLfeqIuUexEu952Ap
|
|
4T2fk3T3ICSle8dR6vZaKf29IEi/53FS7xlISvesJW0mAjIpo27dS5JU7yEm/T1VkH5vEJK6
|
|
vYOlfc9AqdxjqzT3ZpSK1AAym0h99z5VpS1TIwAH5ABuGkB5CC7/HDKKQAjgbgBaw+LsTyLv
|
|
1Z/UMvrTdJ7On3T45E9q/GnKFP7IHmOV1p6oStVeqErXXlRKa0/USmsvVKVqL1altScqpbU3
|
|
qlJbGwD2iO3o4vIdhC9r3/gEqm4WaLhveaVn2a/WmtxlZf1r5amu/n8Oqy5VPeifi7Z8D+pV
|
|
HtHLu3cB1t7Q82P9mJ5lzZxZiTsc5NfnI+/+/t8Hj/tsF7ZZhZabKpETW3DxywH3CuPZ
|
|
' | unpack
|
|
}
|
|
cpu11() {
|
|
echo '1-4-8-4 4-core/8 thread Lenovo T480'
|
|
echo '
|
|
KLUv/QRYvRIA5mt4IyBvKwATk8iUn9xdIuJLbC8JrUxyQsMubiQkFCUoEAiB6BE0eABoAGcA
|
|
qSHywcdrlRyy9toiwirB4QyjNF9pL15/I401lSQJQZIYXDA8JMpXgsjHvLXVBcNC0hAoR/gE
|
|
hMInksZiMNB4D3iQAFg6FR4QAfCVNjL5hVG+UoLrZlTNV7KALzLnDzcFt8qGle+Ru/CV3HPQ
|
|
6eRCKvlKdHZvm5RVjxt7V/dIP9CB7Q1jm18ZH5qxnbX4hfAprfG8fYOofVv8Mj7t+Nb12/x1
|
|
3wj9YecrpYYwyBVqWb4SXGjh3Xu4yfkqb4vW8bCjei2+UnrYUcnXIXv1ydceM8V8pV462x9u
|
|
yb0vnU0ZfAX8yvPB+8ooO3PvETqcCIN3klFH3xrFeQSxnl+IdfRe9iobT/4+oBnfHrMl+qI4
|
|
mO1+bI5PuUZvlKidReeM7e4vsb72PorQITdHu9NZn5zxTNNb3Z/k74Mf62vk3V+2+9t92pHz
|
|
KMYHBQUFTcNoGo0GwywMg8FYFmVRFEWtKjcuhEkWT7disoLsqfRBBswF3vU9fsD4St291Dmm
|
|
mOYrVblRQh5kDkZVnsxiP3LsbrcdfcTx7jWG5HtHul9efJw39pcIYldefLz2Q+GYgz0a0s4j
|
|
3Uh178qXMC8gICMhGnYpKuGdGMVqqIR3FoZMSQ3V8ZiYkhqq4zGLIFFXQ8V6IkZdDRXzxHJI
|
|
FKuhEt6JTTFr7sHFkbEspWq3gcg4GEnCDRHCLERgJRyDNg6inUEsukGicXWpWC7nkyOR3f6E
|
|
T9+IZeJitNtyLQ6A1ShkK/65
|
|
' | unpack
|
|
}
|
|
cpu12() {
|
|
echo '4-64-64-64 Dell R815 4 CPU 64-core'
|
|
echo '
|
|
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
|
|
/q05b9gEeqJ524Ixfxz8jbBi
|
|
' | unpack
|
|
}
|
|
export -f $(compgen -A function | grep ^cpu)
|
|
|
|
test_one() {
|
|
eval cpu$1 | head -n1
|
|
export PARALLEL_CPUINFO="$(eval cpu$1 | tail -n +2)"
|
|
echo $(parallel --number-of-sockets) \
|
|
$(parallel --number-of-cores) \
|
|
$(parallel --number-of-threads) \
|
|
$(parallel --number-of-cpus)
|
|
}
|
|
export -f test_one
|
|
compgen -A function | grep ^cpu | parallel -j0 -k test_one {#}
|
|
}
|
|
|
|
par_null_resume() {
|
|
echo '### --null --resume --jl'
|
|
log=/tmp/null-resume-$$.log
|
|
|
|
true > "$log"
|
|
printf "%s\n" a b c | parallel --resume -k --jl $log echo
|
|
printf "%s\n" a b c | parallel --resume -k --jl $log echo
|
|
true > "$log"
|
|
printf "%s\0" A B C | parallel --null --resume -k --jl $log echo
|
|
printf "%s\0" A B C | parallel --null --resume -k --jl $log echo
|
|
rm "$log"
|
|
}
|
|
|
|
par_block_negative_prefix() {
|
|
tmp=`mktemp`
|
|
seq 100000 > $tmp
|
|
echo '### This should generate 10*2 jobs'
|
|
parallel -j2 -a $tmp --pipepart --block -0.01k -k md5sum | wc
|
|
rm $tmp
|
|
}
|
|
|
|
par_sql_colsep() {
|
|
echo '### SQL should add Vn columns for --colsep'
|
|
parallel -k -C' ' --sqlandworker sqlite3:///%2ftmp%2ffoo/bar echo /{1}/{2}/{3}/{4}/ \
|
|
::: 'a A' 'b B' 'c C' ::: '1 11' '2 22' '3 33'
|
|
parallel -k -C' ' echo /{1}/{2}/{3}/{4}/ \
|
|
::: 'a A' 'b B' 'c C' ::: '1 11' '2 22' '3 33'
|
|
# TODO this is wrong
|
|
parallel -k -C' ' -N3 --sqlandworker sqlite3:///%2ftmp%2ffoo/bar echo \
|
|
::: 'a A' 'b B' 'c C' ::: '1 11' '2 22' '3 33' '4 44' '5 55' '6 66'
|
|
parallel -k -C' ' -N3 echo \
|
|
::: 'a A' 'b B' 'c C' ::: '1 11' '2 22' '3 33' '4 44' '5 55' '6 66'
|
|
}
|
|
|
|
par_sql_CSV() {
|
|
echo '### CSV write to the right place'
|
|
rm -rf /tmp/parallel-CSV
|
|
mkdir /tmp/parallel-CSV
|
|
parallel --sqlandworker csv:///%2Ftmp%2Fparallel-CSV/OK echo ::: 'ran OK'
|
|
ls /tmp/parallel-CSV
|
|
stdout parallel --sqlandworker csv:///%2Fmust%2Ffail/fail echo ::: 1 |
|
|
perl -pe 's/\d/0/g'
|
|
}
|
|
|
|
export -f $(compgen -A function | grep par_)
|
|
compgen -A function | grep par_ | LC_ALL=C sort |
|
|
parallel --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' |
|
|
perl -pe 's:/usr/bin:/bin:g;'
|