mirror of
https://git.savannah.gnu.org/git/parallel.git
synced 2024-11-28 08:57:56 +00:00
2128 lines
104 KiB
Bash
Executable file
2128 lines
104 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# SPDX-FileCopyrightText: 2021-2024 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc.
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
# Simple jobs that never fails
|
|
# Each should be taking 3-10s and be possible to run in parallel
|
|
# I.e.: No race conditions, no logins
|
|
|
|
par_format_string() {
|
|
echo Format string + {}
|
|
parallel echo 12.346 98.765 == {:%.3f} ::: 12.34567 ::: 98.76543
|
|
echo Format string + {.}
|
|
parallel echo 12.000 98.000 == {.:%.3f} ::: 12.34567 ::: 98.76543
|
|
echo Format string + {2}
|
|
parallel echo 98.765 == {2:%.3f} ::: 12.34567 ::: 98.76543
|
|
echo Format string + {2.}
|
|
parallel echo 98.000 == {2.:%.3f} ::: 12.34567 ::: 98.76543
|
|
echo Format string + {2.}{}
|
|
parallel echo 98.00012.34567 98.76543 == {2.:%.3f}{} ::: 12.34567 ::: 98.76543
|
|
echo Dynamic replacement strings
|
|
echo {dyn} + format
|
|
parallel --rpl '{/(\d)/(.*)} s/$$1/$$2/g;' echo 12.44 98.77 == {/3/44:%8.2f} ::: 12.34567 ::: 98.76543
|
|
echo {Positional dyn} + format
|
|
parallel --rpl '{/(\d)/(.*)} s/$$1/$$2/g;' echo 12.44 98.77 98.765 == {/3/44:%8.2f} {2:%.3f} ::: 12.34567 ::: 98.76543
|
|
echo {dyn__postfix}
|
|
parallel --rpl '{/(\d)/(.*)__} s/$$1/$$2/g;' echo 12.444567 98.765444 == {/3/44__} ::: 12.34567 ::: 98.76543
|
|
echo {dyn__postfix} + format
|
|
parallel --rpl '{/(\d)/(.*)__} s/$$1/$$2/g;' echo 00012.44 == {/3/44__:%08.2f} ::: 12.34567
|
|
echo dyn without {}
|
|
parallel --rpl '/(\d)/(.*)} s/$$1/$$2/g;' echo 12.444567 98.765444 == /3/44} ::: 12.34567 ::: 98.76543
|
|
}
|
|
|
|
par_pty() {
|
|
parallel 'echo {} > {}' ::: 1 2 3
|
|
echo 1 > files
|
|
echo 'xargs Expect: 3 1'
|
|
echo 3 | xargs -P 1 -n 1 -a files cat -
|
|
echo 'parallel Expect: 3 1 via psedotty 2'
|
|
cat >/tmp/parallel-script-for-script <<EOF
|
|
#!/bin/bash
|
|
echo 3 | parallel --tty -k -P 1 -n 1 -a files cat -
|
|
EOF
|
|
chmod 755 /tmp/parallel-script-for-script
|
|
echo via pseudotty | script -q -f -c /tmp/parallel-script-for-script /dev/null
|
|
sleep 1
|
|
|
|
echo 'xargs Expect: 1 3'
|
|
echo 3 | xargs -I {} -P 1 -n 1 -a files cat {} -
|
|
echo 'parallel Expect: 1 3 2 via pseudotty'
|
|
cat >/tmp/parallel-script-for-script2 <<EOF
|
|
#!/bin/bash
|
|
echo 3 | parallel --tty -k -I {} -P 1 -n 1 -a files cat {} -
|
|
EOF
|
|
chmod 755 /tmp/parallel-script-for-script2
|
|
echo via pseudotty | script -q -f -c /tmp/parallel-script-for-script2 /dev/null
|
|
sleep 1
|
|
}
|
|
|
|
par__test_cpu_detection_topology() {
|
|
pack() { zstd -19 | mmencode; }
|
|
unpack() { mmencode -u | zstd -d; }
|
|
repack() { tmp=$(mktemp -d); cd "$tmp" && unpack | tar x && tar c . | pack; }
|
|
export -f unpack
|
|
# ssh s "(cd /sys/devices/system/cpu; tar c cpu*/topology)" | pack | repack
|
|
# repack due to: File shrank by 4093 bytes; padding with zeros
|
|
cpu12() {
|
|
echo '4-64-64-64 Dell R815 4 CPU 64-core'
|
|
echo '
|
|
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
|
|
4R8QHVIPwAOo4b4aVRBQC1j7DAHI8Cxu
|
|
'
|
|
}
|
|
cpu13() {
|
|
echo '1-2-2-2 AMD Neo N36L Dual-Core Processor'
|
|
echo '
|
|
KLUv/QRorAkAMs0iHIAlzhiAkTYNfqzdobWLDMy5tCJ7i2xpEFTDbgp3bpGkmoGWh4pzHlmY
|
|
R1MPXf4/sgy1EIQS/39mqCQRHIkZAAPuhvG02DPzv7GlGCwhLEVgMUM1y3FoT4GJe3RViYJk
|
|
URZmaYkO1524AnMQg////////1cJIbWHoUmNFf7/dRjxKF6RuC5+t/fEIDegkaVSlojYaq01
|
|
wSkxioQigQS2B/0JO/7LN5lUPSDb1BV4wjMXb7cyPbAEN6DjxQDssWyAIBWbJgMaFG6AAcv1
|
|
QjaAIDUfIHA6IH8xF2OHByyd+lccVwCGgP2QUe9F0gdEkfM/QK6PY76agN1zBpPkAAbkICz+
|
|
226CXSoHmLRCOklzqQPgeLWT1ajVgsQHkFMnDGU/ymqOiRLADtiBNmNoAAD2ZOgBNAYAFAI3
|
|
NTc2NHBoeXNpY2FsX2lkNjYwNTQ2NjAxNTExMTExMTEvoGBv6wahpfBDRIDcA/0PINQnGyBQ
|
|
AZESgPtkAwjUISkB8HdlA9BUIKkCYD3ZgKgCghIA98kGKKQKSRWAjz3ZAKIqhKhpA9KqQaaM
|
|
FnXIgDNSBWAAdV9kAxqo75QAFpwEDHi2B7JV9QOyKcCiDtfSxQAE7w1YWmLNSRjQRjSAuuv/
|
|
AAL+kw1oXFXOTMBI1ABCkv4HkPswJvUGPJ1OutlfvWACzQIAQDE1MTE2MjExF+DwKn6HuAP9
|
|
CXz/B1D0lQ0YVu2BIgDUIxtgpAJBDQD2ZgM2SFUA1AZ4gLCdbECj6pFqALo32YAJqz+iL9t/
|
|
A2TvyAbYWB2CElp8ByKiPSxNKA7N
|
|
'
|
|
}
|
|
cpu18() {
|
|
echo '1-4-8-4 Lenovo E540 i7-4712MQ (PROSA stud organizer)'
|
|
echo '
|
|
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
|
|
2w==
|
|
'
|
|
}
|
|
cpu19() {
|
|
echo '1-2-4-2 ThinkPad A475 AMD PRO A12-8830B R7 (64g)'
|
|
echo '
|
|
KLUv/QRojAoAEk4kHHAlTgfA8cgfWfe8Fj0M/f/7TWS7cdsEWHW6DymHMJ1SXava1RxpCPG/
|
|
2Dx1+P8/0grWkIFE9M8Sg+AwGLRSFQ1TBlABd8O9rkTE/8dpSuEkhKYINKdgzXKkypRJLVxr
|
|
tURBsigLszx3k7gCcxCD////////ZwnBeB6Gxnicwv//3+GiGw81Fd1CdBN9lzcxCECgga2y
|
|
akRhuaY14SUhIqFIMMHZAfsHO5RB3Qd8NDHA/GIA7K9swCKVQfAAqAgwJgSo4Q14+qTg/0D0
|
|
gywqmZIDGt4NAL3IBvSq+s1kQLa3BXgAgXbMBixUSNad/FfMhwA9ZNVMeWpAjpz/AbL9HgNU
|
|
DKzXcTgC2irA95dZJQfkSgjIkEsOAIoYwAPyPgP8l/cAA9QOIPna8ZLOVQ2A4d82TY2qAlgW
|
|
8h/QBDGghg9zmU3fAPdnSIAB+nTkAVwGAFQDMzN0aHJlYWQ3MDI0NjAwM2NvcjY0cGh5c2lj
|
|
YWxfaWQ2NjEyNTQ3MQA2MDIyMjQxMjI0MDIq4FGl8DMCo70D/AE8kg2YSN2BQgBuRzaAnSqI
|
|
VKJRf0wRzaohA2RDFYABFP2SDWhQRSs1YMnLAQaE6XUMqL0BORVgCRXUAAOM72tMVQMsjzSw
|
|
FBj0fm2ABwjbjWzAMpVyjglgR22AAYJ9jKGiAwgnbUBuZwEeEL5nWdTaAKGpUEBDZBH9D9CQ
|
|
j2SrutMDFu4GxMNYJAMAgDI1MjQyNjIyNjI1MjIyYzIbqNA+QC8/SnIMEP7//5+m4sYB/d+A
|
|
MMgKBAMgWNkAJHngABg0G1DvAwaATQYeFACTrB4TAJhsQC8hkgB8IBuw4MECYEQ2IOcDSIsB
|
|
hjyOgCM9CMwDAFgyMjIzMzMzMzMzMyLosbn4maiGDxH8//8/WQ3dDv2HlQ2Aw2MLgBDZgCwk
|
|
CQBFNoAJEFoANsgGlDhEaGrxAEZ4UKgNmO3RaB0yVQAGUA5kAxqFMAGoyAb0CwQFwCIbAKoM
|
|
Ug0w47IBnKpA1AADBJKyAQXpEQuAFJc8AwBQMzIzMzMzNDMzMxzoQCf/zOYBEBrh//9/VgaR
|
|
hQP9AZQN4CEeDoAxswE/lgOMLQZ4PR+qafEAuIaQAOzIBlB+OAF4TDYgnYTc7d3/ABbMbMCD
|
|
OFAAXMgGLIKQAnCQDejZI4T+Qz4V1AMAeDMzMTExMTM3MTExMTExMSa8UH1kPcAAAVIs0P8A
|
|
FnSzAXOFAwIAlw0wPR8kAAcyFpIA7FU2gJr4kAAgygZw3IcEYDIbcHA6igXgARYlmGwAsUML
|
|
wNOyAZ/yoUptwEX5A6s2YGx/XADMsgFZ70MCcCIbsGsJ0QloLBxNAgA4MTExMTExMRXsAGny
|
|
O8kO/ZH1/ysbgDt4GNNigLcdQgEQzQa8sY8KgJHZgNEEH5ZaDBAmPAoAjGYDYMQQIgAH2QDK
|
|
QESAkg8EKmp0oA==
|
|
'
|
|
}
|
|
cpu20() {
|
|
echo '1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit - detected wrong)'
|
|
echo '
|
|
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
|
|
Gnfd8IITzjZAXQ==
|
|
'
|
|
}
|
|
|
|
export -f $(compgen -A function | grep ^cpu)
|
|
|
|
test_one() {
|
|
eval $1 | head -n1
|
|
export PARALLEL_CPUPREFIX=$(mktemp -d)
|
|
cd "$PARALLEL_CPUPREFIX" && eval $1 | tail -n +2 | unpack | tar xf -
|
|
echo $(parallel --number-of-sockets) \
|
|
$(parallel --number-of-cores) \
|
|
$(parallel --number-of-threads) \
|
|
$(parallel --number-of-cpus)
|
|
rm -r "$PARALLEL_CPUPREFIX"
|
|
}
|
|
export -f test_one
|
|
compgen -A function | grep ^cpu | sort | parallel -j0 -k test_one
|
|
rm ~/.parallel/tmp/sshlogin/*/cpuspec 2>/dev/null
|
|
}
|
|
|
|
par__test_cpu_detection_cpuinfo() {
|
|
pack() { zstd -19 | mmencode; }
|
|
unpack() { mmencode -u | zstd -d; }
|
|
export -f unpack
|
|
# ssh server cat /proc/cpuinfo | pack
|
|
|
|
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 AMD Opteron 244 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 Opteron 6174'
|
|
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
|
|
}
|
|
cpu13() {
|
|
echo '1-2-2-2 AMD Neo N36L Dual-Core Processor'
|
|
echo '
|
|
KLUv/QRoPRQA9iRoIyCPmwBAIy3LSinV2zbLlasWEvo1qQe/YpQhuFH+WyAIGgB4ZgBYAFoA
|
|
rN2p1bjy7LIA8UeDkReNn89SaykAuHCQiCwGQ1lNF4fz2m42LxTPCBkInIIaHgFxTBzmxB8e
|
|
LqAd8KB7WuGp6h3AJYO6QJiKa6okh3YtDRIKq/XLpyEF1lKE7GW0MJ4AECFzLhg3XxbfOEwu
|
|
W5iakpR3xxV+P28kM0VyiuofhpzErUMcrfYR1HXlxNZv8iOU9Vz6VPvI+sX95H2yp0ZnR7md
|
|
LAYuo3Rn7cHWm4uSibMCraR1e221VWtpsGsaBw01S0aK07b4brGgS1Fs3HtVo2dvmjyJtWTN
|
|
Jrfgc9M+iRj+WZ2SjKse2qhIXBrxK0s56dLqSpJHufdbC/cQJsJuD+rb2ye2cOE7g9BJmzH1
|
|
U80Prk/gY46rCwzDOJhl4YtHv5qv/e0+P6WPuzgFdWzRwLlb88iDOSNjql/qc5pT6QFZOB21
|
|
h3gsRFQskIMCAwSDbQod2CwNJkoZe+XyGYxHJqbqTnJyDnrn2K0Sc+qMFiqZlZRqalxnKDAE
|
|
iFNnHPIyW6sjBSmjVv2fZQzcoCUQPqCxgIN0gPYK4Id9CK2Xrhh+6pczlgJU1dW5V1wXneBN
|
|
Dso0OEHQ1BAQD8hEOKPSSEqqnbiUo9qSNWNCSqPFwUg3GEdg597rYovkh/VDJS4Jc2hsDA3N
|
|
hu0BT8rqVWmlI7y1M7cQWtFBkCZ5dJEVHCEfnkAcxowh8tfz/1gcq4N0e/Ln4LoBaCTxpDA/
|
|
K9wEOcdPpxqOgLHqXpMH0AQrQRswgv0G5nqaeJrhzIzcgz0m/QlzxxEQGeDTfXJ21z8GJGDt
|
|
hOfZ08YsNAENX1FX
|
|
' | unpack
|
|
}
|
|
cpu14() {
|
|
echo '1-1-1-1 Intel Xeon X5675 (mandriva.p)'
|
|
echo '
|
|
KLUv/QRo1QwABt5WJBCNWAGjFDHykUWSQEvNjTGJMp1z5pZCA7MA9TKhFAAAEwwAAlEASgBI
|
|
AI5SkwOF5Y6KYGPe2WtyYNBQJBYf+BmNhuHwhoUCGNfhAQwAd9Q+Bs8wd5RyC8W3mjtK4tpj
|
|
j0usy+2ECAubBNfgjoLaIyMEN7IUd5SM3atRcmcRX8r5ztvXxuyOSb/6vowv+117fpu/0PdF
|
|
LvGjI+Y4YiluI+sONYkVxjZ5ddqnVyLxYxEk3OFYFuWO2knrL0SZrsaiSTgYisUD3X0ZZ4Px
|
|
HQKCcNJzym+QOcJLougixzkdijF6eOVZuvZ8JmSzYdQ/d9aekPwE7xzTlvQn5Mt2X/b0+PTe
|
|
IS25h9M3i8n4kfg0azkT7tuIQfYuNyLyckyaskUczAUc09YSCL9ne7iC6V4JQWzCfTBqjj1M
|
|
sxpLoqEozR3V3F6M4sN67nlAmHsv+4TKkb8oD7Pdb5RJv9gYKBAixjTqEIhm1AHKWTCgrkEE
|
|
YstArr0BOSgXJ4Xmpu4j9PRpQcgRCckdf4fcSFol9GuGecuj5uBxngHakML8
|
|
' | unpack
|
|
}
|
|
cpu15() {
|
|
echo '1-1-1-1 Intel(R) Celeron(R) M (eee900)'
|
|
echo '
|
|
KLUv/QRo5Q0ABp9XIkBrqwCI2LZJIts7o1loU/RrgCM1Bkm4qbLeX6WzKj6uMAFQAE8ARwAL
|
|
JHEgV0hbZFGyfUlxhRq4zDo7PSwsEOTgX8Ao1WnCAxwArpC+BU+AuELIaYsvGVyhh9u3mDvM
|
|
ktMJGRSuA1XhCrVVZGxQn4RcIRm7lUXJAdxIyRVy+qh7W4cZjDtZmUOV1ofD60XGIAiTIrxC
|
|
jbMozzbmbu1cuGx5XSGVkSXEFeoGrlu2294ttv1gcEJoeIJIPGxfGWyxlEiQAYXQw0KHjdim
|
|
06c4zJwl7eT3XO6A14X/5rufaPdlO5g73vsyW+/ZzmjHMY79iY99NXwp5ztrX+FgV/auiy/7
|
|
nfW8Nl/b9T13mOlmuSmpCfVps+B6l9qInNxyptxH4D13eULQrbK1NaE+2KxbSoFBSiADCKLg
|
|
fbGJS5rL2Omcpyxu7rvh1eh3e2cmwr178WNRVMbZSoJ4FJWTKXcnKADAIKuqBxBI54gcFYp3
|
|
xUIMqhrUyHoLjYPwgszI7eGRdSUOFMYQlpP0pOoEAV0WM1zTXUey4OeJUEZtb+UNcgLSAYUj
|
|
iyXJQ3TVfIX50ANedGFbHwEc/JQzJup4YQ==
|
|
' | unpack
|
|
}
|
|
cpu16() {
|
|
echo '2-12-24-12 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz (vh4)'
|
|
echo '
|
|
KLUv/QRoXSQA2kAECyUQTWMdEfORapSl6hpfhdTvIB2fCbydyAB94J9MxTuCiACAvIMbrACZ
|
|
AJ0AsZ09tMbz9g9R+7b4ZXza8a3rt/nrvhF6PwzyggEXWnj35HyVt0W7ehcKRhyyV5987THr
|
|
pbMZ/cgHndfuHbL2epFg40CDHwuibIXX30RjzViOxaAgKlVY4KBJonWzTdpeNNQLAHjkY97a
|
|
RoUFCo7EoG7gCPRDLYqAkuARHiCQcyVcAIQAG5k8AgCum9FYFvBFhriCmwG3SgYrn0KuAvcW
|
|
nU4uZBwvAIDO7m2TcisfdGzdal1fZePJXweaUUVXaSXbfdbc3Wv82Byfco2+pKidRcQfx/WR
|
|
7d5HsR9F6JDbanc665MzPll6qzsFRwEqImz8J/mMp/zimXDyrNEhT3k357N46bs6b2f5ckYE
|
|
XV6JRtmqktWWsz3Cc+vq6J0nLTt+JA8ha73or8OP9TXx7qvtPu0I8SjGP27sXd0TrYAI2L4g
|
|
lfGhGe/9MFvot4tH1ATfzXjhzNpLJWgtrW25Lxemq3DjUjiGS3CdsoVtufiufAkpO3PvkW6i
|
|
Ola0NhuEq/KMFNo70r3ijX2VXnReWzGBOf004o4t9xh65f2iPjof5Wgh4i9K6AvTsUQvyvW1
|
|
77Dz3tR5d0731/ur/IWPfL0g+e7wvkIFQ6zosEe4EAkG7ySjjr4tCfEIYl+IdfRedrrx1RXM
|
|
0SyIUphGKSQxKh2KMjSHapLD0iSGORpDWpBDUhTTNEmTDktiGKRJiqKWhCBJWZCUlDKkRKm0
|
|
KAlRUpIgTHIkhTBKo5Q6HFJKSTFMYzgckJSOdCyIoWGQJSUFORblcEhSoyTLgjDHgiSJUkql
|
|
hlEMhyYlwyiwD5Msnu7CZAMyRaUPOiQf8K7P+dK91DlW5Ub5PMhWstw4NAakYRJ+cT7TMVhl
|
|
bi1ktdd8Mb6+xKtQEZcDa4DDqMFgxYzIjEiSgiQFSQfARoZG0yQHYsA0SQAhCAFCcIYihEFI
|
|
eEU4FDgnBg/CvfDTFEdfCnzKp/dGFGcRJTBac/VP682IZ7JNS8a8Qlfee2qAsyGbznwFCy/m
|
|
U1ALcxbXtKQvWrgyn3pamLNRTRuTMDy3ws1ZhXNbn0zs/KfjswDmAk60ueL78UwnwrzC2pwG
|
|
8XKdA8G4QlXzjctfmU6/IHBeOaU+Mi2DiV5xvoW/1lQ9L8N6AE/hzUXgVu/lIk5iDv1pu4k5
|
|
RtkHE4KPT2MhGjqcCQQPp9nTTpOA087fSVowhrBufLpp4ppGv6jkrAkYzqNwbyg8FOzwJTe/
|
|
uFlcfjE0RytY1n2BzX1wHq3S3EPR87qJk8A3bdEymQU4if9RYRQUH0JH1v4o5Y+HZ4/Jcx+p
|
|
6C67cHK/roV6KRX5eh5fZ5zfBAGIcypOQhRdDjoqorlsIRh4MyFFCa/+w9rnqQ9IhTJSxUEj
|
|
J/m5uPWXdiT61TaAn85i7vm/JHEVLykNoOaGbE6PZXMCHEOy4iJ6P6vgAOxE/spU7N53w3RU
|
|
pvPDpg6++vY602wMoPOM5mjPE/5E9C+1WNOag5ef9fYNxh+A4wfWolSv
|
|
' | unpack
|
|
}
|
|
cpu17() {
|
|
echo '1-6-12-6 AMD Ryzen 5 4600G with Radeon Graphics (ai)'
|
|
echo '
|
|
KLUv/QRoxSEA6kH0CiUwS1sdaPiIsqmQTVuLLykLrtQOna/tY8caFQPfvvvkgYUF54EBqgCc
|
|
AJkAyXde06cCxnbefuLRr7Zv8mG3a8dv81d9m/NWJGPGgWDrLLta7q3Iq8+i3saCmbNccbml
|
|
i/NALHx6KM3SarXOUlc3Gj4KJLiSHCKs/jaaeiAIIgBBDEkEBAsUkCTx6IO62pEo3GLe2Efr
|
|
ajjhgbu3Khm8iYvxAwiCMPxwtxEaDL4t3REKANiq145FabDVkvmC9TCwgICu6LaJCwJqIfiU
|
|
W+dAPgAAfN2rD3LJLXyKYNTHL341PirGIfQ7rTOcfm80LrOQGc+p5dvtFItlr/ZsKRNQm9Nv
|
|
aCqWIW6IaZJduYQKXhGJk18n+3lvPjrlx9+kPFcSZEAkjz4b82X7xeVe+4JaYIvGlL8cn3HC
|
|
NwYu55Hi5874uav3FIgXougytnv6xs7aUcEnRbKs+JEfis8+7oyldqMfmyvbfdgP86e1N71g
|
|
DNMjlhgOcq7LySv2ml7YRIYPN7LFbC+S37FXd656uupqdTbSXS5TlLQ5X5baSDse8YLuEJy+
|
|
AxN7ZPeYMK/MeuW49VxifAFZwcPIcOH6gxuB6WMs44uopcYL1Zc4Ka7iuS6HsuknBlPO1n9U
|
|
Xu12oragV3hbX0lWS9/O1IpmWnMe+4kbpvVM7SrFjM2I0bDSLwzF1CfWP3Elo10Z4/RLkiSH
|
|
REEhQeFwSCxLQpIgCMQhSQ6HBRFwQCyJIZEwLMoiAFmSZTEYFEVRkuQ4HhgeLImDP4gWFjKI
|
|
YZbRvMVzjO/4AS7b4TIeHywXES4nwDuu9IShe6FSGd02ZEAcvYrkJzBcSUCWAgoaHAqJhObV
|
|
nuKl4zXsp4YotmYpLnx3ciO92EhJYHzDGBN1o7iwG71IR2rrw6e66DtPFyLGYwxc510tXm1x
|
|
BqMiXW5mKZyrfKwFgKGowTykkDGkRkRGZKRJOoBExqg4GQ5COUGLMEUERrgzJMbE/0wgQaYH
|
|
7rSgB1fM/kMSWx8VlA5S0OKNuWI8OR/359dtGFxgAconnVldLp+9a9V7SFk+bs+OtlyqzwrK
|
|
xcHda6arrSv0SUHpjILKezeeFaB80pjp9b4rw/lQiyR/K5yP+vP9LYeOwRWAt+ciFnSiLUur
|
|
rq4cAM/MprXU19jHLpLvmiWBe6zHzaIqO1sZ35yOXlqIa29j88LhLeMSOPNflUdcL2cNG6ti
|
|
NPWjEbKXtIVeflMMLyjsWLuCUcxPFBWGmna3DgpIJmairUxU9OPb1XINMjCrs+PJbgrQARvc
|
|
19rY5t2tN8ulUxMyLr9RA4/vay9o8CfTq00/5AalMO6Kxg8B8HlNZ18ej/83Xw8IP+brlaoW
|
|
nemRDRyMrTRoNR6FdbT66kV1nQt2zfQ7krZmj6IJ9/O6aXGMPXcancqeawY7QJtwnNUtOMQ0
|
|
DPeXb9dzDOgUh0ST3w==
|
|
' | unpack
|
|
}
|
|
cpu18() {
|
|
echo '1-4-8-4 Lenovo E540 i7-4712MQ (PROSA stud organizer)'
|
|
echo '
|
|
KLUv/QRobR0A5ricJCBPrAOD/6k2Kdd940OW+jV8IowHH1LHEyOAj3wFiBJCBBssApkAhwCK
|
|
APGt67f5676ReksM8kXiMHCphXdPzld5W7WrF2Pi6JC9+uRrj1nyLJ0tyQeh1+4dsvYaI8IJ
|
|
QsOfh9mM199IY85DeSBNk7HgUNBUbdL2YuJI8jFv7SRjQWFxlOYHn3hIOIRDwzwegse7gINE
|
|
wNKZcIGIgI1MfgGA62ZMHBjwRRZ94pbArZJh5ZvkKri36HRyqWS5AQCd3dsm5TyZapj1uNf4
|
|
sTk+ZQdTxegS5Pq9ryJ1yG21O531/XH0VncLZwGnCBv/ST6Tx5AmnDxrdchT3s0pLV76rtAb
|
|
Wr6cMaLLK9IoW1Wy2nK2R3hu9JDELDt+JQ8ha40B8WN9jbzZ7tOuolcx/nFj7+oe6QlGsN3h
|
|
VManZmxnEq3xvP2Cqn1b/DI+7Y/WXion6lGN1Ot2FE0MKOeq4i5lg8QxcJ2yhW25+Bcl9a58
|
|
CSk7c++R6mZHum94Y79hXoRee6JgUEsd3bHlHlOvvMeoj85HuVoY/WI6Fun12k2hdwd1/1X+
|
|
Qkm+XpR8h3hf4cSiFSH2CFcUYfBOMurom4OJXlHsS7Gu3stON766Vj7o2LrVur7KFo/HsizK
|
|
sjjOw+FwChiI0mgeR6PRNIvyLI7G8zQOA1EejcfjOI0HRHEcx2kaxtFolAUCaRjmeSDKszSY
|
|
JDFYiUkWT/dicgLZVOmjCp4PvOuDDnG6lzrHqtwopQfZehKmoUAKGvzilCaUyAo5rflihGi/
|
|
vsircIoLgvW9JWYX/XbxUWXguxljQLP2ahhqLa1tuS8r3LgmKNneSVpuawuAjKjxOKIMMozN
|
|
BAVJkkI6gETIqDoH8ik1TcCMERAi5sRS/A8FFS4dG3CFtZwlIk6YcimJDtgk5wR1XK4Zk8Un
|
|
sMVDxBNion/C2hcU+QlCJ9TqKYENn+w6gVqWVtxECfmm9FkYX4KDEonAOWU2hJsM6RMh0U0p
|
|
7+Zac3GHjyoclWW/p4WGjMjik0uVQdh2h0oi5FLuqKQfPYjKWrQQKCqYjDPIvFVSzilypEW1
|
|
nRlB9gFqeGTDqWsdgBaiLwZvZEI8R/Gn0z21lUPE919W+l3pW3zYoa67/7ma7JfvqXav1TPR
|
|
VPD4FxvYvY+QCPdXlYD+97NAYZox/vWovIVyerIbhrErTRTiye/tcPmHerjHhz10g4iteO9n
|
|
zdoA+1KxJ8/shJsDnYcJTIaXxS7ju0nnln2fbenY0DSGz5+q
|
|
' | unpack
|
|
}
|
|
cpu20() {
|
|
echo '1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit - detected wrong)'
|
|
echo '
|
|
KLUv/QRoXSEApjqgIyBtrAMBfUS1S7lyNhBkqR+VRby1HGkcIfAfpUMCoQwIwQaLnACNAJAA
|
|
LX4Zn3Z86/pt/rpvlN4QgwxJGnClhXdPzld527SrNxLxc8heffK1xyxR1NLZEqah89q9Q9Ze
|
|
Rx6cIDR8oTAWS8Xr76OxliwWiwJmsSgVCw7PtG62SduLCSQf89ZOIhYWC8aiCBjvAg4QAUtn
|
|
wgUeAv6oy0YmvzQUAFw3Y9JE4IvsecQtgVslw8oXyVVwb9Hp5ErJ4gcAdHZvm5QD7BGu58Hg
|
|
6ewn0eXI404y6uhbo55PEvtKrKf3stONr66VDzq2rsrGk7+OMl1Ri2nU1M7i82W7+1OUTuEo
|
|
YBRh4z/JPOUXOuzBpSsCTTh51umQp7ybE1q8dFXJasvZHuG5dXX0DqSWHX+Sh5C1jvTr48p2
|
|
n/b0fIrxj47gA9ubpTK+NGM7g2iN5+03pvYNz2QRKOeaDpLeVx98DmPW1qNRdqfg+lY8yB7d
|
|
PmUL23LxkfZzh2kefc49dlSSHujQBNfHIOcXoz8ppdVKcupC09uTiz36DqTyZBb7k2N3u+3o
|
|
3WssyfeOdK/wxr6iXnReO5JgTkP93LHlHkuvvH9RSodMxx69KNe7bZI95K7ad7ip8+6c7j9a
|
|
3WcpQ6Z0y6MTi6IopShFUZTicKiGo6EYDNU0GmVgoBgGo5ZFKY2ilFLKQDkcjkaDaTAYjKZZ
|
|
GgMDA4ZRmGVZFEUpSqkkOViISRZPFzI5gSyq9EkN5gPv+pw7lu6lzrEqN0roQbaYJmksGoZf
|
|
nNB0Eof3bhc6dekbYgbpdzOOOLP2UpS0lta23JGTbEeM16IdnbVuO+1yK4KW29oerb1URpSr
|
|
9Lr9BIC6qNFchZCIzIyigjRJY6BGpmY2qTzCGDnKQIgREOGOCktK+F8YfS50VI64g4N04Kg8
|
|
wInlxaHDRjUodp8qTXWAoFGlc0zWvXk6ZFSjsvLs62BRTbqi1eWjw0Q1UlKejQ4Q1Uwn6l1+
|
|
dGioBiXn2dFBoZp0RKvLR4eDaqSkPBsdCKqZTtS7/OgQUA2K5KWq7+BPN+2nuKBefqrnIDLj
|
|
iTm8vZ1dZg5XJf7nQHBS2u05gJzxxhxubs+uM4cVif9zMJiEdvccRGY8jvlTHW4ZohKA86Ij
|
|
DK+qoBEOH9Hmb2hZJ2Lb0GRu0CBoyN9SBHNF0+Uszf2tI5lNzcDMQsaCnrfMOgES0v+PL068
|
|
ClabXlc8ZfVZ/G2Uif9+TkhUoBF51BvM/Tmub6WUJCRnc4PnthtuTLgx9FKSPYrKXoAnGonL
|
|
z2nQFnlhUcsxIwOg1RuiG0BUVysNdZjqnh7tS6AoqOj91PaSDVJOM9idASBdOsPlC43ACeGN
|
|
/1hXPh2Qq15MEmKDLoOWe2EE2Y5kjHpuT3nZY0+6YFB4UM/bW+9xShBIaCbgxs5hglN9t63i
|
|
' | unpack
|
|
}
|
|
|
|
export -f $(compgen -A function | grep ^cpu)
|
|
|
|
test_one() {
|
|
eval $1 | head -n1
|
|
export PARALLEL_CPUINFO="$(eval $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 | sort | parallel -j0 -k test_one
|
|
rm ~/.parallel/tmp/sshlogin/*/cpuspec 2>/dev/null
|
|
}
|
|
|
|
par__test_cpu_detection_lscpu() {
|
|
pack() { zstd -19 | mmencode; }
|
|
unpack() { mmencode -u | zstd -d; }
|
|
export -f unpack
|
|
# ssh server lscpu | pack
|
|
|
|
cpu1() {
|
|
echo '2-8-8-8 Xeon 8 core server in Germany'
|
|
echo '
|
|
KLUv/QRodQYA8solITAL5gF7YbnaqsSsYkliK98HHFiNI3FSwNumyBYOykA5Aew4x163Zw87
|
|
7XAqwtiSPYwAiCZa/8LET3hd+xO/ZCDAJQlLGEACjIF+VflN4KP1dFkhfg/zHeDC9Esbp39R
|
|
LyBo2lZJfWLmstJeIOmA2/WGWC23lWFWY1uv2rAKCd1SESOtGFYhITDsnsJDEK24vW70+1S0
|
|
SxQgQIII9QEdLfxiBElVRWsZDqgLA+oSr9kgrmS70kDZt2WvOkEnODfAiaJIAWgWoteFUwLs
|
|
8nwc
|
|
' | unpack
|
|
}
|
|
cpu2() {
|
|
echo '1-4-8-4 Core i7-3632QM Acer laptop'
|
|
echo '
|
|
KLUv/QRoxR8AukKICyngcGoTEJCWSciVLZJIKEXuzdZEplGI3JgV4DZJLMuEV2COJ8wwH2L4
|
|
BcEAsgChABMIwcjiqQJCoZiUW0AsFAUYGxxMCkBPd7MpzAYHDRQMCMYPfDKB0Xg0HgjoA0wq
|
|
D0ABQDr1HjHgLRmcMI9LU6eeZz9JPo1eNlAgeYTs5cQ7gkmFCMyCwjg6MSzIGWEChgHXYy5T
|
|
GS0VhsCDolnbn0/bw5PARDQVdVQpwnGHppbyxbLnVuePBucG5TNnZAwB85Syt+DZuhVCTBYl
|
|
PPsSYRyPO7Q6D4xGAAaQDLqHha8gkYBxPJpHxHRIxqhXtlpWRBAx+yncNw3H1BiVc4ZWaWAB
|
|
l4UrJkeQhfSMvQ6ulXz21FuvuFcqnbGyRyhPSVu1CMKs9uI8I2z+yqVIIE8DZN3SAMd8nsiJ
|
|
KluCQ5hNskmvTCh34LRw1J43pezB9QuTCY4pPckXVCRu4OkFBE5I7ROKLG9tS4G0dXLIZOJB
|
|
q0W7Re5Oa8kvrU0dFfO1aOKKR2Nyhkb0wSMYaVlqnS0gMNNDZeJBbbVBJ5jGAkJRoOGgSEgC
|
|
beE7gxBqNuO5nbOT+wfdE3Mby4qq6aeaXfuu+Om9NbX4wk9n7/ptOfMZyfzI0/PJuesudW72
|
|
tv5otNpL0K0raB9ju2/yl656xLSeyz3VPrL74n7yPtnTSY/2OYQh1RgwLHvl86g3jBCho77e
|
|
hdUnrjC4YFzqDiMcks2J0NPW9HmEQqFCuYMFBg2FQkQiIrlDPm1wO+OXxnwJvbWIAaP1KX4M
|
|
W7TmUWVbDXPn3r+2bxXVFdO7mJZm74Uu5jedchji50xXem9GqHGnbM/VPekaIFMWbuL219Hm
|
|
O+voOTp65jBfe+9svluknsa15rGoFln8eiyeT5J6Soqnc6rHdNoNU8mafmvhMqYzFo2D6dq7
|
|
xfZxe/pjMa03kjk/OeltV8PsEbY+6O54cDZ7BpahRa6tvb69OtNo18L3CwQbXNjTA3IgUABA
|
|
FFkPLUa8gdKoM6utIHa/NrtPEu5DQv8gyge6RJ2RmegWA2w0olDY/5lu43u3KLpQpvV9DWB7
|
|
CFzd08L6NLcg3DK2Iii4oCIi1jNIE2hkLi8wQYrBQthc9idpAuBaroQWpoIwMqR3NNkECfJu
|
|
sp2IAOACZSd4BLmUzVHl0rV1Cx0Tz3XrtPBCCl8Kvi0Wusx4XxBktMyMQbkszXzEs4pfZzPl
|
|
aJcthoylYAaKfS4KyazRcAhc3IKx7ShmMdAXiKvD0NxyiR0chavOhoeEWuhRXAvYVR9j44TQ
|
|
yFRTQMEnwBmtgAoLU0YIijDMvRARZYMpA4smUrtjrICOHpSiNYqBXUcja59JvwK0LWESpwSv
|
|
+wJQ
|
|
' | unpack
|
|
}
|
|
cpu3() {
|
|
echo '1-2-4-2 Core i5-2410M laptop firewall'
|
|
echo '
|
|
KLUv/QRobR0AFj+vJvCyNgHQEZLJrWwzBCOlyJ2IXthpoGeK2U1oGVrADy9eHBY/BkIIsgCr
|
|
AJsAlEmEYJJAgT4kMAcbuFJqZ54PiQiIhAD6wjGQyAQaMNgHYDQPwABQisFDrzx1EfNQOm8p
|
|
Nl0bXhRuBTXC4fIZHVQNeAZMRsUTybRytMg6Y8MDxfap0jGdHM0jGYA07/sV7huAFs/ksarn
|
|
WgiTCzzWljscee6VTpGwfiyfWadzDA9k6+DD9XUvxStT3bS4dsfyTCgX6JUGIEkAA6iL1ICM
|
|
z7hoeCaUiIJwvaKz6qa9nDYZAg03ykcRT905mXTeSObBBR0Z21SuKhHrOltSsTXlO8j+uk15
|
|
ttYdr7slc7W22asqzEx2pOuMzW8qM5cK9Iiun2KsazCZK/DUaaqkyfQ1vMIOA+PyVAte/qC5
|
|
uMJmezFTRyj0vYLRmOjlbL+KuvT68k7vW4lNha/SOMSymEskUMTg0Fp24hOKchprdxGK5xrQ
|
|
aMC4zT5W44ESDCaZiwsmbqIFAS6EAAJJgC5GBfPc0llSeRipaaqMOG2yqCFrpt5l43bzF/x7
|
|
rHGHr5I81W/OIWX+5Gv6RVFf2di53Tlcvem1UyTN5K1ItbON/JxNXSq/rWRHuNq1UVcmP5l6
|
|
476yvLorZb2S0yu8YQ/icdpNp4m9Y8WMEnuDHWa/WLOB+95Ot2QwNJkLbEBEGYzH1sHYbrmw
|
|
XC6gcF+UrfNtp0Ld/L0KAuqFjD81j4u8qEWOOrc8fPLNJjtze2oqp91bRrfSekudcae89E1f
|
|
Clr3iI5xOJqyL6VtviSlPU9p7yTmb8tLUk+9aOKw98tiV4vxdVb2qdR25Ji66A2bjBK6DkWi
|
|
idsmTzUnP2Vfp0Sudoky8yHWX5T1J1vE7jP2wkh9QmFt9w7X8SrqNfmF8uxuK9lkhO9s4osy
|
|
9vUnI7yLcRNJDWMgUASALDIelxSA43If9uHpvXHEbfAybA5yiTzjJGNsNEJhrP/trvE9thy4
|
|
EPWxBL9Ev+3Tc4V4y+yIoASj88gBPDh1YC0Hj+9SAIGlXIksTAVhZEDvaLMJEPRuqp2YAOQC
|
|
TScOHg0AZWaC3ta8uvJY+7RdpnWcJnqpGYJyWZn52M42vTHmkCoi6xGLgGI6qJBMGjmMBMaA
|
|
xU0EY9tRzDJQ4nY0BW6JnRuEi+6GBsRfsKN4C1hVzzGGYiil6i4wwSfBmRYAFSBTdAhduMYs
|
|
pN+yYcqIRXOpXTBSQCcPSsga9cCuhh7z/9NC2xMmKUr4tsTH
|
|
' | unpack
|
|
}
|
|
_cpu4() {
|
|
echo '1-2-2-2 dual core laptop(?)'
|
|
echo '
|
|
' | unpack
|
|
}
|
|
_cpu5() {
|
|
echo '2-24-48-24 24-core (maxwell?)'
|
|
echo '
|
|
' | unpack
|
|
}
|
|
_cpu6() {
|
|
echo '1-2-2-2 HP Laptop Compaq 6530b'
|
|
echo '
|
|
' | unpack
|
|
}
|
|
cpu7() {
|
|
echo '1-8-8-8 Huawei P Smart Octa-core (4x2.36 GHz Cortex-A53 & 4x1.7 GHz Cortex-A53)'
|
|
echo '
|
|
KLUv/QRoTQgAgk8yJCCN6AGBEUmyQvipyGwhCMTqQifa7nWt/lvbXsAxLGVACC2ABrswzRtD
|
|
KImUazOO/vUjml18lTF9qBAGEXY5CsYxMaQJmQvlLPmUUkqxNMwykSDxhEWqHCIfpf2OZQgg
|
|
ZdLvM+rIJC+G7aa00gJkwGCfTnbDLo5dzM83RJu1fUY7MBt7U8faIwxboCh+vj7I3PJBRTbW
|
|
eUzRSvacPOCG/0+BH2/nDe6XWOxqWOCfg7IwARWg3YwKnfyYol1NpDlj/LRLvvW/SHMoGAAr
|
|
Q5AWDg9qGEBiofABuk3KGsauTvhpnhsa5HVShxsS93JpFOfBzhP4ZgBCDQ0XCuEub/2VgAiV
|
|
mwwoAdUl+VI=
|
|
' | unpack
|
|
}
|
|
cpu8() {
|
|
echo '1-4-4-4 x96 quad-core Android TV-box'
|
|
echo '
|
|
KLUv/QRo/QgAtpE4JBCNWAHfG9LkksIm0BaMBALBz/jVBGlPVDQCo6NyBAUAwCBwEC4ALwAv
|
|
AE3Pdb/CdQp8qMWbgAkggTgKsm3Q4Oq6V+ENa+PHtSUIlBuYHrM3ylI/2hs93AgNJUKbo6OP
|
|
wb9x2qJDORYaBQnn2KA2qCXS+vDEqRwdtcTnrLIx5YhBMcoCQQ+1/s5JT34q++OePenb28ku
|
|
oTlh7mAtuGutJaBYGMsEguMR7F0CcdRCLp7AlVI7ohhGqqdtezZt2y92uj4zwajwcja9hKa3
|
|
k15PBt3hSVEfciy6hLiCefi5YmHRfBgggCQg1HBWDGNRBoJsaT4B1kZtNKSQAf5kC+J/a19p
|
|
9jscIBj33n2UBCmUphwBwqU/HBDKFhi+RQnSA8zN
|
|
' | unpack
|
|
}
|
|
_cpu9() {
|
|
echo '1-6-6-6 Kramses 200 USD laptop 6-core'
|
|
echo '
|
|
' | unpack
|
|
}
|
|
_cpu10() {
|
|
echo '4-48-48-48 Dell R815 4 CPU 48-core Opteron 6174'
|
|
echo '
|
|
' | unpack
|
|
}
|
|
Venter_cpu11() {
|
|
echo '1-4-8-4 4-core/8 thread Lenovo T480'
|
|
echo '
|
|
' | unpack
|
|
}
|
|
cpu12() {
|
|
echo '4-64-64-64 Dell R815 4 CPU 64-core'
|
|
echo '
|
|
KLUv/QRoNR8A2kBECygQbcYJiNmWkVvZhZlEnSKWBFp0GRq85wI/vMgYA62BnzagCgCAQaAg
|
|
tQCvAKEAjwPx4OCIj9hIGkchwCHQLBUUOBIPuFJqQyQPQ/N8RmZlcT48wGsAME5t6eD6FrzT
|
|
Fh3JwkTcviUdcDSwbahTUw0HHD5jgyoBvsERoUHiQCSL1gksss5oIGEi+1TZls4JQtI8SqJ5
|
|
3a9wnQIdJG5RPbdacIstRyZ57o2+cFgrLJ9ZZ2sNCVzbIIKr614GU9t0cO1II3GeL/RGCtME
|
|
YADa4lNkfIQHA4nzQM8CcoZOqpn2Tmw2BAmYXrj4UxtulIcgnrpzruj8kCuCB0RkZFOZWqrr
|
|
bPkiY8pvcN01m/Jrqzd10eJtb0Bcq+3lqAKP7XWcwbxkJLrO2HymEoIBI2Jrp2dwc0i9MGja
|
|
TCVpvWOD3mnbUe+Ra4dHet1Gayp0lIRkaRSHYWCUZ3maR3kUCoVCWTgMjpJwGgKNwjSMYlEW
|
|
C4OSeGLhNM5zxnFmG7vgzKLQiS32tjBIJCgMGLdXhZWQMI2ARCK9ML5TaBQc9RyTXyj/pKly
|
|
/bEGtbfeFmoN0belJJMR3skI32J8QFIn1HA1P3fJuNt89FhUNvmWEWqIQuCdW4wj/J7OKPMn
|
|
Q6RD3vvElJMc+9P0kq/iY18P+Tn7XSqfrVxfQNiVveuSn/zOuK8sr+36qlNS4sdyCRg9Y7TO
|
|
YITXIQyBwS2aD7jOrfQGxIMvQIDYBiN746Hh8AWF66Jsnc5RAUlzcWKdU0vyU9utpEwteW5e
|
|
5qUtMm1vyysSHS51DIqYQowbkjvhJ7DooGpG7i3he831ZV/0XvVIRvsW9WqWUMT0SLJHUGdk
|
|
0GwWZey/qKG2yvpOt4j3wp3AlxFyjvYRFcdPrFXSKSMibM2VGT7WLd739aK1mOxV/AhbD3WQ
|
|
fJA0LXf2LNIh1bpWiyFnXW/IZJRnFsh5Fgj7etIb5Rh2IIAAYJCsDt0Itwf3dUHgOS8IC3/b
|
|
cx+tCmlszVYPLUY2cy6k32i2tsTCachLepZh+yFZ+9QZqUTqQcGisUgRvvEwh9VHGLSDCXO7
|
|
4229V2jZPh1WaFKMZmTN3FKTRx/WIhwGNK8IzwuWRBf5u7SCYK6uBC1MtTDiFrOijJL+3UQ7
|
|
keVCzWv4iQk9sM2ASaSnUIZnvcRUvcJqZcM5YIQfVShhtbI0nFeGKOysSdUYXLuFbGw5uKQI
|
|
9TqKlwFgqMGU058zcDgdl7WAndaEy5TLvwFg5aqP4zgAYc3lakmdkAAuoQCsBrIlQlAIw4he
|
|
PFE6mEJmPV3qB3YDIAGdPCihNatiXaWRte+lXwO0mTBJUQLQlar+
|
|
' | unpack
|
|
}
|
|
cpu13() {
|
|
echo '1-2-2-2 AMD Neo N36L Dual-Core Processor'
|
|
echo '
|
|
KLUv/QRolRgAtnKPJQCPWACgNvIHK2l1aPsb21+AYWrULM1pbgXRH0X4Tira///c/16KAI4A
|
|
fQCRyR+um5YG4mTgi0xasEzaa7lUV5OFyut0ci/kJxaLiMa5NE8vRpu8dSo0zmyvSx3bSlU0
|
|
TsPR/OC/8kEBKdE8kFVdn9WArD3OUPTcL3qkgDfj8Zm3OjdpJHtOMnxh94O4pK6rEt/OUJoC
|
|
yBv9IoHnEcAA62YUoPMWEwpNAQSCRK5Ltlbdth/V6iQJ0+tncaxvbQkzo5mo+W3pRSIx0zXc
|
|
S9hZpHYg3HZbSWLvGdGPeg2r+Ah25Zl+8EWsroTVxR2UZ/nz51HewyPPUo21OweiuRCQyPma
|
|
ZbyLBnIwYIBg8FwmKpY5TUpEvodzsehwOAYcjkiGg+UxyUfp9qWpk3nbrBMXgKxaOATkEfG5
|
|
Ea9UHhAbQE5I9eQbTf1Z5le+pF8xnuIKSrAd8mhGb83Yzib6WjueLr89yh652rfFL6OvHN+4
|
|
v0y/7hutV1TiicEGSdcZsTeZYfaLKyTsojrJB+GTTrlQvOEWRoyf+wSlUnF5Y+WDk/ZWCKuG
|
|
p59k/Lot36SHoDvJznVfrSw6T5RhmCBDZ6vL1QPNWowh+qo8RpsQsmoE3zRG69usmUIYCnKv
|
|
Heb95MPgc/SOsXiear3SVsoKYsQitT1a/Exj00KIxvYIIYli8C0bnfQQ52qvs5+c8U/Suwe5
|
|
u1fRRqc8pFPezTlBdCvUkjXL2Y6Z0j0e4WnjdvXR5Cx19E0n1Nde8hCyxhl+ViBABMAoqhrs
|
|
g7Hf/B/GILKuc2SwMcJQiDgBwi/gjABrg9JzmNOqR1vTDhyWM8swRNQfQlP0aR5ABZrRgKxQ
|
|
LLVBwPczF9136UFQQFcRWm8ZQoe1KIqmjbAGHt6QXhiuOxL3tMSZcblsxP24SlsticeSMQPw
|
|
nwvt4I9uNEhBXFEJoUWnhtbCEDvYBbOhnR6FO++GRBrkG7DW9Rm5AoWQy9RySiElwBmtgAoL
|
|
UzgEXRjGXoiIssGUkUUTqd0xvoBOHpTCmkWxrpQel//TQhslTAKUqRruSw==
|
|
' | unpack
|
|
}
|
|
cpu14() {
|
|
echo '1-1-1-1 Intel Xeon X5675 (mandriva.p)'
|
|
echo '
|
|
KLUv/QRonQYAwsolIjBpzABoi2gVcBKev0FN8WI7YcCuNoTmTbB1dAmqC8N6MAf9xOhcS6B+
|
|
oOLc0Qb145avJCV9NqgRCTRE5ZAsLCJ3UOm9nwP6Pbd+2qihgkUvysD6XJ2vNKuvSDiO7aw/
|
|
UJ2JJoBuk5QfQVrssW26Wen4rx+YManHlUC3TAuQBw/M+Gkv5FqfpKYfJIAxwZfHWZafaSUx
|
|
ExcgQEik8g6fj08zd4EHssVA93AJ8C7xnA3qlYxXshyLBYN1XHECyZgjRUkKjzkkLOUQtuV4
|
|
YQqnBNP0ggo=
|
|
' | unpack
|
|
}
|
|
cpu15() {
|
|
echo '1-1-1-1 Intel(R) Celeron(R) M (eee900)'
|
|
echo '
|
|
KLUv/QRohQoANpVBJCDJVgAHS35yk/0LNr7il7y4NiXZTi5J2xh8EMPkH0ICUAugATkAOAA5
|
|
AFDzg//KBxEyshyKJFqSPScHvrD7GRyq62rk2xnH6ldBJBQHNqybEUHnKZJoMR7GO7S16rb9
|
|
LK0GBJfkrAs3+uHAsJHJKw7BdVNajAx8kU1wW0JWvkpugQDkdTq5CcuZ9Cq0yVtntJzZXpc6
|
|
ttWCsJoH7dvil9FXjm/cX6Zf942XV3RiikGCtXiciQQiTWo61iLRADRNY+EhPZR8lG5P1sJD
|
|
appGnczbZqUB6zW9exVt564cI78V+thnfmKZXxkzHRPjH23s3O4WruAE2y8ztjOKvtaOp8tv
|
|
j7I/mB0gQIaMujr8eNMPYIxoDLDgY+WX46hwjTmVzU7HpqEtYHxLTLzqx8jKta+0nIvY4e1q
|
|
oiCpQLqitFXU0Fyo+a4q4SvbmVMCr0burQ==
|
|
' | unpack
|
|
}
|
|
cpu16() {
|
|
echo '2-12-24-12 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz (vh4)'
|
|
echo '
|
|
KLUv/QRovSMA6kiMDCngcIhzFH4Td8ruJqLZFq6rg/LAmM8J4PRtw8ZYAfijNgkAOE2YISXG
|
|
hNQAwgCwABJRul4TTmKBFGhoFCDgoDw4TGQkJUx0jAYGo2lUCw5oIA2QAgwz4WDSRNHtalOW
|
|
CQcNGI6G5gfeoM5oHs1iwIIotcIDQABQuOIbT5ucLI/Kc3BB144OGt0UtYECh0/ZokrEI5hM
|
|
iLA0lOXReoFJ1ikTLI1kn7pt6ZQilkazYDS792t0bxElLI7mramnoyCOK95ijivSnts9fzhY
|
|
JxyfWWdrCJa4XIsLrq/bQZjapoRrVySL43FFu2fRNAIwAG0SLlZ+wkOCxfFwHpDqEZ1TM20n
|
|
sYkgc67nHO3KwAIqK9lUniIMdZ29UDKm/BbXX7O5X456Y9cuoVwp1+tNEea1lec6ZfOZLqWp
|
|
vqcVIqJvNV866JBBtn5qgKdC0PTMpS/BI9wm+qhHTChXsEo8PehvuRYle4WJBE+losMXRDzc
|
|
ANQMBNZo7TWapC8lcu0mj0wkHjjJ9Zvgn9cOTZspBK23jPAWLv7q1T5V6tXglXbPPWtqfJME
|
|
hFEwzOLBEGAWDaMYsGCcwWhM3jiJe3AHpKESW+yNgbBUi4h3PFi7HUPD8Cb42N7F/Xpz07KV
|
|
8ZVIPrmyq7+V8U3KyFmd537Oj+6jhNDUdSQ2l9NxNcP3Zdxt/okY3bav4t9bjCt8ffaw39KZ
|
|
3yjzJ1fQKwjvlq1ztz/2R6PXnpKQfUX7ORt+lc/crkMqdmXwuvaT4Rn3lffarpD6tNAjHK3H
|
|
INJTPussVni94ohn6kLycMVz0CUUiAjKFRQYOBQIyYPEIbont2kXF39qRyf3jsNTXUtjnsOc
|
|
Bs+9j2+ur+YOp0rddmJMsvecXgkxsDOc+mYV8hvGwefNk4W2lNfDEUNvy2luqffqlG5upQ+6
|
|
g5F6BtmWxM7cfvOffdx5Pu7tYX50u867672+KDp2qOj+rL7ftCAHPuvwOZC03mzz7MFAr6h1
|
|
pRZXZ12fCl07bWlzOrKVe30oCZvqDeM4lPmLtTfH9pC1/dyu/mAq9gWhR0/jN5RZ+RWk/pY5
|
|
3D5luyhhgIsgQIQYg8joAUWIgGFyHo+2H9H0VAgUhrODQJiKFAXV8DW+RBm3SVsDCbC8Bq07
|
|
KGXGx0zhrEhoL0TC+UumTeUY9jUCrBkKh/0502187xaJLlwUWm0uUXXytESfDgGEb4NkqRnw
|
|
hh6SeWGWHUwwKJLAJgOwcJUAICETFDQ9MStQHwsQlNeVyIXBLgwRq/f1bAUN4i6zXZkAGNbF
|
|
r4UWmZ8oYXG08h4R4SqgQ6xUaE5ULo1bw9Cx8rk6OS10SMFLxNtSqZeTOx8HMOMzSrwtUXV6
|
|
BdvV5WraGwmfuVpoygqX6zRBbFeLmaObBRLPgJFBqKCMJobTUMYomLcjxSwECvUOqMBBukMM
|
|
4bbPXtAAm2D9K7ytqjEnBktqmyprOEzwz3FpK3A7w6IQoSGMJHxRorxI5ZT116mlsbsI0wBc
|
|
tYwCxsaqkbWS1O8AhakwClACiAG09g==
|
|
' | unpack
|
|
}
|
|
cpu17() {
|
|
echo '1-6-12-6 AMD Ryzen 5 4600G with Radeon Graphics (ai)'
|
|
echo '
|
|
KLUv/QRoDScASlLADSnwjGjbQLXf7SEiYhXDl17bzy9x/Sd+rgMwdzVDfBFY6exTLCwOI7dP
|
|
BeMAxADHALmu6P54Pbmv7K7puqJDzmEKqgUMAw4FJhIRkkZpEA0NtgwCGBgKPCIXDSS34Eqq
|
|
GmTa3FrzSzKFLPQteITC1jntCaMxYUBaK7KxvoaA4Wj5py6hvoeCATHwh+OidqHDuY/Dx+Cs
|
|
acKJP72VM2BggDScwJleXCauC9mVpiZhJJA85DbTp6GHBBF/LTGdwGg0FhiaV/3KVi2wCAxH
|
|
g+EmpuCquvfB0/QiXPsCwVAI9dtIQWEuXx53vkMD68XymfWl9MBogFyht1lwPAIwAE1tLbh2
|
|
CRIIGA0QBuJgeUQf1Km9T76HTGO+cXlLL1bWUynXvGH6WjKvs7nW1+x3qryXbQWfm30l4vYn
|
|
Wx19rtJYelyZGWUV8q7jatDh5Yr4l0SKKsYtxnlQPTF86T0hjQivEbLlrPhm6Zq7Ng7LHQ2m
|
|
AdKw5HE5fyi3XtbWLZKFgpZK92XuyuH7cp46ZFJb9Gkhl66xK9fYU2sUxuljmmEza/ml7pI7
|
|
vTeUhrrk3q4xbVELu1KYfOH3c4cy/7HFuWWtPwwpR+Uhj0b3qK08Utzf63Wn/FyHd7DkNY4N
|
|
wJp7CIBDrIM7DOiTmE+NB4wJC6xt48VOYGCuTIgftdTHVJpynkbtad0u6Op1MqmOnaVET9jU
|
|
ipjouRE+qfawvqcd96et1lGG0J2blxk1tdT0tIyX5gxVJdPkiq4KkxnG7WOviPjRa9TbsTc+
|
|
fDqXTxHbxprKoefS+2v39O3b0wuVTSns1sxqloMyWyNqWimW5zIGH35TUelw8S0Jn1Q5vSOz
|
|
LPIOp4vvaOxqrowNU9hZK3ozv2aPzXpqmK+NzY6pPC7lHyqRfq3BJ7sw3sIUzZtE6AKExBXU
|
|
OoeYTFyBtQW+YEWhgsJNrOUhrsDKVjXn6GXIf9psmzvD8NN9D5szxWGFB1xcy6ccaUTX1261
|
|
TOUnhledzx034k2HmFyjbVQQo7s019eaKRRMXB3kSEVi83uqm6R2e+4SEBEUEwrJ5AcqGPT0
|
|
2YNa35OyxdcM+gHK9kqSqmpaJyKqsPltV4RVWmqlj3CSON14sM+2gtYb1RFJO9Vx8N0gKLeQ
|
|
j43pT59GBr/0qm3wKVPQGRo/+4NEAgSHw0PyxwOAmCBQhAwZGbcBSJYmAyLVG/5ngAQMQSDK
|
|
NQS2pztrYwEu8wFcfeyBYD2uRC8cu9AcDJpOjLQh7rL0Fa7gA0e/PKc048NKtpjWvTy15IMc
|
|
q4uFsqler/RyxCH4EQ5D3JoKmIAzHQMGrkiUOpngtr7yKtD1Ck60jerH1Pl5YDli1yPO8eqT
|
|
dYGslS4vjnB2tgEI3t9gKaN5ajSqBQofOAWAYQioyBfyMNvbjJC3koCWTuO1A+XEl66LWhlg
|
|
zo5pwC8w9OjdaAMFpEBr8cSA+xrfFV0kAXQEhFBoqWCE5A+s4GostEFs069Tkyc460L7alvL
|
|
t0B7CQA+l6gZpkZywzEQATxYpIrZvtZvFY+NmLQ76NZvhd72aVyhHWrGgMXCoonW7dgxy4Bi
|
|
wCsuGJB+NTPEBrEagkv08IyA+ScYD9t1ilA7hp3bMj0LvwaAVXZjIVR3U0thpwhTAXBxv2tg
|
|
gAplMV0DrnilFovCKIxyldJcA2k=
|
|
' | unpack
|
|
}
|
|
cpu18() {
|
|
echo '1-4-8-4 Lenovo E540 i7-4712MQ (PROSA stud organizer)'
|
|
echo '
|
|
KLUv/QRoRSMA+kY8DCrgjmpz6GpWtLK0DL5oW2iXhXfvoPKn9A8udDwya4/7NeYGAKcJM8QO
|
|
GxzLAKcAsQDs+6hPMmJJHYLGCeAgIBLgYYmgVKIUJxHYGA4MhkNSoaDySp9Dgk3KbUvjWJpH
|
|
L4UVuWnE9bmS6U7MpWFAMq49jSoUJGA4HBon8AeVhvPwWDy0M1QuCztjgTNILOxTeLcsVhq3
|
|
DSkL2wQ3gQHKZ2RwJ5qHBaO5uX9hcwvooIlAbQwe+LruxuCSuWw6+HZm0jidejYq8niD09U4
|
|
g5HnbtAFOHgrGp95J2MQzQPyhm7QouFg4IVl8S1kPISIAs0D8kAi1SU7p17bDbMmREyXPQ2X
|
|
jPILUfG94TwP1pb8W0x+yq4Ocap1fdEliPF5Xz3qTq6H2Wfs9geEt9krsApuem7JNyivZ22S
|
|
S0b4jBRdlLGrOxnhWYzSI3eeGzpDKw/ji+bKB7OmPg21Gcb15y4XN5uHJGclk6/gndPFGf5C
|
|
8q/fmDO/scyfXEWv3nuTS8/NjuHJRW4d4miVp+JbV0l+zn6Xy19N6iPV+q73VfnJ74v7y/Ib
|
|
kGsK214bRfqODZx8ytdWdk3gGqRzoZvOcH54iAqEBg2DA3FU3mgMvKv9sfBJW/BIYzFL15nD
|
|
oKkWlwkYW2tFm2iY455PXbce9t4epM4tD51869Qra39zMc3eMvKb+4bc57QHvXmaoBBLHJ3p
|
|
w5qk3nKf6TZjm7JaF50iMsXwM2W/mSfUziDmt5ZfJ8HGDwXbIblvN2n0PEj/3BNh1J1BnWx+
|
|
QZzoFaVfSrk6r37ua/0Ekp4R0i+YYX3Fl2VxxblaBZq7mES8wbXoE4vExfKGCAgei8QkYkKB
|
|
zUXZ6AaVP7dhi/LPcwb1PLfNqdBZkkrBADIyrrk8SRzqO9v1mvLaqDNu7BPLl2qtbpIwq8xA
|
|
3xmbJRTRRXOpeApLm+fXSgvbdVCvxHtsAClACOu0+bE9CkVk7XYAz42iCXqBS5hV1lG/VCxv
|
|
4HXamITKBM+lIOUHLhEfELXDgFdS+ZUmzKVFat0ql1QmFnTDtHbTe4CLIECEkEFl9ehJVn93
|
|
hwA/7BCLC/NZLAEyUgY2GYCFqwTgijC5QVMmWPH62AyCDXK1+OpiWpsP6U0siLvMvrIVqI78
|
|
1COnggEzDpYxCkOKML7klSCO9u6RE66GTcJKlT6dDwjE4PrWMDouM98MDrDE4PDA5DeG6CaB
|
|
DYzokYTORwA8+4yYLj4VnVRJe84uTm/rnEsY+C+A04PHnWF8hWEQnbvJESu4m6sn6wT5BC+v
|
|
sDBKElGGn0xRhN3SZVgAU5GCwRcAhoObABCPBoUzeBrAgoEQA+ZNUNzFFM2M9wkFpc2oy8C/
|
|
A9QawIpBoEEQHPbjTLfxvVtKondjLtGyfTorlITmE2YMTTBvR4pZCOjkMroX+5BpthahE0bS
|
|
1xmBywKcDyryGSexILNwA7tRbNm7IJSiGy6wym6ow2+fOh7De2BiA65hfTBgShgjwlKbRSEq
|
|
jAKUQ0da4Q==
|
|
' | unpack
|
|
}
|
|
cpu20() {
|
|
echo '1-16-24-16 8*2 thr + 8*1 thr Intel Core i7-13700HX (user submit - detected wrong)'
|
|
echo '
|
|
KLUv/QRoxSAACkYADCkAb7g52NOaaG9pWWVp1EK7UMah1zodCwjsgmz4tfgH/PMzcUVV1Ypq
|
|
XsoAswCsALDiYJkWExTubWeGpVgcGJDHJOIB4lGeZGEwGAIeDEcjgwMIhuIWQu3JUsEBg1HA
|
|
wSwK7ANATDyABIBD7YhoS3eHA3Om60EskArbls+13YO6jZw2UPDw+JZTioWZLA2m9YJ6rPEl
|
|
WBpPPSpcqRGaWByNBaN52a9u2cJJWB4NllHHlRweb2CplisQPPc6N+BgzbB8Zo1rIVhc7nIL
|
|
rqx7ITwSdUUJ165IlgfkDb3OouEIwAB0vbaA7xMiEiwPSANxmB7RGLXSXkhFBAFR2+2DbxqO
|
|
ujGmc6bArOABFfhUVI4ijHSNDdtTSvnL5VmrCJ8rfSlzknddMrlK28miCHPCinONr7nisSeq
|
|
9H5BZXO8UjiZSEgevlS5hNyCH6BsR5Yqc1olIsqy+W9bxFW81Uwf4QXxNANhoW0WtTusH5a2
|
|
0ufJ94vAYEt+dq5HhTobvNLL1smojkUUDIcD4gSYNx4OjpXsg0MKEFBIpfpiICyMRQ+s9Pt5
|
|
/KJaCOnx8UpRA1dHeq0xvcE0DwgzqWd77lBm/tSkY1gYWNSYgl8HvzaCCj73ZRqbCuWxB19P
|
|
Z/C5r/coDdTYtMvmxg4V94p3KIzCBT+5M5aKK/yGzvyGMj/y9Hxq7RBH7GHqEEcnvPSaelLg
|
|
Y+x2qHy1MO8wqatq14SP3K64rwyv69qkR/BhSjIGkY7PyStX4fzEExFeTlTlNMKgfAqT60IS
|
|
8Qa2zyUTiTew3OWeuiSiodHrkh8L68JUDaRifjGsuW5UfkxlqlntLfJz5wHZuGstXFE6a0pf
|
|
91BOuQB7s+JwW/R1TmqYkZxWynS1rkmI71Qw9YYPZuNPK79UecWvVVBye25R34Da+A1mm/Pm
|
|
yMJK5XSYws9XNmuh9Ib6bU56xVsJcRNhawOdbb4DnT1HZ78c5kOq9dEIK55bjjcn31jzQMmg
|
|
uOIVhHk+SXmVkqez5qO27UbdspW62in4YHIgYERmjowe25gv0YehmrYtSaLMaue6Xrq98nOM
|
|
A9QCXR3V0KYsBqQoZoiPwlh8RKh53tWjZUWprL3ylrQqiDDDEOLRHq4zbGOme2hNMCsEsvau
|
|
NZ2Gpp8FwUqjIVkwEVPnY3oMBhKMUQovJOAE4CGPdWW2gBUTV4IWBlsYWq336+m8y25XUgDk
|
|
+1MagrMyTOBdQbB1LmQnbQg+hAOIe1MTg0YdmQGAKxJdp5XfnAXE2YPnHOLYNN5HwIAhVCzv
|
|
Ee3uHiX412tBGQsaMBQgI5jVwZ3ghBsvbgU9Itz3kHVkyyKMcCSaWmvuTPAX+ghFcAWSqC+G
|
|
KC9ROWX9fWoZ7C7CNABXLKPG2LjX44E/rCicwihACaxZnTc=
|
|
' | unpack
|
|
}
|
|
|
|
export -f $(compgen -A function | grep ^cpu)
|
|
|
|
test_one() {
|
|
eval $1 | head -n1
|
|
export PARALLEL_LSCPU="$(eval $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 | sort | parallel -j0 -k test_one
|
|
rm ~/.parallel/tmp/sshlogin/*/cpuspec 2>/dev/null
|
|
}
|
|
|
|
par_combineexec() {
|
|
combineexec() {
|
|
stderr=$(mktemp)
|
|
parallel --combineexec "$combo" "$@" 2>"$stderr"
|
|
# Redirected stderr should give no output
|
|
cat "$stderr"
|
|
rm "$stderr"
|
|
}
|
|
combo=$(mktemp)
|
|
|
|
echo '### Check that "--pipe -k" works'
|
|
combineexec -j 2 -k --pipe wc
|
|
seq 920000 | "$combo"
|
|
|
|
echo '### Check that "-k" is kept'
|
|
combineexec -k bash -c :::
|
|
"$combo" 'sleep 0.$RANDOM; echo 1' 'sleep 0.$RANDOM; echo 2' 'sleep 0.$RANDOM; echo 3'
|
|
|
|
echo '### Check that "--tagstring {1}" is kept'
|
|
combineexec --tagstring {1} -k perl -e :::
|
|
"$combo" 'print("1\n")' 'print("2\n")' 'print("3\n")'
|
|
}
|
|
|
|
par__argfile_plus() {
|
|
tmp=$(mktemp -d)
|
|
(
|
|
p() {
|
|
echo -- -a $1 $2 $3
|
|
stdout parallel -k -a $1 -a $2 -a $3 echo;
|
|
}
|
|
q() {
|
|
echo :::: $1 $2 $3
|
|
stdout parallel -k echo :::: $1 $2 $3;
|
|
}
|
|
cd "$tmp"
|
|
seq 3 > file
|
|
seq 4 6 > +file
|
|
seq 7 9 > ++file
|
|
|
|
p file +file ++file
|
|
p file +./file ++file
|
|
p file ./+file ++file
|
|
|
|
p file +file +./+file
|
|
p file +./file +./+file
|
|
p file ./+file +./+file
|
|
|
|
p file +file ./++file
|
|
p file +./file ./++file
|
|
p file ./+file ./++file
|
|
|
|
q file +file ++file
|
|
q file +./file ++file
|
|
q file ./+file ++file
|
|
|
|
q file +file +./+file
|
|
q file +./file +./+file
|
|
q file ./+file +./+file
|
|
|
|
q file +file ./++file
|
|
q file +./file ./++file
|
|
q file ./+file ./++file
|
|
|
|
seq 10 12 | p ./file ./++file -
|
|
seq 10 12 | p ./file +./+file +-
|
|
seq 10 12 | p ./file +- ./+file
|
|
)
|
|
rm -r "$tmp"
|
|
}
|
|
|
|
par__plus() {
|
|
echo '### --plus'
|
|
echo '(It is OK to start with extra / or end with extra .)'
|
|
parallel -k --plus echo {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = \
|
|
{..}.{+..} = {+/}/{/..}.{+..} = {...}.{+...} = \
|
|
{+/}/{/...}.{+...} \
|
|
::: a a.b a.b.c a.b.c.d a/1 a.b/1.2 a.b.c/1.2.3 a.b.c.d/1.2.3.4 \
|
|
a. a.b. a.b.c. a.b.c.d. a/1. a.b/1.2. a.b.c/1.2.3. a.b.c.d/1.2.3.4. \
|
|
a.. a.b.. a.b.c.. a.b.c.d.. a./1. a.b./1.2.. \
|
|
a.b.c./1.2.3.. a.b.c.d./1.2.3.4.. \
|
|
|
|
echo '### Test {%...} {%%...} {#...} {##...}'
|
|
a=z.z.z.foo
|
|
echo ${a#z*z.}
|
|
parallel --plus echo {#z.*z.} ::: z.z.z.foo
|
|
echo ${a##z*z.}
|
|
parallel --plus echo {##z.*z.} ::: z.z.z.foo
|
|
|
|
a=foo.z.z.z
|
|
echo ${a%.z.z}
|
|
parallel --plus echo {%.z.z} ::: foo.z.z.z
|
|
echo ${a%%.z*z}
|
|
parallel --plus echo {%%.z.*z} ::: foo.z.z.z
|
|
|
|
parallel -k --plus echo {uniq} ::: A B C ::: A B C ::: A B C
|
|
parallel -k --plus echo {1uniq}+{2uniq}+{3uniq} ::: A B C ::: A B C ::: A B C
|
|
parallel -k --plus echo {choose_k} ::: A B C D ::: A B C D ::: A B C D
|
|
}
|
|
|
|
par__sql_colsep() {
|
|
echo '### SQL should add Vn columns for --colsep'
|
|
dburl=sqlite3:///%2ftmp%2fparallel-sql-colsep-$$/bar
|
|
parallel -k -C' ' --sqlandworker $dburl 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'
|
|
parallel -k -C' ' -N3 --sqlandworker $dburl 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'
|
|
rm /tmp/parallel-sql-colsep-$$
|
|
}
|
|
|
|
par__I_X_m() {
|
|
echo '### Test -I with -X and -m'
|
|
|
|
seq 10 | parallel -k 'seq 1 {.} | parallel -k -I :: echo {.} ::'
|
|
seq 10 | parallel -k 'seq 1 {.} | parallel -j1 -X -k -I :: echo a{.} b::'
|
|
seq 10 | parallel -k 'seq 1 {.} | parallel -j1 -m -k -I :: echo a{.} b::'
|
|
}
|
|
|
|
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_process_slot_var() {
|
|
echo '### bug #62310: xargs compatibility: --process-slot-var=name'
|
|
seq 0.1 0.4 1.8 |
|
|
parallel -n1 -kP4 --process-slot-var=name -q bash -c 'sleep $1; echo "$name"' _
|
|
seq 0.1 0.4 1.8 |
|
|
xargs -n1 -P4 --process-slot-var=name bash -c 'sleep $1; echo "$name"' _
|
|
seq 0.1 0.4 1.8 |
|
|
parallel -kP4 --process-slot-var=name sleep {}\; echo '$name'
|
|
}
|
|
|
|
par__prefix_for_L_n_N_s() {
|
|
echo Must give xxx000 args
|
|
seq 10000 | parallel -N 1k 'echo {} | wc -w' | sort
|
|
seq 10000 | parallel -n 1k 'echo {} | wc -w' | sort
|
|
echo Must give xxx000 lines
|
|
seq 1000000 | parallel -L 1k --pipe wc -l | sort
|
|
echo Must give max 1000 chars per line
|
|
seq 10000 | parallel -mj1 -s 1k 'echo {} | wc -w' | sort
|
|
}
|
|
|
|
par_parset() {
|
|
echo '### test parset'
|
|
(
|
|
. `which env_parallel.bash`
|
|
|
|
echo 'Put output into $myarray'
|
|
parset myarray -k seq 10 ::: 14 15 16
|
|
echo "${myarray[1]}"
|
|
|
|
echo 'Put output into vars "$seq, $pwd, $ls"'
|
|
parset "seq pwd ls" -k ::: "seq 10" pwd ls
|
|
echo "$seq"
|
|
|
|
echo 'Put output into vars ($seq, $pwd, $ls)':
|
|
into_vars=(seq pwd ls)
|
|
parset "${into_vars[*]}" -k ::: "seq 5" pwd ls
|
|
echo "$seq"
|
|
|
|
echo 'The commands to run can be an array'
|
|
cmd=("echo '<<joe \"double space\" cartoon>>'" "pwd")
|
|
parset data -k ::: "${cmd[@]}"
|
|
echo "${data[0]}"
|
|
echo "${data[1]}"
|
|
|
|
echo 'You cannot pipe into parset, but must use a tempfile'
|
|
seq 10 > /tmp/parset_input_$$
|
|
parset res -k echo :::: /tmp/parset_input_$$
|
|
echo "${res[0]}"
|
|
echo "${res[9]}"
|
|
rm /tmp/parset_input_$$
|
|
|
|
echo 'or process substitution'
|
|
parset res -k echo :::: <(seq 0 10)
|
|
echo "${res[0]}"
|
|
echo "${res[9]}"
|
|
|
|
echo 'Commands with newline require -0'
|
|
parset var -k -0 ::: 'echo "line1
|
|
line2"' 'echo "command2"'
|
|
echo "${var[0]}"
|
|
) | replace_tmpdir
|
|
}
|
|
|
|
par__parset2() {
|
|
echo '### parset into array'
|
|
(
|
|
. `which env_parallel.bash`
|
|
env_parallel --session
|
|
|
|
parset arr1 echo ::: foo bar baz
|
|
echo foo bar baz
|
|
echo ${arr1[0]} ${arr1[1]} ${arr1[2]}
|
|
|
|
echo '### parset into vars with comma'
|
|
parset comma3,comma2,comma1 echo ::: baz bar foo
|
|
echo foo bar baz
|
|
echo $comma1 $comma2 $comma3
|
|
|
|
echo '### parset into vars with space'
|
|
parset 'space3 space2 space1' echo ::: baz bar foo
|
|
echo foo bar baz
|
|
echo $space1 $space2 $space3
|
|
|
|
echo '### parset with newlines'
|
|
parset 'newline3 newline2 newline1' seq ::: 3 2 1
|
|
echo 1 1 2 1 2 3
|
|
echo "$newline1"
|
|
echo "$newline2"
|
|
echo "$newline3"
|
|
|
|
echo '### parset into indexed array vars'
|
|
parset 'myarray[6],myarray[5],myarray[4]' echo ::: baz bar foo
|
|
echo foo bar baz
|
|
echo ${myarray[*]}
|
|
echo foo bar bar
|
|
echo ${myarray[4]} ${myarray[5]} ${myarray[5]}
|
|
|
|
echo '### env_parset'
|
|
alias myecho='echo myecho "$myvar" "${myarr[1]}"'
|
|
myvar="myvar"
|
|
myarr=("myarr 0" "myarr 1" "myarr 2")
|
|
mynewline="`echo newline1;echo newline2;`"
|
|
env_parset arr1 myecho ::: foo bar baz
|
|
echo "myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz"
|
|
echo "${arr1[0]} ${arr1[1]} ${arr1[2]}"
|
|
env_parset comma3,comma2,comma1 myecho ::: baz bar foo
|
|
echo "myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz"
|
|
echo "$comma1 $comma2 $comma3"
|
|
env_parset 'space3 space2 space1' myecho ::: baz bar foo
|
|
echo "myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz"
|
|
echo "$space1 $space2 $space3"
|
|
env_parset 'newline3 newline2 newline1' 'echo "$mynewline";seq' ::: 3 2 1
|
|
echo newline1 newline2 1 newline1 newline2 1 2 newline1 newline2 1 2 3
|
|
echo "$newline1"
|
|
echo "$newline2"
|
|
echo "$newline3"
|
|
env_parset 'myarray[6],myarray[5],myarray[4]' myecho ::: baz bar foo
|
|
echo "myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz"
|
|
echo "${myarray[*]}"
|
|
echo "myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 bar"
|
|
echo "${myarray[4]} ${myarray[5]} ${myarray[5]}"
|
|
|
|
echo 'bug #52507: parset arr1 -v echo ::: fails'
|
|
parset arr1 -v seq ::: 1 2 3
|
|
echo "${arr1[2]}"
|
|
) | replace_tmpdir
|
|
}
|
|
|
|
par__parset_assoc_arr() {
|
|
mytest=$(cat <<'EOF'
|
|
mytest() {
|
|
shell=`basename $SHELL`
|
|
echo 'parset into an assoc array'
|
|
. `which env_parallel.$shell`
|
|
parset "var1,var2 var3" echo ::: 'val 1' 'val 2' 'val 3'
|
|
echo "$var1 $var2 $var3"
|
|
parset array echo ::: 'val 1' 'val 2' 'val 3'
|
|
echo "${array[0]} ${array[1]} ${array[2]}"
|
|
typeset -A assoc
|
|
parset assoc echo ::: 'val 1' 'val 2' 'val 3'
|
|
echo "${assoc[val 1]} ${assoc[val 2]} ${assoc[val 3]}"
|
|
echo Bad var name
|
|
parset -badname echo ::: 'val 1' 'val 2' 'val 3'
|
|
echo Too few var names
|
|
parset v1,v2 echo ::: 'val 1' 'val 2' 'val 3'
|
|
echo "$v2"
|
|
echo Exit value
|
|
parset assoc exit ::: 1 0 0 1; echo $?
|
|
parset array exit ::: 1 0 0 1; echo $?
|
|
parset v1,v2,v3,v4 exit ::: 1 0 0 1; echo $?
|
|
echo Stderr to stderr
|
|
parset assoc ls ::: no-such-file
|
|
parset array ls ::: no-such-file
|
|
parset v1,v2 ls ::: no-such-file1 no-such-file2
|
|
}
|
|
EOF
|
|
)
|
|
parallel -k --tag --nonall -Sksh@lo,bash@lo,zsh@lo "$mytest;mytest 2>&1"
|
|
}
|
|
|
|
par_shebang() {
|
|
echo '### Test different shebangs'
|
|
gp() {
|
|
cat <<'EOF'
|
|
#!/usr/local/bin/parallel --shebang-wrap -k A={} /usr/bin/gnuplot
|
|
name=system("echo $A")
|
|
print name
|
|
EOF
|
|
true
|
|
}
|
|
oct() {
|
|
cat <<'EOF'
|
|
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/octave -qf
|
|
arg_list = argv ();
|
|
filename = arg_list{1};
|
|
printf(filename);
|
|
printf("\n");
|
|
EOF
|
|
true
|
|
}
|
|
pl() {
|
|
cat <<'EOF'
|
|
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/perl
|
|
print @ARGV,"\n";
|
|
EOF
|
|
true
|
|
}
|
|
py() {
|
|
cat <<'EOF'
|
|
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/python3
|
|
import sys
|
|
print(str(sys.argv[1]))
|
|
EOF
|
|
true
|
|
}
|
|
r() {
|
|
cat <<'EOF'
|
|
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/Rscript --vanilla --slave
|
|
options <- commandArgs(trailingOnly = TRUE)
|
|
options
|
|
EOF
|
|
true
|
|
}
|
|
rb() {
|
|
cat <<'EOF'
|
|
#!/usr/local/bin/parallel --shebang-wrap -k /usr/bin/ruby
|
|
p ARGV
|
|
EOF
|
|
true
|
|
}
|
|
sh() {
|
|
cat <<'EOF'
|
|
#!/usr/local/bin/parallel --shebang-wrap -k /bin/sh
|
|
echo "$@"
|
|
EOF
|
|
true
|
|
}
|
|
run() {
|
|
tmp=`mktemp`
|
|
"$@" > "$tmp"
|
|
chmod +x "$tmp"
|
|
"$tmp" A B C
|
|
rm "$tmp"
|
|
}
|
|
export -f run gp oct pl py r rb sh
|
|
|
|
parallel --tag -k run ::: gp oct pl py rb sh
|
|
# R fails if TMPDIR contains space
|
|
TMPDIR=/tmp
|
|
parallel --tag -k run ::: r
|
|
}
|
|
|
|
par_pipe_regexp() {
|
|
echo '### --pipe --regexp'
|
|
gen() {
|
|
cat <<EOF
|
|
A2, Start, 5
|
|
A2, 00100, 5
|
|
A2, 00200, 6
|
|
A2, 00300, 6
|
|
A2, Start, 7
|
|
A2, 00100, 7
|
|
A2, Start, 7
|
|
A2, 00200, 8
|
|
EOF
|
|
true
|
|
}
|
|
p="parallel --pipe --regexp -k"
|
|
gen | $p --recstart 'A\d+, Start' -N1 'echo Record;cat'
|
|
gen | $p --recstart '[A-Z]\d+, Start' -N1 'echo Record;cat'
|
|
gen | $p --recstart '.*, Start' -N1 'echo Record;cat'
|
|
echo '### Prepend first record with garbage'
|
|
(echo Garbage; gen) |
|
|
$p --recstart 'A\d+, Start' -N1 'echo Record;cat'
|
|
(echo Garbage; gen) |
|
|
$p --recstart '[A-Z]\d+, Start' -N1 'echo Record;cat'
|
|
(echo Garbage; gen) |
|
|
$p --recstart '.*, Start' -N1 'echo Record;cat'
|
|
}
|
|
|
|
par_pipe_regexp_non_quoted() {
|
|
echo '### --pipe --regexp non_quoted \n'
|
|
gen() {
|
|
cat <<EOF
|
|
Start
|
|
foo
|
|
End
|
|
Start
|
|
Start this line is a false Start line
|
|
End this line is a false End line
|
|
End
|
|
EOF
|
|
true
|
|
}
|
|
p="ppar --pipe --regexp -k"
|
|
p="parallel --pipe --regexp -k"
|
|
gen | $p --recend '' --recstart '^Start$' -N1 'echo :::Single record;cat'
|
|
gen | $p --recend '' --recstart 'Start\n' -N1 'echo :::Single record;cat'
|
|
gen | $p --recend '' --recstart 'Start
|
|
' -N1 'echo :::Single record;cat'
|
|
|
|
gen | $p --recend 'End$' --recstart '' -N1 'echo :::Single record;cat'
|
|
gen | $p --recend 'End\n' --recstart '' -N1 'echo :::Single record;cat'
|
|
gen | $p --recend 'End
|
|
' --recstart '' -N1 'echo :::Single record;cat'
|
|
}
|
|
|
|
par_delay_halt_soon() {
|
|
echo "bug #59893: --halt soon doesn't work with --delay"
|
|
seq 0 10 |
|
|
stdout parallel --delay 1 -uj2 --halt soon,fail=1 'sleep 0.{};echo {};exit {}'
|
|
}
|
|
|
|
par_show_limits() {
|
|
echo '### Test --show-limits'
|
|
(
|
|
(echo b; echo c; echo f) | parallel -k --show-limits echo {}ar
|
|
(echo b; echo c; echo f) | parallel -j1 -kX --show-limits -s 100 echo {}ar
|
|
echo "### BUG: empty lines with --show-limit"
|
|
echo | stdout parallel --show-limits
|
|
) | perl -pe 's/(\d+)\d\d\d/${1}xxx/'
|
|
}
|
|
|
|
par_test_delimiter() {
|
|
echo "### Test : as delimiter. This can be confusing for uptime ie. --load";
|
|
export PARALLEL="--load 300%"
|
|
parallel -k --load 300% -d : echo ::: a:b:c
|
|
}
|
|
|
|
par_10000_m_X() {
|
|
echo '### Test -m with 10000 args'
|
|
seq 10000 | perl -pe 's/$/.gif/' |
|
|
parallel -j1 -km echo a{}b{.}c{.} |
|
|
parallel -k --pipe --tee ::: wc md5sum
|
|
}
|
|
|
|
par__10000_5_rpl_X() {
|
|
echo '### Test -X with 10000 args and 5 replacement strings'
|
|
gen() {
|
|
seq 10000 | perl -pe 's/$/.gif/'
|
|
}
|
|
gen | parallel -j1 -kX echo a{}b{.}c{.}{.}{} | wc -l
|
|
gen | parallel -j1 -kX echo a{}b{.}c{.}{.} | wc -l
|
|
gen | parallel -j1 -kX echo a{}b{.}c{.} | wc -l
|
|
gen | parallel -j1 -kX echo a{}b{.}c | wc -l
|
|
gen | parallel -j1 -kX echo a{}b | wc -l
|
|
}
|
|
|
|
par_X_I_meta() {
|
|
echo '### Test -X -I with shell meta chars'
|
|
seq 10000 | parallel -j1 -I :: -X echo a::b::c:: | wc -l
|
|
seq 10000 | parallel -j1 -I '<>' -X echo 'a<>b<>c<>' | wc -l
|
|
seq 10000 | parallel -j1 -I '<' -X echo 'a<b<c<' | wc -l
|
|
seq 10000 | parallel -j1 -I '>' -X echo 'a>b>c>' | wc -l
|
|
}
|
|
|
|
par_delay() {
|
|
echo "### Test --delay"
|
|
seq 9 | /usr/bin/time -f %e parallel -j3 --delay 0.57 true {} 2>&1 |
|
|
perl -ne '$_ > 3.3 and print "More than 3.3 secs: OK\n"'
|
|
}
|
|
|
|
par_sshdelay() {
|
|
echo '### test --sshdelay'
|
|
stdout /usr/bin/time -f %e parallel -j0 --sshdelay 0.5 -S localhost true ::: 1 2 3 |
|
|
perl -ne 'print($_ > 1.30 ? "OK\n" : "Not OK\n")'
|
|
}
|
|
|
|
par_plus_slot_replacement() {
|
|
echo '### show {slot} {0%} {0#}'
|
|
parallel -k --plus 'sleep 0.{%};echo {slot}=$PARALLEL_JOBSLOT={%}' ::: A B C
|
|
doit() {
|
|
parallel -j15 -k --plus "$@" ::: {1..100} | sort -u
|
|
}
|
|
export -f doit
|
|
parallel doit ::: 'echo Seq: {0#} {#} {seq-1}*2={seq*2-2}' \
|
|
'sleep 0.{}; echo Slot: {0%} {%}={slot-1}+1'
|
|
}
|
|
|
|
par_replacement_slashslash() {
|
|
echo '### Test {//}'
|
|
parallel -k echo {//} {} ::: a a/b a/b/c
|
|
parallel -k echo {//} {} ::: /a /a/b /a/b/c
|
|
parallel -k echo {//} {} ::: ./a ./a/b ./a/b/c
|
|
parallel -k echo {//} {} ::: a.jpg a/b.jpg a/b/c.jpg
|
|
parallel -k echo {//} {} ::: /a.jpg /a/b.jpg /a/b/c.jpg
|
|
parallel -k echo {//} {} ::: ./a.jpg ./a/b.jpg ./a/b/c.jpg
|
|
|
|
echo '### Test {1//}'
|
|
parallel -k echo {1//} {} ::: a a/b a/b/c
|
|
parallel -k echo {1//} {} ::: /a /a/b /a/b/c
|
|
parallel -k echo {1//} {} ::: ./a ./a/b ./a/b/c
|
|
parallel -k echo {1//} {} ::: a.jpg a/b.jpg a/b/c.jpg
|
|
parallel -k echo {1//} {} ::: /a.jpg /a/b.jpg /a/b/c.jpg
|
|
parallel -k echo {1//} {} ::: ./a.jpg ./a/b.jpg ./a/b/c.jpg
|
|
}
|
|
|
|
par_eta() {
|
|
echo '### Test of --eta'
|
|
seq 1 10 | stdout parallel --eta "sleep 1; echo {}" | wc -l
|
|
|
|
echo '### Test of --eta with no jobs'
|
|
stdout parallel --eta "sleep 1; echo {}" < /dev/null |
|
|
perl -pe 's,1:local / \d / \d,1:local / 9 / 9,'
|
|
}
|
|
|
|
par_progress() {
|
|
echo '### Test of --progress'
|
|
seq 1 10 | stdout parallel --progress "sleep 1; echo {}" | wc -l
|
|
|
|
echo '### Test of --progress with no jobs'
|
|
stdout parallel --progress "sleep 1; echo {}" < /dev/null |
|
|
perl -pe 's,1:local / \d / \d,1:local / 9 / 9,'
|
|
}
|
|
|
|
par_tee_with_premature_close() {
|
|
echo '--tee --pipe should send all data to all commands'
|
|
echo 'even if a command closes stdin before reading everything'
|
|
echo 'tee with --output-error=warn-nopipe support'
|
|
correct="$(seq 1000000 | parallel -k --tee --pipe ::: wc head tail 'sleep 1')"
|
|
echo "$correct"
|
|
echo 'tee without --output-error=warn-nopipe support'
|
|
tmpdir=$(mktemp -d)
|
|
cat > "$tmpdir"/tee <<-EOF
|
|
#!/usr/bin/perl
|
|
|
|
if(grep /output-error=warn-nopipe/, @ARGV) {
|
|
exit(1);
|
|
}
|
|
exec "/usr/bin/tee", @ARGV;
|
|
EOF
|
|
chmod +x "$tmpdir"/tee
|
|
PATH="$tmpdir":$PATH
|
|
# This gives incomplete output due to:
|
|
# * tee not supporting --output-error=warn-nopipe
|
|
# * sleep closes stdin before EOF
|
|
# Depending on tee it may provide partial output or no output
|
|
wrong="$(seq 1000000 | parallel -k --tee --pipe ::: wc head tail 'sleep 1')"
|
|
if diff <(echo "$correct") <(echo "$wrong") >/dev/null; then
|
|
echo Wrong: They should not give the same output
|
|
else
|
|
echo OK
|
|
fi
|
|
rm "$tmpdir"/tee
|
|
rmdir "$tmpdir"
|
|
}
|
|
|
|
par_maxargs() {
|
|
echo '### Test -n and --max-args: Max number of args per line (only with -X and -m)'
|
|
|
|
(echo line 1;echo line 2;echo line 3) | parallel -k -n1 -m echo
|
|
(echo line 1;echo line 1;echo line 2) | parallel -k -n2 -m echo
|
|
(echo line 1;echo line 2;echo line 3) | parallel -k -n1 -X echo
|
|
(echo line 1;echo line 1;echo line 2) | parallel -k -n2 -X echo
|
|
(echo line 1;echo line 2;echo line 3) | parallel -k -n1 echo
|
|
(echo line 1;echo line 1;echo line 2) | parallel -k -n2 echo
|
|
(echo line 1;echo line 2;echo line 3) | parallel -k --max-args=1 -X echo
|
|
(echo line 1;echo line 2;echo line 3) | parallel -k --max-args 1 -X echo
|
|
(echo line 1;echo line 1;echo line 2) | parallel -k --max-args=2 -X echo
|
|
(echo line 1;echo line 1;echo line 2) | parallel -k --max-args 2 -X echo
|
|
(echo line 1;echo line 2;echo line 3) | parallel -k --max-args 1 echo
|
|
(echo line 1;echo line 1;echo line 2) | parallel -k --max-args 2 echo
|
|
}
|
|
|
|
par_jobslot_repl() {
|
|
echo 'bug #46232: {%} with --bar/--eta/--shuf or --halt xx% broken'
|
|
|
|
parallel -kj2 --delay 0.1 --bar 'sleep 0.2;echo {%}' ::: a b ::: c d e 2>/dev/null
|
|
parallel -kj2 --delay 0.1 --eta 'sleep 0.2;echo {%}' ::: a b ::: c d e 2>/dev/null
|
|
parallel -kj2 --delay 0.1 --shuf 'sleep 0.2;echo {%}' ::: a b ::: c d e 2>/dev/null
|
|
parallel -kj2 --delay 0.1 --halt now,fail=10% 'sleep 0.2;echo {%}' ::: a b ::: c d e
|
|
|
|
echo 'bug #46231: {%} with --pipepart broken. Should give 1+2'
|
|
|
|
seq 10000 > /tmp/num10000
|
|
parallel -k --pipepart -ka /tmp/num10000 --block 10k -j2 --delay 0.1 'sleep 0.2; echo {%}'
|
|
rm /tmp/num10000
|
|
}
|
|
|
|
par_distribute_args_at_EOF() {
|
|
echo '### Test distribute arguments at EOF to 2 jobslots'
|
|
seq 1 92 | parallel -j2 -kX -s 100 echo
|
|
|
|
echo '### Test distribute arguments at EOF to 5 jobslots'
|
|
seq 1 92 | parallel -j5 -kX -s 100 echo
|
|
|
|
echo '### Test distribute arguments at EOF to infinity jobslots'
|
|
seq 1 92 | parallel -j0 -kX -s 100 echo 2>/dev/null
|
|
|
|
echo '### Test -N is not broken by distribution - single line'
|
|
seq 9 | parallel -N 10 echo
|
|
|
|
echo '### Test -N is not broken by distribution - two lines'
|
|
seq 19 | parallel -k -N 10 echo
|
|
}
|
|
|
|
par_test_X_with_multiple_source() {
|
|
echo '### Test {} multiple times in different commands'
|
|
|
|
seq 10 | parallel -v -Xj1 echo {} \; echo {}
|
|
|
|
echo '### Test of -X {1}-{2} with multiple input sources'
|
|
|
|
parallel -j1 -kX echo {1}-{2} ::: a ::: b
|
|
parallel -j2 -kX echo {1}-{2} ::: a b ::: c d
|
|
parallel -j2 -kX echo {1}-{2} ::: a b c ::: d e f
|
|
parallel -j0 -kX echo {1}-{2} ::: a b c ::: d e f
|
|
|
|
echo '### Test of -X {}-{.} with multiple input sources'
|
|
|
|
parallel -j1 -kX echo {}-{.} ::: a ::: b
|
|
parallel -j2 -kX echo {}-{.} ::: a b ::: c d
|
|
parallel -j2 -kX echo {}-{.} ::: a b c ::: d e f
|
|
parallel -j0 -kX echo {}-{.} ::: a b c ::: d e f
|
|
}
|
|
|
|
par_slow_args_generation() {
|
|
echo '### Test slow arguments generation - https://savannah.gnu.org/bugs/?32834'
|
|
seq 1 3 | parallel -j1 "sleep 2; echo {}" | parallel -kj2 echo
|
|
}
|
|
|
|
par_kill_term() {
|
|
echo '### Are children killed if GNU Parallel receives TERM? There should be no sleep at the end'
|
|
|
|
parallel -q bash -c 'sleep 120 & pid=$!; wait $pid' ::: 1 &
|
|
T=$!
|
|
sleep 5
|
|
pstree $$
|
|
kill -TERM $T
|
|
sleep 1
|
|
pstree $$
|
|
}
|
|
|
|
par_kill_int_twice() {
|
|
echo '### Are children killed if GNU Parallel receives INT twice? There should be no sleep at the end'
|
|
|
|
parallel -q bash -c 'sleep 120 & pid=$!; wait $pid' ::: 1 &
|
|
T=$!
|
|
sleep 5
|
|
pstree $$
|
|
kill -INT $T
|
|
sleep 1
|
|
pstree $$
|
|
}
|
|
|
|
par_children_receive_sig() {
|
|
echo '### Do children receive --termseq signals'
|
|
|
|
show_signals() {
|
|
perl -e 'for(keys %SIG) { $SIG{$_} = eval "sub { print STDERR \"Got $_\\n\"; }";} while(1){sleep 1}';
|
|
}
|
|
export -f show_signals
|
|
echo | stdout parallel --termseq TERM,200,TERM,100,TERM,50,KILL,25 -u \
|
|
--timeout 1s show_signals
|
|
|
|
echo | stdout parallel --termseq INT,200,TERM,100,KILL,25 -u \
|
|
--timeout 1s show_signals
|
|
sleep 3
|
|
}
|
|
|
|
par_wrong_slot_rpl_resume() {
|
|
echo '### bug #47644: Wrong slot number replacement when resuming'
|
|
seq 0 20 |
|
|
parallel -kj 4 --delay 0.2 --joblog /tmp/parallel-bug-47558 \
|
|
'sleep 1; echo {%} {=$_==10 and exit =}'
|
|
seq 0 20 |
|
|
parallel -kj 4 --resume --delay 0.2 --joblog /tmp/parallel-bug-47558 \
|
|
'sleep 1; echo {%} {=$_==110 and exit =}'
|
|
}
|
|
|
|
par_multiline_commands() {
|
|
echo 'bug #50781: joblog format with multiline commands'
|
|
rm -f /tmp/jl.$$
|
|
parallel --jl /tmp/jl.$$ --timeout 2s 'sleep {}; echo {};
|
|
echo finish {}' ::: 1 2 4
|
|
parallel --jl /tmp/jl.$$ --timeout 5s --retry-failed 'sleep {}; echo {};
|
|
echo finish {}' ::: 1 2 4
|
|
rm -f /tmp/jl.$$
|
|
}
|
|
|
|
par_sqlworker_hostname() {
|
|
echo 'bug #50901: --sqlworker should use hostname in the joblog instead of :'
|
|
# Something like:
|
|
# :mysqlunittest mysql://tange:tange@localhost/tange
|
|
MY=:mysqlunittest
|
|
parallel --sqlmaster $MY/hostname echo ::: 1 2 3
|
|
parallel -k --sqlworker $MY/hostname
|
|
hostname=`hostname`
|
|
sql $MY 'select host from hostname;' |
|
|
perl -pe "s/$hostname/<hostname>/g"
|
|
}
|
|
|
|
par_delay_human_readable() {
|
|
# Test that you can use d h m s in --delay
|
|
parallel --delay 0.1s echo ::: a b c
|
|
parallel --delay 0.01m echo ::: a b c
|
|
}
|
|
|
|
par_exitval_signal() {
|
|
echo '### Test --joblog with exitval and Test --joblog with signal -- timing dependent'
|
|
rm -f /tmp/parallel_sleep
|
|
rm -f mysleep
|
|
cp /bin/sleep mysleep
|
|
chmod +x mysleep
|
|
parallel --joblog /tmp/parallel_joblog_signal \
|
|
'./mysleep {}' ::: 30 2>/dev/null &
|
|
parallel --joblog /tmp/parallel_joblog_exitval \
|
|
'echo foo >/tmp/parallel_sleep; ./mysleep {} && echo sleep was not killed=BAD' ::: 30 2>/dev/null &
|
|
while [ ! -e /tmp/parallel_sleep ] ; do
|
|
sleep 1
|
|
done
|
|
sleep 1
|
|
killall -6 mysleep
|
|
wait
|
|
grep -q 134 /tmp/parallel_joblog_exitval && echo exitval=128+6 OK
|
|
grep -q '[^0-9]6[^0-9]' /tmp/parallel_joblog_signal && echo signal OK
|
|
|
|
rm -f /tmp/parallel_joblog_exitval /tmp/parallel_joblog_signal
|
|
}
|
|
|
|
par_lb_mem_usage() {
|
|
long_line() {
|
|
perl -e 'print "x"x100_000_000'
|
|
}
|
|
export -f long_line
|
|
memusage() {
|
|
round=$1
|
|
shift
|
|
/usr/bin/time -v "$@" 2>&1 >/dev/null |
|
|
perl -ne '/Maximum resident set size .kbytes.: (\d+)/ and print $1,"\n"' |
|
|
perl -pe '$_ = int($_/'$round')."\n"'
|
|
}
|
|
# 1 line - RAM usage 1 x 100 MB
|
|
memusage 100000 parallel --lb ::: long_line
|
|
# 2 lines - RAM usage 1 x 100 MB
|
|
memusage 100000 parallel --lb ::: 'long_line; echo; long_line'
|
|
# 1 double length line - RAM usage 2 x 100 MB
|
|
memusage 100000 parallel --lb ::: 'long_line; long_line'
|
|
}
|
|
|
|
export -f $(compgen -A function | grep par_)
|
|
compgen -A function | G par_ "$@" | LC_ALL=C sort |
|
|
parallel --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1'
|