diff --git a/Makefile.in b/Makefile.in index 46fb62f5..07329215 100644 --- a/Makefile.in +++ b/Makefile.in @@ -157,7 +157,7 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in NEWS \ - README TODO install-sh missing + README install-sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) diff --git a/src/parallel b/src/parallel index cffab161..1160aee0 100755 --- a/src/parallel +++ b/src/parallel @@ -8695,13 +8695,13 @@ sub sct_gnu_linux($) { for($thread = 0; -r "$prefix/cpu$thread/topology/physical_package_id"; $thread++) { - $socket{slurp_or_exit( + $socket{::slurp_or_exit( "$prefix/cpu$thread/topology/physical_package_id")}++; } for($thread = 0; -r "$prefix/cpu$thread/topology/thread_siblings"; $thread++) { - $sibiling{slurp_or_exit( + $sibiling{::slurp_or_exit( "$prefix/cpu$thread/topology/thread_siblings")}++; } $cpu->{'sockets'} = keys %socket; diff --git a/testsuite/Makefile b/testsuite/Makefile index bb768a27..945368f7 100644 --- a/testsuite/Makefile +++ b/testsuite/Makefile @@ -103,26 +103,33 @@ REQUIRE=bash -c '\ prereqlocal: installparallel startvm ${REQUIRE} - parallel -j1 ssh-keygen -R parallel-server{} ::: 1 2 3 4 || true - (parallel 'ssh vagrant@parallel-server{} mkdir -p bin; scp `which parallel` vagrant@parallel-server{}:bin/' ::: 1 2 3 4)& + (parallel 'ssh -oStrictHostKeyChecking=accept-new vagrant@parallel-server{} mkdir -p bin; scp `which parallel` vagrant@parallel-server{}:bin/' ::: 1 2 3 4)& prereqremote: installparallel startvm - parallel -j0 --timeout 10 --tag ssh vagrant@parallel-server{} parallel --minversion 20121021 ::: 1 2 || (echo parallel on remote required for testsuite; /bin/true) + parallel -j0 --timeout 10 --tag ssh -oStrictHostKeyChecking=accept-new vagrant@parallel-server{} parallel --minversion 20121021 ::: 1 2 || (echo parallel on remote required for testsuite; /bin/true) ignore=bytes.of.data|ping.statistics|packets.transmitted|64.bytes.from|\ - min/avg/max/mdev|default + min/avg/max/mdev|default|known.hosts|Host.*found start=(stdout ping -w 1 -c 1 {} || \ - (cd vagrant/*/{} && vagrant up; \ - wssh vagrant@{} echo {} is up) ) | \ + (cd vagrant/*/{} 2>/dev/null && vagrant up ; \ + echo {} | grep -q centos3 && \ + (cat ../../authorized_keys | vagrant ssh -c "cat >>.ssh/authorized_keys"; \ + vagrant ssh -c "sudo /sbin/ifconfig eth1 172.27.27.3"); \ + ssh-keygen -R {}; \ + stdout wssh -oStrictHostKeyChecking=accept-new vagrant@{} echo {} is up) ) | \ grep -Ev "${ignore}" + stop=(stdout ping -w 1 -c 1 {} && \ (cd vagrant/*/{} && vagrant suspend) ) | \ grep -Ev "${ignore}" +namedservers=centos8 freebsd13 freebsd14 rhel8 centos3 +servers=parallel-server1 parallel-server2 parallel-server3 parallel-server4 ${namedservers} + startvm: - parallel -j0 --tag -k '${start}' ::: centos8 freebsd13 freebsd12 rhel8 centos3 & + parallel -j0 --tag -k '${start}' ::: ${servers} & stopvm: - parallel -j0 --tag -k '${stop}' ::: centos8 freebsd13 freebsd12 rhel8 centos3 || true + parallel -j0 --tag -k '${stop}' ::: ${namedservers} || true startdb: true TODO should start Oracle in vagrant diff --git a/testsuite/REQUIREMENTS b/testsuite/REQUIREMENTS index c5227d14..c41b1ace 100644 --- a/testsuite/REQUIREMENTS +++ b/testsuite/REQUIREMENTS @@ -15,6 +15,7 @@ install_packages() { test_pkgs="$test_pkgs mono-csharp-shell libevent-dev tcl libtext-csv-perl" test_pkgs="$test_pkgs xterm libc6-i386 libcrypt1:i386 vagrant virtualbox" test_pkgs="$test_pkgs libtest-nowarnings-perl xemacs21 pv zenity" + test_pkgs="$test_pkgs lsh-client lsh-utils torsocks net-tools" # Debian package packaging_pkgs="dpkg-dev build-essential debhelper osc cvs automake" @@ -142,17 +143,23 @@ setup_virtual_box_network() { sudo tee /etc/vbox/networks.conf } -start_vagrant_servers() { - cd testsuite/vagrant/ - ssh-add -L >> authorized_keys - parallel 'cd {//}; vagrant up' ::: testsuite/vagrant/*/*/Vagrantfile -} - add_server_to_hosts() { add_ssh_key_to_authorized() { (cat vagrant/authorized_keys; cat ~/.ssh/*.pub) | uniq > vagrant/authorized_keys.$$ mv vagrant/authorized_keys.$$ vagrant/authorized_keys + # Problem: + # https://developer.hashicorp.com/vagrant/docs/v2.4.0/vagrantfile/ssh_settings + # says: + # + # (non-interactive SSH connections use the internal SSH + # communicator which is unaffected by this setting). + # + # We need to force Ruby's Net::SSH to use ~/.ssh/config + # or -oKexAlgorithms=diffie-hellman-group1-sha1 + # + # VAGRANT_PREFER_SYSTEM_BIN=1 ought to fix it, but does not. + # Fix: # could not settle on kex algorithm @@ -181,7 +188,7 @@ add_server_to_hosts() { # skip true else - printf "$@\n" | + echo "$@" | sudo tee -a /etc/hosts fi } @@ -194,7 +201,7 @@ add_server_to_hosts() { grep 172 Vagrantfile | grep -v '#' | perl -pe 's/.*(172.27[\.0-9]+).*/$1/'; } - insert_in_etc_hosts $(vagrant_ip $1) $@ + insert_in_etc_hosts $(vagrant_ip $1) "$@" } export -f add_single_vagrant_to_etc_hosts @@ -202,40 +209,44 @@ add_server_to_hosts() { insert_in_etc_hosts 127.1.2.3 server insert_in_etc_hosts 127.0.0.2 lo - parallel add_single_vagrant_to_etc_hosts {} parallel-server{#} ::: centos8 freebsd12 freebsd13 rhel8 centos3 - #centos39-oracle817 - # TODO alias - # 172.27.27.8 centos8 parallel-server1 server1 - # 172.27.27.72 freebsd12 parallel-server3 server3 - # 172.27.27.108 rhel8 parallel-server4 server4 - # 172.27.27.73 freebsd13 parallel-server2 server2 - # TODO - # $ cat /etc/vbox/networks.conf - # * 172.27.0.0/16 - # TODO - parallel --ll --tag 'cd {};vagrant up' ::: vagrant/*/* - parallel w4it-for-port-open {} 22 ::: centos8 freebsd11 freebsd12 freebsd13 rhel8 centos3 - + parallel add_single_vagrant_to_etc_hosts {} parallel-server{#} ::: centos8 freebsd13 freebsd14 rhel8 centos3 +} + +vagrant_up() { + parallel -j0 --ll --tag 'cd {};vagrant up' ::: vagrant/*/* + # After this you should be able to 'vagrant ssh' +} + +add_key_to_auth_key() { sshaddvagrant() { + ssh-keygen -f ~/.ssh/known_hosts -R $1 cat ~/.ssh/*.pub | (cd vagrant/*/$1 && vagrant ssh -c 'cat >>.ssh/authorized_keys') sshpass -p vagrant ssh-copy-id -o StrictHostKeyChecking=accept-new vagrant@$1 ssh vagrant@$1 echo vagrant@$1 OK } export -f sshaddvagrant - parallel sshaddvagrant ::: centos8 freebsd11 freebsd12 freebsd13 rhel8 centos3 - parallel ssh -o StrictHostKeyChecking=accept-new vagrant@{} ::: parallel-server{1..4} centos3 + parallel --tag sshaddvagrant ::: centos8 freebsd13 freebsd14 rhel8 centos3 + parallel --tag ssh -o StrictHostKeyChecking=accept-new vagrant@{} ::: parallel-server{1..4} centos3 + cat ~/.ssh/*pub >> ~/.ssh/authorized_keys # TODO find ipv6 ipv6= - parallel ssh -o StrictHostKeyChecking=accept-new {} ::: lo localhost 172.27.27.1 127.0.0.1 ::1 $ipv6 + parallel --tag ssh -o StrictHostKeyChecking=accept-new {} ::: lo localhost 172.27.27.1 127.0.0.1 ::1 $ipv6 # parallel sshpass -p vagrant ssh-copy-id vagrant@{} ::: parallel-server{1..4} centos3 # ssh-copy-id vagrant@parallel-server1..4 centos3 } +install_rsync_on_vagrant() { + parallel --tag ssh vagrant@{} "' + sudo apt install rsync || sudo yum install -y rsync || sudo pkg install -y rsync; + sudo apt install perl || sudo yum install -y perl || sudo pkg install -y perl; + '" ::: parallel-server{1..4} centos3 +} + shellsplus() { shells="bash sh csh ash dash tcsh zsh ksh ksh93 fish fizsh mksh" shells="$shells posh rc sash yash nopathbash nopathcsh" - shellsplus="parallel $shells" + shellsplus=$(whoami)" parallel $shells" parallel -k echo ::: $shellsplus } @@ -282,6 +293,9 @@ create_shell_logins() { (shellsplus; echo withpassword) | parallel --lb --halt soon,fail=1 --timeout 1000% --retries 5 --tag -j1 del_add_user || (echo Creation failed: $?; false) + # Homedir must be readable by others + umask 0002 + (shellsplus; echo withpassword) | sudo parallel chmod +rX ~{} } copy_ssh_keys() { @@ -340,10 +354,11 @@ copy_ssh_keys() { # Remove env_parallel from .profile ssh nopathbash@lo 'perl -i.bak -pe s/.*env_parallel.*// .profile .bashrc' ssh nopathcsh@lo 'echo >> .cshrc setenv PATH /bin:/usr/bin' + ssh nopathcsh@lo 'echo >> .tcshrc setenv PATH /bin:/usr/bin' ssh nopathcsh@lo 'echo >> .login setenv PATH /bin:/usr/bin' - ssh nopathbash@lo 'echo $PATH; echo 1 | parallel echo' || + ssh nopathbash@lo 'echo $PATH; echo NOT OK | parallel echo' || echo Great - this should FAIL: parallel should not be found - ssh nopathcsh@lo 'echo $PATH; echo 1 | parallel echo' || + ssh nopathcsh@lo 'echo $PATH; echo NOT OK | parallel echo' || echo Great - this should FAIL: parallel should not be found ) } @@ -382,15 +397,16 @@ lsh_setup() { # # There is no longer an overlap: LSH is unsupported until there is # a common algorithm again - shellsplus | parallel --bar --timeout 5 export_key_to_local_users - shellsplus | parallel --bar --timeout 5 'lsh -l {} lo true || export_key_to_local_users {}' - shellsplus | parallel --bar --timeout 5 'lsh -l {} lo true || echo Fail {}' + (whoami; shellsplus) | parallel --bar --timeout 5 --retries 5 export_key_to_local_users + (whoami; shellsplus) | parallel --bar --timeout 5 --retries 5 'lsh -l {} lo true || export_key_to_local_users {}' + (whoami; shellsplus) | parallel --bar --timeout 5 --retries 5 'lsh -l {} lo true || echo Fail {}' } add_freebsd() { - echo "# Add public key to freebsd7.t" - ssh freebsd7.t cat .ssh/id_rsa.pub | - ssh parallel@localhost 'cat >>.ssh/authorized_keys' + echo "# Add public keys to old servers" + # freebsd7 is no longer supported as virtualbox + # ssh freebsd7 cat .ssh/id_rsa.pub | + # ssh parallel@localhost 'cat >>.ssh/authorized_keys' echo Add: echo HostkeyAlgorithms +ssh-dss @@ -420,10 +436,10 @@ tmux_versions() { cd tmux$1 git reset --hard git checkout $1 - ./autogen.sh && - ./configure && - make -j2 && - sudo cp tmux /usr/local/bin/tmux-$1 + bash ./autogen.sh; + ./configure && + make -j2 && + sudo cp tmux /usr/local/bin/tmux-$1 } export -f make_one echo '# Building tmux' @@ -507,6 +523,28 @@ misc() { # Build locale for LC_ALL=zh_HK.big5hkscs perl -e 1 sudo locale-gen zh_HK + + p=$(goodpasswd) + echo withpassword:$p | sudo chpasswd + echo "export withpassword=$p" >> ~/.passwords + + + echo TODO + echo ssh til egen IP-adresse 192.168.100.94 + echo sshd_config + echo HostKeyAlgorithms +ssh-rsa + echo PubkeyAcceptedAlgorithms +ssh-rsa + echo KexAlgorithms +diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1 + echo Ciphers +3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com + echo MaxStartups 100:30:1000 + echo + echo freepl + echo 'set $withpassword' + echo 'set $mysqlrootpassword in .passwords' + echo '/usr/local/bin/parallel-20120822' + echo 'permission of ~shell/ must be +rx' + echo '~/.sql/aliases' + echo 'python install python-is-python3' } run() { @@ -515,8 +553,9 @@ run() { install_oracle_client && setup_databases && setup_virtual_box_network && - start_vagrant_servers && add_server_to_hosts && + vagrant_up && + add_key_to_auth_key && create_shell_logins && copy_ssh_keys && lsh_setup && diff --git a/testsuite/tests-to-run/parallel-freebsd.sh b/testsuite/tests-to-run/parallel-freebsd.sh index ff1e91d3..c496b409 100644 --- a/testsuite/tests-to-run/parallel-freebsd.sh +++ b/testsuite/tests-to-run/parallel-freebsd.sh @@ -5,7 +5,7 @@ # SPDX-License-Identifier: GPL-3.0-or-later echo "### These tests requires VirtualBox running with the following images" -SERVER1=freebsd12 +SERVER1=freebsd14 SSHUSER1=vagrant SSHLOGIN1=$SSHUSER1@$SERVER1 echo $SSHUSER1@$SERVER1 diff --git a/testsuite/tests-to-run/parallel-local-10s.sh b/testsuite/tests-to-run/parallel-local-10s.sh index 455dd2bb..f608c0ae 100644 --- a/testsuite/tests-to-run/parallel-local-10s.sh +++ b/testsuite/tests-to-run/parallel-local-10s.sh @@ -620,7 +620,7 @@ par_jobs_file() { } export -f $(compgen -A function | grep par_) -compgen -A function | grep par_ | LC_ALL=C sort | +compgen -A function | G par_ "$@" | LC_ALL=C sort | parallel --timeout 1000% -j10 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' | perl -pe 's/,31,0/,15,0/' | # Replace $PWD with . even if given as ~/... diff --git a/testsuite/tests-to-run/parallel-local-1s.sh b/testsuite/tests-to-run/parallel-local-1s.sh index 9df89e80..bd35e9f3 100644 --- a/testsuite/tests-to-run/parallel-local-1s.sh +++ b/testsuite/tests-to-run/parallel-local-1s.sh @@ -84,35 +84,6 @@ par_retired() { stdout parallel -Y } -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_file_rpl() { echo '### file as replacement string' TMPDIR=/tmp/parallel-local-1s/" "/bar @@ -246,14 +217,6 @@ par_results_compress() { rm -r "$tmpdir" } -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_open_files_blocks() { echo 'bug #38439: "open files" with --files --pipe blocks after a while' ulimit -n 28 @@ -538,17 +501,6 @@ par_pxz_complains() { 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 @@ -682,608 +634,6 @@ par_too_long_line_X() { seq 3000 | parallel -Xj1 'echo {} {} {} {} {} {} {} {} {} {} {} {} {} {} | wc' } -par__test_cpu_detection_topology() { - pack() { zstd -19 | mmencode; } - unpack() { mmencode -u | zstd -d; } - PARALLEL_CPUPREFIX= - # ssh server tar cvf - /sys/devices/system/cpu | pack - - - - -} - -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' - 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 ' - KLUv/QRYfTQAqlfIDiMgC6MHf36aIdkoVm9EUO0Fii2nyR1YSqSyqftWBncCpDxDgOwA4QDk - ALuIcRGfcBrnLWv/udXNVcj41r24fphLaY07/TdZvPUX191c+nHf1/Wf68x6VGxiNmswjD84 - ZyIczWswHFe4swxMzPdIWKe/hSuJ2RzvCWswjMRsDrSGdRys8IEPTnckazDeqXybmM9g4DqV - 72C8BuMPD3QW+Adaxz34CYh5EDiwiUJpDYY/gL+OeO4dzF1IVD8wkCCtBCHEFmgNhjPySfpg - PDxwTq9/MKTZLtgAsQJ4JPU6FWyBBAPWYHh0z6Y1GIbjjIwHpzUYCQ6MrtnEfEeBBAMerI8j - amLAGgwGKlQyjysOtAaDyn9/ks4jyzAuMSp2mQtcZvlfr67+VBAQu8y3y6PQ+hrqc+vC5ZR1 - 41KXflQY6Ix81l9d5WKzlUHYCh/Y4HfKxf4CF0HxchGveuN0IsiH6fX/5wAd9zCui4tL6NsH - p6sL36j4TXju4I4y49voKA3COfsYN7tQuHWF+8W+u63Pm3JuYkX5/zJevHWx2fb/XyorfGRc - B4wDJxGdNxc+cxvqMzbUp9v4GIWJbhWmLnzK+o981pnyWUbKgzKd7vuq1MfVf+Tb6Ox8Xxm6 - y4F9MnPrlEpd+CLGXTzrOO59wm9FbPL/9f+lv2gCzIo7UcwpqcStcUsSlFiCIEhLCGOMJbbW - 4l5KKdSqu1OnlNRKE8Fh5m6JD0kVB04bpWl8l/kQEPvT6z9ARIR4Y91Z635dQ308+sE9Li51 - BDkPxyUqhQoB+xUum/w7ZRh3KLYGoz4eFcWO94Obe0At68UEEDA4uBVaW2oNxk8Y5UEux7+b - CYviVNZXEisUp/X5/D34K46TePZprU75V6rTT/ht4NxREsvBOBLxThG1mUu9OrDxT7i5Xx/+ - O2fkc2YZ+C5h2ce585TlRcW6494r76syIX22wZOOEhW/Cro4W+ez1VEXrSGsk4QlCUEWM8YU - Ymt1UyohnHQzkhJKjBlZCEGIam2h1EmiuhOCdC9ejCW00GKLceLWBdSQYoqhpFgVUIIgSDPC - GGNrLWQppRJCBVbdjVollVRKrFgxglCBWSGFFGIIFRip1pDubsaotQLq7l6cWiug7m7FrYC6 - u5uTVkDd3YlR0gqou5u5Ja2AursRI0kroGak2UJQt7YQ0pJEtQRBuhnCWFJsLU7IUgoxprqR - 1SmxJDGvhFjxQqm1Xi1JUkpa41ZdSIsRKiDEWkONVhfSYmZmZilx9+KBjqiRnAhgAOQQAAQA - AOFGICAAIkADEgBwGAYCAIKAYAymAAITpggeYgACwQNAwEIftz9McmKBf6m5EydOLu/tYGMY - IBGpV9IBE63T3JCc3AVplFs3yQM33suRBN9v6YVSg2SBf0m3Euv7I+1JMnUzI/GAhX6lTaiE - OGZMssQpNWUkDLjcNEGiiFNcsyW539bf3yGYTAsR8j0D+hgZpv/g39JPr3Jc6ocmHqeaIjHg - 8nKzDppygUSJry/JyQX+pRb20YlLSwT38Uj93jQAT2OZ4YMjbmt0o/oI/nYyauQ+bvj2zuWx - mQBhH52/ACgXgPhO5YfY5xU4AKEJIEFV0xDty/srgFsD6CYGMp6fHDK+gsADqEWAXA4hBjG+ - gL8EuFWAboboh9jnFbgAoRkgQVXTEO3L+2uAWwfoJmh+iBJXY26ZnxkTP+IDnAh9CWAOBQJ4 - fTxJZLjanDMkDrhrDsbEEXcYMYfkgHPN4JgccY4hZkgecJcZMySPuMsMiskB7xiCMcne75+5 - pFdGclZ4hEXxmQP5+l8c4H9WkJlkIInRnKmTZaakI2r2CXKLzZwTI65MIr1REifEWozm1a/+ - hdI/pI/F8DH/bHyx+eSfdPyTSYXWD/iXJv7+FN2fUsIto5u0PxVw9iey/pCeiYn6y9M9/dnS - Gw2pmzkm5y8L3PzplT8ZrBcDZ0L+qhEff60Qf9YjpUn4owUHf63v968gX+L9YLhh9sDNlXci - ub812iWRwPDeymyS+22cbIokDPesTJO836Npk0gIpHtlbunNKPvkqj5I44ZLIgGQWXfmll6N - NvYIcIIpc/K5NPJrBfkj7Si4maytfAjJm+YcYWAc+VVSROp8G14mGf99RvzHPkzk825e3oH3 - T/vHMwUoWC5HxGLJBL8rdMuvH5MVPCZwj2s2xOTH+BCLNk1zycfB1vqgdddQ4DjEbMd6oD/T - /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 - } - 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' - 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 - } - - 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_null_resume() { echo '### --null --resume --jl' log=/tmp/null-resume-$$.log @@ -1316,20 +666,6 @@ par_block_negative_prefix() { rm "$tmp" } -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-$$ -} - 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' | diff --git a/testsuite/tests-to-run/parallel-local-3s.sh b/testsuite/tests-to-run/parallel-local-3s.sh index d7b872ec..5c8a8d4c 100644 --- a/testsuite/tests-to-run/parallel-local-3s.sh +++ b/testsuite/tests-to-run/parallel-local-3s.sh @@ -8,6 +8,713 @@ # Each should be taking 3-10s and be possible to run in parallel # I.e.: No race conditions, no logins +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 + + cpu18() { + echo '1-4-8-4 Lenovo E540 i7-4712MQ' + echo ' + KLUv/QRoHAsAMk0mHWC1cQMAQXg43q4Vap89AAAg2t0lEnmtAQSEjEgBuozI2UgR9pHWQngK + UfLvBgNkXYcUWANgzlhLksiMpACVFKMlxdyBoBzuH4wVNf////+DNYGsu9jxACIOmi8qcyr2 + VfXPsWY4Y1lN8enTCG1xQJKWKMlrxfx2gQyKKgT/Qgrp3ZglPWf41zw5MfGL8iTqruZzO4/Y + +EIQQ6CBmdKUxKC0WjPxHREMiWQkoKo7/XWAkGfsKr9OCaDqVAANMEBgH9mALjUBaAMWTA3I + p9MAD/jUHrIBUfUMMDmtwGw3FJAlZAHuHzs1ecDClAH4j/ZPIPoaoyYTGycHGCDoH1PVBxQm + D6eGIDdlgH2SOdU8IE8dsCeY/wFy/2RUmKA34QDfT1btMe0/ZseAzCMr/ov9gFFnADBAHKD8 + BCjyBpgCQHO0WFkAwM5sJqtVlUD+A0wsE3rcMFDlzfe5NYAA+dSJAeQEANBjb3I0MjUxczUy + NTMxNzQyMzQ2NTEyMjUyMiSgQG8HYaHQCE8JFPQO/QF4sgGZeoiUAGw7sgGbOojUaFaBACVt + QOyrgAyQDSUAD1jaSYa6mwJgG0nAAIv1RDYgUPMBCyb+boABgr2QDSCk4hKrCHjA3J0xVPEB + LJQMyG8DDLCsD9mAZbU7oLFTSUC/JzED3IdsgMXV71ONGjTPqnwDAGAyMjI1MjIyMjIyMjIg + 6LFO/Ew0swcR/P//P9cM7w78Gy4bwIZDFgAPsgFLB1EA2sgGWPZBhGnxAHoTMgH4ywYoEh4h + AMPIBsSABFpUSAKQSDZgojwsAD7ZgFSFQABc2QB6+pEAsGUD1iXgCOd3TRQEAJgyMjIwNDAz + MDAtMDAwMDU3MDAwI+ihWvxMMIHZARH8//8/2Jygdgf8BZyNZANcJiE8ajGAw/cw5bQYYFd2 + GABR5kEIAIHZAJv3AAD8ZTYgw4MEAFjK/S+AsZINmDAhRzMQhAYQHwCjzQZMsg8IAIBsQGwI + CEAhG0A4IICAOv0hLxw0AwAoMDAwMDAb6MBS/Eya2gYQFOH//9+WaSwO+wHMPAAkAQMsFrIB + CZAkAItsAEEMkaEWD8i4HkYArrIB9PEDJLUYwEAVbDTAA4Rh2YCV9gAtyH8BqbSyAd0Y6Azw + gA+2bEAoJEiAOsB8BACINjUyNjM2NjY3NjY3NjY2NmMk6JGt8FNmptQDETgE////YjYa3QH9 + gcoG4P4FvxpggGDKBkygAsQGeMDnRzYgDGSALEQEzn8C0soGODsfSwCibACx8AAEYCobgF4Q + IgZIIRuQ+AECwMwGDMWPQQAWRzYgLx5VCoAHGK6yARzQA4K0ARitRyDa/QATcD7AAzwDAHA2 + NjYyNjY0MDQyNDQtNRv4EBTh///fpkFqHPonRNkA+KoPaNIGJHsfMdqAAKQWDwhLA1iXgAGW + h2xAPMQFIEI2gOBBMABOWTZA/zxAARhPNmBRHy0C8F+AF2zZgKdaATSA9v40/AIUBABoNDQ0 + NjQ0NDQzNDA0NCS4YB8RNAT///9zyWDmhQP9B2QDvBkg/moxgLX+ES0AA2orkw2wUAZaA4xQ + NgB3FKw0wADBKdmATgvKNsADPgrZgAxIFQDGsgHOYg9TLQZwuMcMAGk2AL1/jAAwJUMPLQC0 + sgG2fFwBOFo2wFDjYQT6d9wXvAIASDQ0MTQxMTExMRr8/AWYDVA4PDoARs0G+L1HXABe1QZA + NIq/BcADaqiZDfChekClDbioCoGWNuDYfHQE4JDdAKwEDLA8ywZIWB4pAHOyAYQB0QqAavEC + DAQASDE1NzExMTExMSW4oG8RNAzh///fi0bTwgH8BTAbkHoBYEvAAMtHNiAA0QIQlQ3oHIeN + LR5wRh9FAFKzAW1nR60s/+eyARBfwbkBlsoG5OECVAYYIDizAbhvwfcCPOBDZi0kaAAM8EHV + bEAN8sMqtRhA/jwCAVhANmACObbv/94XLAMAYDc1NzM3Nzc3Nzc3Nx7sQCc/k1nw/SFANiCB + aAFYZQNq6EcLgKc2wBlEoQEgmQ0wQXpUALBkA8IQFQCX2YAheHQBGJUNoMYf7gLwAIuosgEc + OA+MtAEXEX4g0gYcqx9v9Geq0gGsAwBgNzc3Nzc3Nzc1NTM1IOhRnvh3Zh8RNAT///9z1Wh2 + B/2bywb4oHiopQ24qPcQ0wYc2w7RRC0e8Ho+IgC6bIAzxMMFoJYNcHw/VgBeZQOCQB4sAK1s + gOzrUQFYzQbEwR2aAFzKBgBKHloAUmUDJvjRA/19vhiEAwBQNTU1NTU1NTU1NSDo0cbfhBPU + HRE0BP///1NVwQRtB/2D2YA4BEcKwHPZANz8UQGQygbwYh5AALaRDUhBWgDIsgE18MMEYFAb + 4AwoeAAYZgPQ+9EFoJQNUJg8LACDsgE29OACMFg2gJp/OFb/RAsU/QEAKDU1NTU1EOBQJ/9t + 6f21XxYPuNOdB1UA3pcNcIb6I1UAvCcbQKgGQgnA3csGBKGqByUA1C8bQP/qDygC8AUI6jiN + 2w== + ' + } + 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' + 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 ' + KLUv/QRYfTQAqlfIDiMgC6MHf36aIdkoVm9EUO0Fii2nyR1YSqSyqftWBncCpDxDgOwA4QDk + ALuIcRGfcBrnLWv/udXNVcj41r24fphLaY07/TdZvPUX191c+nHf1/Wf68x6VGxiNmswjD84 + ZyIczWswHFe4swxMzPdIWKe/hSuJ2RzvCWswjMRsDrSGdRys8IEPTnckazDeqXybmM9g4DqV + 72C8BuMPD3QW+Adaxz34CYh5EDiwiUJpDYY/gL+OeO4dzF1IVD8wkCCtBCHEFmgNhjPySfpg + PDxwTq9/MKTZLtgAsQJ4JPU6FWyBBAPWYHh0z6Y1GIbjjIwHpzUYCQ6MrtnEfEeBBAMerI8j + amLAGgwGKlQyjysOtAaDyn9/ks4jyzAuMSp2mQtcZvlfr67+VBAQu8y3y6PQ+hrqc+vC5ZR1 + 41KXflQY6Ix81l9d5WKzlUHYCh/Y4HfKxf4CF0HxchGveuN0IsiH6fX/5wAd9zCui4tL6NsH + p6sL36j4TXju4I4y49voKA3COfsYN7tQuHWF+8W+u63Pm3JuYkX5/zJevHWx2fb/XyorfGRc + B4wDJxGdNxc+cxvqMzbUp9v4GIWJbhWmLnzK+o981pnyWUbKgzKd7vuq1MfVf+Tb6Ox8Xxm6 + y4F9MnPrlEpd+CLGXTzrOO59wm9FbPL/9f+lv2gCzIo7UcwpqcStcUsSlFiCIEhLCGOMJbbW + 4l5KKdSqu1OnlNRKE8Fh5m6JD0kVB04bpWl8l/kQEPvT6z9ARIR4Y91Z635dQ308+sE9Li51 + BDkPxyUqhQoB+xUum/w7ZRh3KLYGoz4eFcWO94Obe0At68UEEDA4uBVaW2oNxk8Y5UEux7+b + CYviVNZXEisUp/X5/D34K46TePZprU75V6rTT/ht4NxREsvBOBLxThG1mUu9OrDxT7i5Xx/+ + O2fkc2YZ+C5h2ce585TlRcW6494r76syIX22wZOOEhW/Cro4W+ez1VEXrSGsk4QlCUEWM8YU + Ymt1UyohnHQzkhJKjBlZCEGIam2h1EmiuhOCdC9ejCW00GKLceLWBdSQYoqhpFgVUIIgSDPC + GGNrLWQppRJCBVbdjVollVRKrFgxglCBWSGFFGIIFRip1pDubsaotQLq7l6cWiug7m7FrYC6 + u5uTVkDd3YlR0gqou5u5Ja2AursRI0kroGak2UJQt7YQ0pJEtQRBuhnCWFJsLU7IUgoxprqR + 1SmxJDGvhFjxQqm1Xi1JUkpa41ZdSIsRKiDEWkONVhfSYmZmZilx9+KBjqiRnAhgAOQQAAQA + AOFGICAAIkADEgBwGAYCAIKAYAymAAITpggeYgACwQNAwEIftz9McmKBf6m5EydOLu/tYGMY + IBGpV9IBE63T3JCc3AVplFs3yQM33suRBN9v6YVSg2SBf0m3Euv7I+1JMnUzI/GAhX6lTaiE + OGZMssQpNWUkDLjcNEGiiFNcsyW539bf3yGYTAsR8j0D+hgZpv/g39JPr3Jc6ocmHqeaIjHg + 8nKzDppygUSJry/JyQX+pRb20YlLSwT38Uj93jQAT2OZ4YMjbmt0o/oI/nYyauQ+bvj2zuWx + mQBhH52/ACgXgPhO5YfY5xU4AKEJIEFV0xDty/srgFsD6CYGMp6fHDK+gsADqEWAXA4hBjG+ + gL8EuFWAboboh9jnFbgAoRkgQVXTEO3L+2uAWwfoJmh+iBJXY26ZnxkTP+IDnAh9CWAOBQJ4 + fTxJZLjanDMkDrhrDsbEEXcYMYfkgHPN4JgccY4hZkgecJcZMySPuMsMiskB7xiCMcne75+5 + pFdGclZ4hEXxmQP5+l8c4H9WkJlkIInRnKmTZaakI2r2CXKLzZwTI65MIr1REifEWozm1a/+ + hdI/pI/F8DH/bHyx+eSfdPyTSYXWD/iXJv7+FN2fUsIto5u0PxVw9iey/pCeiYn6y9M9/dnS + Gw2pmzkm5y8L3PzplT8ZrBcDZ0L+qhEff60Qf9YjpUn4owUHf63v968gX+L9YLhh9sDNlXci + ub812iWRwPDeymyS+22cbIokDPesTJO836Npk0gIpHtlbunNKPvkqj5I44ZLIgGQWXfmll6N + NvYIcIIpc/K5NPJrBfkj7Si4maytfAjJm+YcYWAc+VVSROp8G14mGf99RvzHPkzk825e3oH3 + T/vHMwUoWC5HxGLJBL8rdMuvH5MVPCZwj2s2xOTH+BCLNk1zycfB1vqgdddQ4DjEbMd6oD/T + /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' + 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 + } + 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' + 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' + 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 + } + + 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) @@ -78,6 +785,68 @@ par__argfile_plus() { 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 | @@ -145,27 +914,34 @@ 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' @@ -174,17 +950,23 @@ par_parset2() { 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' @@ -686,5 +1468,5 @@ par_lb_mem_usage() { } export -f $(compgen -A function | grep par_) -compgen -A function | grep par_ | LC_ALL=C sort | +compgen -A function | G par_ "$@" | LC_ALL=C sort | parallel --timeout 1000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' diff --git a/testsuite/tests-to-run/parallel-local-race01.sh b/testsuite/tests-to-run/parallel-local-race01.sh index 11e6836d..0cb1d6fa 100755 --- a/testsuite/tests-to-run/parallel-local-race01.sh +++ b/testsuite/tests-to-run/parallel-local-race01.sh @@ -171,6 +171,6 @@ par_delay_Xauto() { } export -f $(compgen -A function | grep par_) -compgen -A function | grep par_ | sort | +compgen -A function | G par_ "$@" | sort | # parallel --joblog /tmp/jl-`basename $0` -j10 --tag -k '{} 2>&1' parallel --joblog /tmp/jl-`basename $0` -j1 --tag -k '{} 2>&1' diff --git a/testsuite/tests-to-run/parallel-local-sql.sh b/testsuite/tests-to-run/parallel-local-sql.sh index eec57ea6..8629d6ed 100755 --- a/testsuite/tests-to-run/parallel-local-sql.sh +++ b/testsuite/tests-to-run/parallel-local-sql.sh @@ -1,146 +1,7 @@ #!/bin/bash -# SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. -# -# SPDX-License-Identifier: GPL-3.0-or-later - -export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db -export PG=pg://`whoami`:`whoami`@lo/`whoami` -export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami` - -export DEBUG=false - -p_showsqlresult() { - SERVERURL=$1 - TABLE=$2 - # No hostname as it can differ - sql $SERVERURL "select Command,V1,V2,Stdout,Stderr from $TABLE order by seq;" -} - -p_wrapper() { - INNER=$1 - SERVERURL=$(eval echo $2) - TABLE=TBL$RANDOM - DBURL=$SERVERURL/$TABLE - T1=$(mktemp) - T2=$(mktemp) - eval "$INNER" - echo Exit=$? - wait - echo Exit=$? - $DEBUG && sort -u "$T1" "$T2"; - rm "$T1" "$T2" - p_showsqlresult $SERVERURL $TABLE - $DEBUG || sql $SERVERURL "drop table $TABLE;" >/dev/null 2>/dev/null -} - -p_template() { - ( - # Make sure all jobs are inserted before starting a worker - sleep 10; - parallel --sqlworker $DBURL "$@" sleep .3\;echo >"$T1" - ) & - parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >"$T2"; -} - -par_sqlandworker() { - p_template -} - -par_sqlandworker_lo() { - p_template -S lo -} - -par_sqlandworker_results() { - p_template --results /tmp/out--sql -} - -par_sqlandworker_tag() { - p_template --tag -} - -par_sqlandworker_unbuffer() { - p_template -u -} - -par_sqlandworker_total_jobs() { - p_template echo {#} of '{=1 $_=total_jobs(); =};' -} - -par_append_different_cmd() { - parallel --sqlmaster "$DBURL" sleep .3\;echo ::: {1..5} ::: {a..e} >"$T2"; - parallel --sqlmaster +"$DBURL" sleep .3\;echo {2}-{1} ::: {11..15} ::: {A..E} >>"$T2"; - parallel --sqlworker "$DBURL" >"$T1" -} - -par_shuf() { - MD5=$(echo "$SERVERURL" | md5sum | perl -pe 's/(...).*/$1/') - T=/tmp/parallel-bug49791-" <$MD5" - [ -e "$T" ] && rm -rf "$T" - export PARALLEL="--shuf --result '$T'" - parallel --sqlandworker $DBURL sleep .3\;echo \ - ::: {1..5} ::: {a..e} >"$T2"; - parallel --sqlworker $DBURL >"$T2" & - parallel --sqlworker $DBURL >"$T2" & - parallel --sqlworker $DBURL >"$T2" & - parallel --sqlworker $DBURL >"$T2" & - unset PARALLEL - wait; - # Did it compute correctly? - cat "$T"/1/*/*/*/stdout - # Did it shuffle - SHUF=$(sql "$SERVERURL" "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;") - export PARALLEL="--result '$T'" - parallel --sqlandworker "$DBURL" sleep .3\;echo \ - ::: {1..5} ::: {a..e} >"$T2"; - parallel --sqlworker "$DBURL" >"$T2" & - parallel --sqlworker "$DBURL" >"$T2" & - parallel --sqlworker "$DBURL" >"$T2" & - parallel --sqlworker "$DBURL" >"$T2" & - unset PARALLEL - wait; - NOSHUF=$(sql $SERVERURL "select Host,Command,V1,V2,Stdout,Stderr from $TABLE order by seq;") - DIFFSIZE=$(diff <(echo "$SHUF") <(echo "$NOSHUF") | wc -c) - if [ $DIFFSIZE -gt 2500 ]; then - echo OK: Diff bigger than 2500 char - fi - [ -e "$T" ] && rm -rf "$T" - touch "$T1" -} - -par_sql_joblog() { - echo '### should only give a single --joblog heading' - echo '### --sqlmaster/--sqlworker' - parallel -k --joblog - --sqlmaster $DBURL --wait sleep .3\;echo ::: {1..5} ::: {a..e} | - perl -pe 's/\d+\.\d+/999.999/g' | sort -n & - sleep 0.5 - T=$(mktemp) - parallel -k --joblog - --sqlworker $DBURL > "$T" - wait - # Needed because of race condition - cat "$T"; rm "$T" - echo '### --sqlandworker' - parallel -k --joblog - --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} | - perl -pe 's/\d+\.\d+/999.999/g' | sort -n - # TODO --sqlandworker --wait -} - -par_no_table() { - echo 'bug #50018: --dburl without table dies' - parallel --sqlworker $SERVERURL - echo $? - parallel --sqlandworker $SERVERURL echo ::: no_output - echo $? - parallel --sqlmaster $SERVERURL echo ::: no_output - echo $? - # For p_wrapper to remove table - parallel --sqlandworker $DBURL true ::: dummy ::: dummy -} - -export -f $(compgen -A function | egrep 'p_|par_') -# Tested that -j0 in parallel is fastest (up to 15 jobs) -# more than 3 jobs: sqlite locks -export LC_ALL=C -compgen -A function | grep par_ | sort | - stdout parallel --timeout 2000 -vj50% -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \ - :::: - ::: \$MYSQL \$PG \$SQLITE +# # SPDX-FileCopyrightText: 2021-2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# # +# # SPDX-License-Identifier: GPL-3.0-or-later +# +# Moved to sql01.sh diff --git a/testsuite/tests-to-run/parallel-local-sql01.sh b/testsuite/tests-to-run/parallel-local-sql01.sh index 88ef362a..73dfef85 100644 --- a/testsuite/tests-to-run/parallel-local-sql01.sh +++ b/testsuite/tests-to-run/parallel-local-sql01.sh @@ -8,14 +8,28 @@ # The tests must be able to run in parallel export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db -export PG=pg://`whoami`:`whoami`@lo/`whoami` -export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami` +export PG=pg://`whoami`:`whoami`@localhost/`whoami` +export MYSQL=mysql://`whoami`:`whoami`@localhost/`whoami` export CSV=csv:///%2Frun%2Fshm +export INFLUX=influx:///parallel export DEBUG=false rm -f /run/shm/parallel.db mkdir -p /run/shm/csv +overlay_mysql() { + # MySQL is rediculously slow: Force it to work in RAM + sudo service mysql stop + mysqldir=/var/lib/mysql + upper=/dev/shm/mysql + work=/dev/shm/mysql-work + sudo umount $mysqldir 2>/dev/null + mkdir -p $upper $work + sudo mount -t overlay overlay -o lowerdir=$mysqldir,upperdir=$upper,workdir=$work $mysqldir + sudo chown mysql:mysql $mysqldir + sudo service mysql start +} + p_showsqlresult() { # print results stored in $SERVERURL/$TABLE SERVERURL=$1 @@ -46,11 +60,11 @@ p_wrapper() { } p_template() { - # Run the + # Run the jobs with both master and worker ( # Make sure there is work to be done sleep 6; - parallel --sqlworker $DBURL "$@" sleep .3\;echo >"$T1" + parallel --sqlworker $DBURL "$@" sleep .3\;echo >"$T1" ) & parallel --sqlandworker $DBURL "$@" sleep .3\;echo ::: {1..5} ::: {a..e} >"$T2"; } @@ -137,17 +151,54 @@ par_empty() { true; } -hostname=`hostname` -export -f $(compgen -A function | egrep 'p_|par_') -# Tested that -j0 in parallel is fastest (up to 15 jobs) -# -j5: SQLite complains about locked database. -compgen -A function | grep par_ | sort | - stdout parallel -vj4 -k --tag --joblog /tmp/jl-`basename $0` p_wrapper \ - :::: - ::: \$MYSQL \$PG \$SQLITE \$CSV | - perl -pe 's/tbl\d+/TBL99999/gi;' | - perl -pe 's/(from TBL99999 order) .*/$1/g' | - perl -pe 's/ *\b'"$hostname"'\b */hostname/g' | - grep -v -- --------------- | - perl -pe 's/ *\bhost\b */host/g' | - perl -pe 's/ +/ /g' +par_sql_joblog() { + echo '### should only give a single --joblog heading' + echo '### --sqlmaster/--sqlworker' + parallel -k --joblog - --sqlmaster $DBURL --wait sleep .3\;echo ::: {1..5} ::: {a..e} | + perl -pe 's/\d+\.\d+/999.999/g' | sort -n & + sleep 0.5 + T=$(mktemp) + parallel -k --joblog - --sqlworker $DBURL > "$T" + wait + # Needed because of race condition + cat "$T"; rm "$T" + echo '### --sqlandworker' + parallel -k --joblog - --sqlandworker $DBURL sleep .3\;echo ::: {1..5} ::: {a..e} | + perl -pe 's/\d+\.\d+/999.999/g' | sort -n + # TODO --sqlandworker --wait +} +par_no_table() { + echo 'bug #50018: --dburl without table dies' + parallel --sqlworker $SERVERURL + echo $? + parallel --sqlandworker $SERVERURL echo ::: no_output + echo $? + parallel --sqlmaster $SERVERURL echo ::: no_output + echo $? + # For p_wrapper to remove table + parallel --sqlandworker $DBURL true ::: dummy ::: dummy +} + +export -f $(compgen -A function | grep p_) +export -f $(compgen -A function | G par_ "$@") + +# Run the DBURLs in parallel, but only one of the same DBURL at the same time + +joblog=/tmp/jl-`basename $0` +true > $joblog + +do_dburl() { + export dbvar=$1 + hostname=`hostname` + compgen -A function | G par_ | sort | + stdout parallel -vj1 -k --tag --joblog +$joblog p_wrapper {} \$$dbvar | + perl -pe 's/tbl\d+/TBL99999/gi;' | + perl -pe 's/(from TBL99999 order) .*/$1/g' | + perl -pe 's/ *\b'"$hostname"'\b */hostname/g' | + grep -v -- --------------- | + perl -pe 's/ *\bhost\b */host/g' | + perl -pe 's/ +/ /g' +} +export -f do_dburl +parallel -vk --tag do_dburl ::: CSV INFLUX MYSQL PG SQLITE diff --git a/testsuite/tests-to-run/parallel-local-sql02.sh b/testsuite/tests-to-run/parallel-local-sql02.sh index f722f306..6038e378 100644 --- a/testsuite/tests-to-run/parallel-local-sql02.sh +++ b/testsuite/tests-to-run/parallel-local-sql02.sh @@ -8,7 +8,7 @@ # The tests must be able to run in parallel export SQLITE=sqlite3:///%2Frun%2Fshm%2Fparallel.db -export PG=pg://`whoami`:`whoami`@lo/`whoami` +export PG=pg://`whoami`:`whoami`@localhost/`whoami` export MYSQL=mysql://`whoami`:`whoami`@lo/`whoami` export CSV=csv:///%2Frun%2Fshm%2Fcsv diff --git a/testsuite/tests-to-run/parallel-local-ssh1.sh b/testsuite/tests-to-run/parallel-local-ssh1.sh index 0b60db78..50f8c213 100644 --- a/testsuite/tests-to-run/parallel-local-ssh1.sh +++ b/testsuite/tests-to-run/parallel-local-ssh1.sh @@ -223,7 +223,7 @@ par_remote_nice() { par_hgrp_agrp_comma() { echo '### bug #63722: hostgroup with , breaks parser' - stdout parallel --hgrp ::: id@csh@lo,tcsh@lo id@csh@lo,tcsh@lo | sort + stdout parallel --hgrp ::: whoami@csh@lo,tcsh@lo whoami@csh@lo,tcsh@lo | sort } par_hgrp_agrp() { diff --git a/testsuite/tests-to-run/parallel-local-ssh3.sh b/testsuite/tests-to-run/parallel-local-ssh3.sh index 45eb9125..d518016a 100644 --- a/testsuite/tests-to-run/parallel-local-ssh3.sh +++ b/testsuite/tests-to-run/parallel-local-ssh3.sh @@ -142,4 +142,4 @@ export -f $(compgen -A function | grep par_) # Tested with -j1..8 # -j6 was fastest #compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1' -compgen -A function | grep par_ | sort | parallel --delay 0.1 -j2 --tag -k '{} 2>&1' +compgen -A function | G par_ "$@" | sort | parallel --delay 0.1 -j2 --tag -k '{} 2>&1' diff --git a/testsuite/tests-to-run/parallel-local-ssh4.sh b/testsuite/tests-to-run/parallel-local-ssh4.sh index c746e921..250ffe69 100644 --- a/testsuite/tests-to-run/parallel-local-ssh4.sh +++ b/testsuite/tests-to-run/parallel-local-ssh4.sh @@ -233,6 +233,6 @@ par_z_multiple_hosts_repeat_arg() { } export -f $(compgen -A function | grep par_) -compgen -A function | grep par_ | LC_ALL=C sort | +compgen -A function | G par_ "$@" | LC_ALL=C sort | parallel --timeout 10000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' | perl -pe 's:/usr/bin:/bin:g;' diff --git a/testsuite/tests-to-run/parallel-local-ssh5.sh b/testsuite/tests-to-run/parallel-local-ssh5.sh index 0026d4b7..c0fc80c1 100644 --- a/testsuite/tests-to-run/parallel-local-ssh5.sh +++ b/testsuite/tests-to-run/parallel-local-ssh5.sh @@ -6,14 +6,12 @@ # SSH only allowed to localhost/lo - - par_ssh_cmd_with_newline() { echo '### Check --ssh with \n works' ssh=$(mktemp) cp -a /usr/bin/ssh "$ssh" qssh=$(parallel -0 --shellquote "$ssh") - parallel --ssh "$qssh" -S sh@lo ::: id + parallel --ssh "$qssh" -S sh@lo ::: whoami } par_controlmaster() { @@ -153,6 +151,6 @@ par__--shellquote_command_len() { } export -f $(compgen -A function | grep par_) -compgen -A function | grep par_ | sort | +compgen -A function | G par_ "$@" | sort | # 2019-07-14 100% slowed down 4 threads/16GB parallel -j75% --joblog /tmp/jl-`basename $0` -j3 --tag -k --delay 0.1 --retries 3 '{} 2>&1' diff --git a/testsuite/tests-to-run/parallel-local-ssh7.sh b/testsuite/tests-to-run/parallel-local-ssh7.sh index 3dfc22dd..8233cd4a 100755 --- a/testsuite/tests-to-run/parallel-local-ssh7.sh +++ b/testsuite/tests-to-run/parallel-local-ssh7.sh @@ -1650,8 +1650,8 @@ _EOF par_environment_too_big_ash() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' - len_var=63 - len_var_remote=47 + len_var=53 + len_var_remote=37 len_var_quote=31 len_var_quote_remote=21 len_fun=1 @@ -1720,7 +1720,7 @@ _EOF par_environment_too_big_bash() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' - len_overhead=-20-$( (shopt;alias;typeset -f;typeset -p) | wc -c)/1000 + len_overhead=-27-$( (shopt;alias;typeset -f;typeset -p) | wc -c)/1000 len_var=$len_overhead+56 len_var_remote=$len_overhead+40 len_var_quote=$len_overhead+41 @@ -1795,8 +1795,8 @@ par_environment_too_big_csh() { par_environment_too_big_dash() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' - len_var=63 - len_var_remote=47 + len_var=53 + len_var_remote=37 len_var_quote=31 len_var_quote_remote=21 len_fun=1 @@ -1870,8 +1870,8 @@ par_environment_too_big_fish() { par_environment_too_big_ksh() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' - len_functions=-15-$(functions|wc -c)/1000 - len_variables=-15-$(typeset -p | wc -c)/1000 + len_functions=-20-$(functions|wc -c)/1000 + len_variables=-20-$(typeset -p | wc -c)/1000 len_var=$len_variables+40 len_var_remote=$len_variables+30 len_var_quote=$len_variables+43 @@ -1949,7 +1949,7 @@ par_environment_too_big_mksh() { len_fun=28 len_fun_remote=13 len_fun_quote=28 - len_fun_quote_remote=23 + len_fun_quote_remote=18 . `which env_parallel.mksh`; @@ -2013,8 +2013,8 @@ _EOF par_environment_too_big_sh() { myscript=$(cat <<'_EOF' echo 'bug #50815: env_parallel should warn if the environment is too big' - len_var=63 - len_var_remote=47 + len_var=58 + len_var_remote=42 len_var_quote=31 len_var_quote_remote=21 len_fun=1 # unsupported @@ -3321,7 +3321,7 @@ export -f $(compgen -A function | grep par_) #compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1' #compgen -A function | grep par_ | sort | -compgen -A function | grep par_ | LC_ALL=C sort | +compgen -A function | G par_ "$@" | LC_ALL=C sort | # parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1' # 2019-07-14 200% too high for 16 GB/4 thread parallel --joblog /tmp/jl-`basename $0` -j75% --retries 2 --tag -k '{} 2>&1' | diff --git a/testsuite/tests-to-run/parallel-local-ssh8.sh b/testsuite/tests-to-run/parallel-local-ssh8.sh index 90bb90cc..e58aebcc 100644 --- a/testsuite/tests-to-run/parallel-local-ssh8.sh +++ b/testsuite/tests-to-run/parallel-local-ssh8.sh @@ -143,6 +143,6 @@ par_filter_host_noise() { export -f $(compgen -A function | grep par_) #compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1' -compgen -A function | grep par_ | LC_ALL=C sort | +compgen -A function | G par_ "$@" | LC_ALL=C sort | parallel --joblog /tmp/jl-`basename $0` --delay 0.1 -j10 --tag -k '{} 2>&1' diff --git a/testsuite/tests-to-run/parallel-local-ssh9.sh b/testsuite/tests-to-run/parallel-local-ssh9.sh index b8555c00..faa6b9fa 100644 --- a/testsuite/tests-to-run/parallel-local-ssh9.sh +++ b/testsuite/tests-to-run/parallel-local-ssh9.sh @@ -191,11 +191,12 @@ par_no_route_to_host() { # Filter the list 5 times to make sure to get good hosts export -f findhosts export -f filterhosts - nice bash -c ' + # Run this in the background + nice tmux new-session -d -s filterhosts$$-$RANDOM -c ' findhosts | filterhosts | filterhosts | filterhosts | filterhosts | filterhosts | head > /tmp/filtered.$$ mv /tmp/filtered.$$ /tmp/filtered.hosts - ' + ' & ) & ( # We just need one of each to complete @@ -228,23 +229,31 @@ par__d_filter_hosts() { printf 'OKa\0OKb\0' | parallel -k -0 --filter-hosts -S lo echo } -par_sshlogin_range() { +par__sshlogin_range() { echo '### --sshlogin with ranges' echo '### Jobs fail, but the important is the name of the hosts' doit() { stdout parallel --dr "$@" echo ::: 1 | sort } - doit -S a[000-123].nx-dom,b[2,3,5,7-11]c[1,4,6].nx-dom - doit -S{prod,dev}[000-100].nx-dom - doit -S'2[49-51].0.[9-11].1[09-11]' + cluster() { + doit -S a[00-12].nx-dom,b[2,3,5,7-11]c[1,4,6].nx-dom + } + devprod() { + doit -S{prod,dev}[000-010,098-101].nx-dom + } + ipaddr() { + doit -Sip'2[49-51].0.[9-11].1[09-11]' + } + export -f doit cluster devprod ipaddr + parallel -k ::: cluster devprod ipaddr } export -f $(compgen -A function | grep par_) #compgen -A function | grep par_ | sort | parallel --delay $D -j$P --tag -k '{} 2>&1' #compgen -A function | grep par_ | sort | -compgen -A function | grep par_ | LANG=C sort -ri | +compgen -A function | G par_ "$@" | LANG=C sort | # parallel --joblog /tmp/jl-`basename $0` --delay $D -j$P --tag -k '{} 2>&1' - parallel --joblog /tmp/jl-`basename $0` --delay 0.1 -j200% --tag -k '{} 2>&1' | + parallel --joblog /tmp/jl-`basename $0` --timeout 100 --delay 0.1 -j200% --tag -k '{} 2>&1' | perl -pe 's/line \d\d\d+:/line XXX:/' | perl -pe 's/\[\d\d\d+\]:/[XXX]:/' diff --git a/testsuite/tests-to-run/parallel-tutorial.sh b/testsuite/tests-to-run/parallel-tutorial.sh index 78a3a428..26b1d39e 100644 --- a/testsuite/tests-to-run/parallel-tutorial.sh +++ b/testsuite/tests-to-run/parallel-tutorial.sh @@ -6,12 +6,13 @@ cleanup() { find {"$TMPDIR",/var/tmp,/tmp}/{fif,tms,par[^a]}* -mmin -10 -print0 2>/dev/null | parallel -0 rm 2>/dev/null -} +} cleanup touch ~/.parallel/will-cite echo '### test parallel_tutorial' +unset DISPLAY TMPDIR=/tmp/parllel-tutorial mkdir -p "$TMPDIR" cd "$TMPDIR" @@ -119,6 +120,8 @@ perl -ne '$/="\n\n"; /^Output/../^[^O]\S/ and next; /^ / and print;' "$testsuit s:/tmp/par-job-\S+:script:g; s:par......par:tempfile:g; s:^tempfile\n::g; + #+(zenity:2012805): Gtk-WARNING **: 02:25:32.662: cannot open display: + s,.zenity.*cannot open display:,,; # --progress => 1:local / 4 / 4 s,1:local / . / .,1:local / 9 / 9,; # bash: -c: line 1: .set a="tempfile"; if( { test -d "$a" } ) echo "$a is a dir" diff --git a/testsuite/tests-to-run/sql01.sh b/testsuite/tests-to-run/sql01.sh index 2b30f1de..c243f759 100755 --- a/testsuite/tests-to-run/sql01.sh +++ b/testsuite/tests-to-run/sql01.sh @@ -132,7 +132,7 @@ par_--html() { echo } -par__listproc() { +par_listproc() { echo "### Test --show-processlist|proclist|listproc"; # Take the minimum of 3 runs to avoid error counting # if one of the other jobs happens to be running @@ -194,5 +194,5 @@ par_--help() { export -f $(compgen -A function | grep par_) -compgen -A function | grep par_ | LC_ALL=C sort | - parallel --timeout 3000% -j6 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' +compgen -A function | G par_ "$@" | LC_ALL=C sort | + parallel --timeout 10 -j0 --tag -k --joblog /tmp/jl-`basename $0` '{} 2>&1' diff --git a/testsuite/vagrant/FritsHoogland/centos3/Vagrantfile b/testsuite/vagrant/FritsHoogland/centos3/Vagrantfile index 223f7c36..d1604cd9 100644 --- a/testsuite/vagrant/FritsHoogland/centos3/Vagrantfile +++ b/testsuite/vagrant/FritsHoogland/centos3/Vagrantfile @@ -67,6 +67,10 @@ Vagrant.configure("2") do |config| # # View the documentation for the provider you are using for more # information on available options. + config.vm.boot_timeout = 100 + # SSH configuration + config.ssh.config = "/home/tange/.ssh/config" + config.ssh.dsa_authentication = true # Enable provisioning with a shell script. Additional provisioners such as # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the diff --git a/testsuite/vagrant/FritsHoogland/centos39-oracle817/Vagrantfile b/testsuite/vagrant/FritsHoogland/centos39-oracle817/Vagrantfile deleted file mode 100644 index 223f7c36..00000000 --- a/testsuite/vagrant/FritsHoogland/centos39-oracle817/Vagrantfile +++ /dev/null @@ -1,84 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -# SPDX-FileCopyrightText: 2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. -# -# SPDX-License-Identifier: GPL-3.0-or-later - -# All Vagrant configuration is done below. The "2" in Vagrant.configure -# configures the configuration version (we support older styles for -# backwards compatibility). Please don't change it unless you know what -# you're doing. -Vagrant.configure("2") do |config| - # The most common configuration options are documented and commented below. - # For a complete reference, please see the online documentation at - # https://docs.vagrantup.com. - - # Every Vagrant development environment requires a box. You can search for - # boxes at https://vagrantcloud.com/search. - config.vm.box = "FritsHoogland/centos39-oracle817" - - # Disable automatic box update checking. If you disable this, then - # boxes will only be checked for updates when the user runs - # `vagrant box outdated`. This is not recommended. - # config.vm.box_check_update = false - - # Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine. In the example below, - # accessing "localhost:8080" will access port 80 on the guest machine. - # NOTE: This will enable public access to the opened port - # config.vm.network "forwarded_port", guest: 80, host: 8080 - config.vm.network :forwarded_port, guest: 22, host: 50136, id: 'ssh' - - # Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine and only allow access - # via 127.0.0.1 to disable public access - # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" - - # Create a private network, which allows host-only access to the machine - # using a specific IP. - config.vm.network "private_network", ip: "172.27.27.3" - - # Create a public network, which generally matched to bridged network. - # Bridged networks make the machine appear as another physical device on - # your network. - # config.vm.network "public_network" - - # Share an additional folder to the guest VM. The first argument is - # the path on the host to the actual folder. The second argument is - # the path on the guest to mount the folder. And the optional third - # argument is a set of non-required options. - # config.vm.synced_folder "../data", "/vagrant_data" - - # Provider-specific configuration so you can fine-tune various - # backing providers for Vagrant. These expose provider-specific options. - # Example for VirtualBox: - # - config.vm.provider "virtualbox" do |vb| - # # Display the VirtualBox GUI when booting the machine - # vb.gui = true - # - # # Customize the amount of memory on the VM: -# vb.memory = "512" - vb.memory = "300" - vb.customize ["modifyvm", :id, "--usb", "on"] - vb.customize ["modifyvm", :id, "--usbehci", "off"] - end - # - # View the documentation for the provider you are using for more - # information on available options. - - # Enable provisioning with a shell script. Additional provisioners such as - # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the - # documentation for more information about their specific syntax and use. - config.vm.provision "shell" do |s| - ssh_pub_key = File.readlines("../../authorized_keys").first.strip - s.inline = <<-SHELL - mkdir /root/.ssh - echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys - echo #{ssh_pub_key} >> /root/.ssh/authorized_keys - sudo apt install rsync || sudo yum install -y rsync || sudo pkg install -y rsync - sudo apt install perl || sudo yum install -y perl || sudo pkg install -y perl - SHELL - end -end diff --git a/testsuite/vagrant/generic/freebsd12/Vagrantfile b/testsuite/vagrant/generic/freebsd12/Vagrantfile deleted file mode 100644 index 76c13b71..00000000 --- a/testsuite/vagrant/generic/freebsd12/Vagrantfile +++ /dev/null @@ -1,76 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -# All Vagrant configuration is done below. The "2" in Vagrant.configure -# configures the configuration version (we support older styles for -# backwards compatibility). Please don't change it unless you know what -# you're doing. -Vagrant.configure("2") do |config| - # The most common configuration options are documented and commented below. - # For a complete reference, please see the online documentation at - # https://docs.vagrantup.com. - - # Every Vagrant development environment requires a box. You can search for - # boxes at https://vagrantcloud.com/search. - config.vm.box = "generic/freebsd12" - - # Disable automatic box update checking. If you disable this, then - # boxes will only be checked for updates when the user runs - # `vagrant box outdated`. This is not recommended. - # config.vm.box_check_update = false - - # Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine. In the example below, - # accessing "localhost:8080" will access port 80 on the guest machine. - # NOTE: This will enable public access to the opened port - # config.vm.network "forwarded_port", guest: 80, host: 8080 - - # Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine and only allow access - # via 127.0.0.1 to disable public access - # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" - - # Create a private network, which allows host-only access to the machine - # using a specific IP. - config.vm.network "private_network", ip: "172.27.27.72" - - # Create a public network, which generally matched to bridged network. - # Bridged networks make the machine appear as another physical device on - # your network. - # config.vm.network "public_network" - - # Share an additional folder to the guest VM. The first argument is - # the path on the host to the actual folder. The second argument is - # the path on the guest to mount the folder. And the optional third - # argument is a set of non-required options. - # config.vm.synced_folder "../data", "/vagrant_data" - - # Provider-specific configuration so you can fine-tune various - # backing providers for Vagrant. These expose provider-specific options. - # Example for VirtualBox: - # - config.vm.provider "virtualbox" do |vb| - # # Display the VirtualBox GUI when booting the machine - # vb.gui = true - # - # # Customize the amount of memory on the VM: -# vb.memory = "512" - vb.memory = "350" - end - # - # View the documentation for the provider you are using for more - # information on available options. - - # Enable provisioning with a shell script. Additional provisioners such as - # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the - # documentation for more information about their specific syntax and use. - config.vm.provision "shell" do |s| - ssh_pub_key = File.readlines("../../authorized_keys").first.strip - s.inline = <<-SHELL - mkdir /root/.ssh - echo #{ssh_pub_key} >> /home/vagrant/.ssh/authorized_keys - echo #{ssh_pub_key} >> /root/.ssh/authorized_keys - sudo apt install rsync || sudo yum install -y rsync || sudo pkg install -y rsync - SHELL - end -end diff --git a/testsuite/vagrant/tange/centos3-gone/Vagrantfile b/testsuite/vagrant/generic/freebsd14/Vagrantfile similarity index 89% rename from testsuite/vagrant/tange/centos3-gone/Vagrantfile rename to testsuite/vagrant/generic/freebsd14/Vagrantfile index 385ac664..ec87cd2c 100644 --- a/testsuite/vagrant/tange/centos3-gone/Vagrantfile +++ b/testsuite/vagrant/generic/freebsd14/Vagrantfile @@ -1,7 +1,7 @@ # -*- mode: ruby -*- # vi: set ft=ruby : -# SPDX-FileCopyrightText: 2022 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. +# SPDX-FileCopyrightText: 2023 Ole Tange, http://ole.tange.dk and Free Software and Foundation, Inc. # # SPDX-License-Identifier: GPL-3.0-or-later @@ -16,7 +16,7 @@ Vagrant.configure("2") do |config| # Every Vagrant development environment requires a box. You can search for # boxes at https://vagrantcloud.com/search. - config.vm.box = "tange/centos3" + config.vm.box = "generic/freebsd14" # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs @@ -27,9 +27,7 @@ Vagrant.configure("2") do |config| # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. # NOTE: This will enable public access to the opened port - config.vm.network :forwarded_port, guest: 22, host: 50036, id: 'ssh' - - config.vm.boot_timeout = 600 + # config.vm.network "forwarded_port", guest: 80, host: 8080 # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine and only allow access @@ -38,7 +36,7 @@ Vagrant.configure("2") do |config| # Create a private network, which allows host-only access to the machine # using a specific IP. - config.vm.network "private_network", ip: "172.27.27.3" + config.vm.network "private_network", ip: "172.27.27.74" # Create a public network, which generally matched to bridged network. # Bridged networks make the machine appear as another physical device on @@ -60,14 +58,15 @@ Vagrant.configure("2") do |config| # vb.gui = true # # # Customize the amount of memory on the VM: - vb.memory = "256" + vb.memory = "512" +# vb.memory = "300" end # # View the documentation for the provider you are using for more # information on available options. # Enable provisioning with a shell script. Additional provisioners such as - # Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the + # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the # documentation for more information about their specific syntax and use. config.vm.provision "shell" do |s| ssh_pub_key = File.readlines("../../authorized_keys").first.strip diff --git a/testsuite/wanted-results/parallel-freebsd b/testsuite/wanted-results/parallel-freebsd index cdf8bfc6..93a4436a 100644 --- a/testsuite/wanted-results/parallel-freebsd +++ b/testsuite/wanted-results/parallel-freebsd @@ -1,5 +1,5 @@ ### These tests requires VirtualBox running with the following images -vagrant@freebsd12 +vagrant@freebsd14 par_compress_pipe par_compress_pipe 2>&1 par_compress_pipe Test --compress --pipe par_compress_pipe 1000 1000 3893 diff --git a/testsuite/wanted-results/parallel-local-0.3s b/testsuite/wanted-results/parallel-local-0.3s index d3011314..f7e894c0 100644 --- a/testsuite/wanted-results/parallel-local-0.3s +++ b/testsuite/wanted-results/parallel-local-0.3s @@ -64,34 +64,34 @@ par_bug43654 par_bug43654 100% 1:0=0s 1 par_colour_failed --colour-failed --colour par_colour_failed seq 1;exit 0 par_colour_failed 1 -par_colour_failed seq 1;exit 1(B -par_colour_failed 1(B -par_colour_failed seq 1;exit 2(B -par_colour_failed 1(B +par_colour_failed seq 1;exit 1 +par_colour_failed 1 +par_colour_failed seq 1;exit 2 +par_colour_failed 1 par_colour_failed seq 2;exit 0 par_colour_failed 1 par_colour_failed 2 -par_colour_failed seq 2;exit 1(B -par_colour_failed 1(B -par_colour_failed 2(B -par_colour_failed seq 2;exit 2(B -par_colour_failed 1(B -par_colour_failed 2(B -par_colour_failed seq 1;exit 0(B -par_colour_failed 1(B -par_colour_failed seq 1;exit 1(B -par_colour_failed 1(B -par_colour_failed seq 1;exit 2(B -par_colour_failed 1(B -par_colour_failed seq 2;exit 0(B -par_colour_failed 1(B -par_colour_failed 2(B -par_colour_failed seq 2;exit 1(B -par_colour_failed 1(B -par_colour_failed 2(B -par_colour_failed seq 2;exit 2(B -par_colour_failed 1(B -par_colour_failed 2(B +par_colour_failed seq 2;exit 1 +par_colour_failed 1 +par_colour_failed 2 +par_colour_failed seq 2;exit 2 +par_colour_failed 1 +par_colour_failed 2 +par_colour_failed seq 1;exit 0 +par_colour_failed 1 +par_colour_failed seq 1;exit 1 +par_colour_failed 1 +par_colour_failed seq 1;exit 2 +par_colour_failed 1 +par_colour_failed seq 2;exit 0 +par_colour_failed 1 +par_colour_failed 2 +par_colour_failed seq 2;exit 1 +par_colour_failed 1 +par_colour_failed 2 +par_colour_failed seq 2;exit 2 +par_colour_failed 1 +par_colour_failed 2 par_colsep_0 bug --colsep 0 par_colsep_0 OK par_colsep_0 OK @@ -145,9 +145,9 @@ par_csv_pipe 9000" par_csv_pipe 11000" par_ctagstring ### --ctag --ctagstring should be different from --tag --tagstring par_ctagstring 8 -par_ctagstring 37 +par_ctagstring 35 par_ctagstring 10 -par_ctagstring 39 +par_ctagstring 37 par_delimiter ### Test --delimiter and -d: Delimiter instead of newline par_delimiter # Yes there is supposed to be an extra newline for -d N par_delimiter This is line 1 @@ -332,8 +332,8 @@ par_link_files_as_only_arg 1 1 1 par_link_files_as_only_arg 2 2 2 par_link_files_as_only_arg 3 3 3 par_ll_long_followed_by_short par_ll_long_followed_by_short A very long line -par_ll_long_followed_by_short  par_ll_long_followed_by_short A very long line -par_ll_long_followed_by_short  par_ll_long_followed_by_short OK +par_ll_long_followed_by_short M par_ll_long_followed_by_short A very long line +par_ll_long_followed_by_short M par_ll_long_followed_by_short OK par_ll_no_newline bug #64030: parallel --ll echo -n ::: foo par_ll_no_newline par_ll_no_newline lines par_ll_no_newline par_ll_no_newline two diff --git a/testsuite/wanted-results/parallel-local-10s b/testsuite/wanted-results/parallel-local-10s index 6e9f8ba4..b48e6566 100644 --- a/testsuite/wanted-results/parallel-local-10s +++ b/testsuite/wanted-results/parallel-local-10s @@ -542,36 +542,66 @@ par_line_buffer ### --line-buffer par_line_buffer 55 55 120 par_line_buffer These must diff: 1 par_ll_color_long_line ### --latest-line --color with lines longer than terminal width -par_ll_color_long_line par_ll_color_long_line 01x 0100000 1 2 3 4 5 6 7>(B -par_ll_color_long_line par_ll_color_long_line 02xx 0200000 1 2 3 4 5 6 7>(B -par_ll_color_long_line par_ll_color_long_line 03xxx 0300000 1 2 3 4 5 6 7>(B -par_ll_color_long_line par_ll_color_long_line 04xxxx 0400000 1 2 3 4 5 6 7>(B -par_ll_color_long_line par_ll_color_long_line 05xxxxx 0500000 1 2 3 4 5 6 7>(B -par_ll_color_long_line par_ll_color_long_line 06xxxxxx 0600000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 07xxxxxxx 0700000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 08xxxxxxxx 0800000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 09xxxxxxxxx 0900000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 10xxxxxxxxxx 1000000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 11xxxxxxxxxxx 1100000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 12xxxxxxxxxxxx 1200000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 13xxxxxxxxxxxxx 1300000 1 2 3>(B -par_ll_color_long_line par_ll_color_long_line 14xxxxxxxxxxxxxx 14000>(B -par_ll_color_long_line par_ll_color_long_line 15xxxxxxxxxxxxxxx 15000>(B -par_ll_color_long_line par_ll_color_long_line 16xxxxxxxxxxxxxxxx 16000>(B -par_ll_color_long_line par_ll_color_long_line 17xxxxxxxxxxxxxxxxx 17000>(B -par_ll_color_long_line par_ll_color_long_line 18xxxxxxxxxxxxxxxxxx 18000>(B -par_ll_color_long_line par_ll_color_long_line 19xxxxxxxxxxxxxxxxxxx 19000>(B -par_ll_color_long_line par_ll_color_long_line 20xxxxxxxxxxxxxxxxxxxx 20000>(B -par_ll_color_long_line par_ll_color_long_line 21xxxxxxxxxxxxxxxxxxxxx 21000>(B -par_ll_color_long_line par_ll_color_long_line 22xxxxxxxxxxxxxxxxxxxxxx >(B -par_ll_color_long_line par_ll_color_long_line 23xxxxxxxxxxxxxxxxxxxxxxx >(B -par_ll_color_long_line par_ll_color_long_line 24xxxxxxxxxxxxxxxxxxxxxxxx >(B -par_ll_color_long_line par_ll_color_long_line 25xxxxxxxxxxxxxxxxxxxxxxxxx >(B -par_ll_color_long_line par_ll_color_long_line 26xxxxxxxxxxxxxxxxxxxxxxxxxx >(B -par_ll_color_long_line par_ll_color_long_line 27xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B -par_ll_color_long_line par_ll_color_long_line 28xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B -par_ll_color_long_line par_ll_color_long_line 29xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B -par_ll_color_long_line par_ll_color_long_line 30xxxxxxxxxxxxxxxxxxxxxxxxxxx>(B +par_ll_color_long_line par_ll_color_long_line 01x 0100000 1 2 3 4 5 6 7> +par_ll_color_long_line par_ll_color_long_line 02xx 0200000 1 2 3 4 5 6 7> +par_ll_color_long_line par_ll_color_long_line 03xxx 0300000 1 2 3 4 5 6 7> +par_ll_color_long_line par_ll_color_long_line 04xxxx 0400000 1 2 3 4 5 6 7> +par_ll_color_long_line par_ll_color_long_line 05xxxxx 0500000 1 2 3 4 5 6 7> +par_ll_color_long_line par_ll_color_long_line 06xxxxxx 0600000 1 2 3> +par_ll_color_long_line par_ll_color_long_line 07xxxxxxx 0700000 1 2 3> +par_ll_color_long_line par_ll_color_long_line 08xxxxxxxx 0800000 1 2 3> +par_ll_color_long_line par_ll_color_long_line 09xxxxxxxxx 0900000 1 2 3> +par_ll_color_long_line par_ll_color_long_line 10xxxxxxxxxx 1000000 1 2 3> +par_ll_color_long_line par_ll_color_long_line 11xxxxxxxxxxx 1100000 1 2 3> +par_ll_color_long_line par_ll_color_long_line 12xxxxxxxxxxxx 1200000 1 2 3> +par_ll_color_long_line par_ll_color_long_line 13xxxxxxxxxxxxx 1300000 1 2 3> +par_ll_color_long_line par_ll_color_long_line 14xxxxxxxxxxxxxx 14000> +par_ll_color_long_line par_ll_color_long_line 15xxxxxxxxxxxxxxx 15000> +par_ll_color_long_line par_ll_color_long_line 16xxxxxxxxxxxxxxxx 16000> +par_ll_color_long_line par_ll_color_long_line 17xxxxxxxxxxxxxxxxx 17000> +par_ll_color_long_line par_ll_color_long_line 18xxxxxxxxxxxxxxxxxx 18000> +par_ll_color_long_line par_ll_color_long_line 19xxxxxxxxxxxxxxxxxxx 19000> +par_ll_color_long_line par_ll_color_long_line 20xxxxxxxxxxxxxxxxxxxx 20000> +par_ll_color_long_line par_ll_color_long_line 21xxxxxxxxxxxxxxxxxxxxx 21000> +par_ll_color_long_line par_ll_color_long_line 22xxxxxxxxxxxxxxxxxxxxxx > +par_ll_color_long_line par_ll_color_long_line 23xxxxxxxxxxxxxxxxxxxxxxx > +par_ll_color_long_line par_ll_color_long_line 24xxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_color_long_line par_ll_color_long_line 25xxxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_color_long_line par_ll_color_long_line 26xxxxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_color_long_line par_ll_color_long_line 27xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_color_long_line par_ll_color_long_line 28xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_color_long_line par_ll_color_long_line 29xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_color_long_line par_ll_color_long_line 30xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_color_long_line M par_ll_color_long_line 01x 0100000 1 2 3 4 5 6 7> +par_ll_color_long_line M par_ll_color_long_line 02xx 0200000 1 2 3 4 5 6 7> +par_ll_color_long_line M par_ll_color_long_line 03xxx 0300000 1 2 3 4 5 6 7> +par_ll_color_long_line M par_ll_color_long_line 04xxxx 0400000 1 2 3 4 5 6 7> +par_ll_color_long_line M par_ll_color_long_line 05xxxxx 0500000 1 2 3 4 5 6 7> +par_ll_color_long_line M par_ll_color_long_line 06xxxxxx 0600000 1 2 3> +par_ll_color_long_line M par_ll_color_long_line 07xxxxxxx 0700000 1 2 3> +par_ll_color_long_line M par_ll_color_long_line 08xxxxxxxx 0800000 1 2 3> +par_ll_color_long_line M par_ll_color_long_line 09xxxxxxxxx 0900000 1 2 3> +par_ll_color_long_line M par_ll_color_long_line 10xxxxxxxxxx 1000000 1 2 3> +par_ll_color_long_line M par_ll_color_long_line 11xxxxxxxxxxx 1100000 1 2 3> +par_ll_color_long_line M par_ll_color_long_line 12xxxxxxxxxxxx 1200000 1 2 3> +par_ll_color_long_line M par_ll_color_long_line 13xxxxxxxxxxxxx 1300000 1 2 3> +par_ll_color_long_line M par_ll_color_long_line 14xxxxxxxxxxxxxx 14000> +par_ll_color_long_line M par_ll_color_long_line 15xxxxxxxxxxxxxxx 15000> +par_ll_color_long_line M par_ll_color_long_line 16xxxxxxxxxxxxxxxx 16000> +par_ll_color_long_line M par_ll_color_long_line 17xxxxxxxxxxxxxxxxx 17000> +par_ll_color_long_line M par_ll_color_long_line 18xxxxxxxxxxxxxxxxxx 18000> +par_ll_color_long_line M par_ll_color_long_line 19xxxxxxxxxxxxxxxxxxx 19000> +par_ll_color_long_line M par_ll_color_long_line 20xxxxxxxxxxxxxxxxxxxx 20000> +par_ll_color_long_line M par_ll_color_long_line 21xxxxxxxxxxxxxxxxxxxxx 21000> +par_ll_color_long_line M par_ll_color_long_line 22xxxxxxxxxxxxxxxxxxxxxx > +par_ll_color_long_line M par_ll_color_long_line 23xxxxxxxxxxxxxxxxxxxxxxx > +par_ll_color_long_line M par_ll_color_long_line 24xxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_color_long_line M par_ll_color_long_line 25xxxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_color_long_line M par_ll_color_long_line 26xxxxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_color_long_line M par_ll_color_long_line 27xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_color_long_line M par_ll_color_long_line 28xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_color_long_line M par_ll_color_long_line 29xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_color_long_line M par_ll_color_long_line 30xxxxxxxxxxxxxxxxxxxxxxxxxxx> par_ll_long_line ### --latest-line with lines longer than terminal width par_ll_long_line par_ll_long_line 01x 0100000 1 2 3 4 5 6 7> par_ll_long_line par_ll_long_line 02xx 0200000 1 2 3 4 5 6 7> @@ -603,6 +633,36 @@ par_ll_long_line par_ll_long_line 27xxxxxxxxxxxxxxxxxxxxxxxxxxx> par_ll_long_line par_ll_long_line 28xxxxxxxxxxxxxxxxxxxxxxxxxxx> par_ll_long_line par_ll_long_line 29xxxxxxxxxxxxxxxxxxxxxxxxxxx> par_ll_long_line par_ll_long_line 30xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_long_line M par_ll_long_line 01x 0100000 1 2 3 4 5 6 7> +par_ll_long_line M par_ll_long_line 02xx 0200000 1 2 3 4 5 6 7> +par_ll_long_line M par_ll_long_line 03xxx 0300000 1 2 3 4 5 6 7> +par_ll_long_line M par_ll_long_line 04xxxx 0400000 1 2 3 4 5 6 7> +par_ll_long_line M par_ll_long_line 05xxxxx 0500000 1 2 3 4 5 6 7> +par_ll_long_line M par_ll_long_line 06xxxxxx 0600000 1 2 3> +par_ll_long_line M par_ll_long_line 07xxxxxxx 0700000 1 2 3> +par_ll_long_line M par_ll_long_line 08xxxxxxxx 0800000 1 2 3> +par_ll_long_line M par_ll_long_line 09xxxxxxxxx 0900000 1 2 3> +par_ll_long_line M par_ll_long_line 10xxxxxxxxxx 1000000 1 2 3> +par_ll_long_line M par_ll_long_line 11xxxxxxxxxxx 1100000 1 2 3> +par_ll_long_line M par_ll_long_line 12xxxxxxxxxxxx 1200000 1 2 3> +par_ll_long_line M par_ll_long_line 13xxxxxxxxxxxxx 1300000 1 2 3> +par_ll_long_line M par_ll_long_line 14xxxxxxxxxxxxxx 14000> +par_ll_long_line M par_ll_long_line 15xxxxxxxxxxxxxxx 15000> +par_ll_long_line M par_ll_long_line 16xxxxxxxxxxxxxxxx 16000> +par_ll_long_line M par_ll_long_line 17xxxxxxxxxxxxxxxxx 17000> +par_ll_long_line M par_ll_long_line 18xxxxxxxxxxxxxxxxxx 18000> +par_ll_long_line M par_ll_long_line 19xxxxxxxxxxxxxxxxxxx 19000> +par_ll_long_line M par_ll_long_line 20xxxxxxxxxxxxxxxxxxxx 20000> +par_ll_long_line M par_ll_long_line 21xxxxxxxxxxxxxxxxxxxxx 21000> +par_ll_long_line M par_ll_long_line 22xxxxxxxxxxxxxxxxxxxxxx > +par_ll_long_line M par_ll_long_line 23xxxxxxxxxxxxxxxxxxxxxxx > +par_ll_long_line M par_ll_long_line 24xxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_long_line M par_ll_long_line 25xxxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_long_line M par_ll_long_line 26xxxxxxxxxxxxxxxxxxxxxxxxxx > +par_ll_long_line M par_ll_long_line 27xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_long_line M par_ll_long_line 28xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_long_line M par_ll_long_line 29xxxxxxxxxxxxxxxxxxxxxxxxxxx> +par_ll_long_line M par_ll_long_line 30xxxxxxxxxxxxxxxxxxxxxxxxxxx> par_load_blocks ### Test if --load blocks. Bug. par_load_blocks 53d025127ae99ab79e8502aae2d9bea6 - par_load_blocks 53d025127ae99ab79e8502aae2d9bea6 - diff --git a/testsuite/wanted-results/parallel-local-1s b/testsuite/wanted-results/parallel-local-1s index c5e1dcf3..26828e23 100644 --- a/testsuite/wanted-results/parallel-local-1s +++ b/testsuite/wanted-results/parallel-local-1s @@ -1,79 +1,3 @@ -par__I_X_m ### Test -I with -X and -m -par__I_X_m 1 1 -par__I_X_m 2 1 -par__I_X_m 2 2 -par__I_X_m 3 1 -par__I_X_m 3 2 -par__I_X_m 3 3 -par__I_X_m 4 1 -par__I_X_m 4 2 -par__I_X_m 4 3 -par__I_X_m 4 4 -par__I_X_m 5 1 -par__I_X_m 5 2 -par__I_X_m 5 3 -par__I_X_m 5 4 -par__I_X_m 5 5 -par__I_X_m 6 1 -par__I_X_m 6 2 -par__I_X_m 6 3 -par__I_X_m 6 4 -par__I_X_m 6 5 -par__I_X_m 6 6 -par__I_X_m 7 1 -par__I_X_m 7 2 -par__I_X_m 7 3 -par__I_X_m 7 4 -par__I_X_m 7 5 -par__I_X_m 7 6 -par__I_X_m 7 7 -par__I_X_m 8 1 -par__I_X_m 8 2 -par__I_X_m 8 3 -par__I_X_m 8 4 -par__I_X_m 8 5 -par__I_X_m 8 6 -par__I_X_m 8 7 -par__I_X_m 8 8 -par__I_X_m 9 1 -par__I_X_m 9 2 -par__I_X_m 9 3 -par__I_X_m 9 4 -par__I_X_m 9 5 -par__I_X_m 9 6 -par__I_X_m 9 7 -par__I_X_m 9 8 -par__I_X_m 9 9 -par__I_X_m 10 1 -par__I_X_m 10 2 -par__I_X_m 10 3 -par__I_X_m 10 4 -par__I_X_m 10 5 -par__I_X_m 10 6 -par__I_X_m 10 7 -par__I_X_m 10 8 -par__I_X_m 10 9 -par__I_X_m 10 10 -par__I_X_m a1 b1 -par__I_X_m a2 b1 b2 -par__I_X_m a3 b1 b2 b3 -par__I_X_m a4 b1 b2 b3 b4 -par__I_X_m a5 b1 b2 b3 b4 b5 -par__I_X_m a6 b1 b2 b3 b4 b5 b6 -par__I_X_m a7 b1 b2 b3 b4 b5 b6 b7 -par__I_X_m a8 b1 b2 b3 b4 b5 b6 b7 b8 -par__I_X_m a9 b1 b2 b3 b4 b5 b6 b7 b8 b9 -par__I_X_m a10 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 -par__I_X_m a1 b1 -par__I_X_m a2 b1 2 -par__I_X_m a3 b1 2 3 -par__I_X_m a4 b1 2 3 4 -par__I_X_m a5 b1 2 3 4 5 -par__I_X_m a6 b1 2 3 4 5 6 -par__I_X_m a7 b1 2 3 4 5 6 7 -par__I_X_m a8 b1 2 3 4 5 6 7 8 -par__I_X_m a9 b1 2 3 4 5 6 7 8 9 -par__I_X_m a10 b1 2 3 4 5 6 7 8 9 10 par__arg_sep ### Test basic --arg-sep par__arg_sep a par__arg_sep b @@ -106,222 +30,6 @@ par__arg_sep b par__arg_sep cat par__arg_sep echo b par__arg_sep b -par__plus ### --plus -par__plus (It is OK to start with extra / or end with extra .) -par__plus a = /a = a. = /a. = a. = /a. = a. = /a. -par__plus a.b = /a.b = a.b = /a.b = a.b. = /a.b. = a.b. = /a.b. -par__plus a.b.c = /a.b.c = a.b.c = /a.b.c = a.b.c = /a.b.c = a.b.c. = /a.b.c. -par__plus a.b.c.d = /a.b.c.d = a.b.c.d = /a.b.c.d = a.b.c.d = /a.b.c.d = a.b.c.d = /a.b.c.d -par__plus a/1 = a/1 = a/1. = a/1. = a/1. = a/1. = a/1. = a/1. -par__plus a.b/1.2 = a.b/1.2 = a.b/1.2 = a.b/1.2 = a.b/1.2. = a.b/1.2. = a.b/1.2. = a.b/1.2. -par__plus a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3. = a.b.c/1.2.3. -par__plus a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 -par__plus a. = /a. = a. = /a. = a.. = /a.. = a.. = /a.. -par__plus a.b. = /a.b. = a.b. = /a.b. = a.b. = /a.b. = a.b.. = /a.b.. -par__plus a.b.c. = /a.b.c. = a.b.c. = /a.b.c. = a.b.c. = /a.b.c. = a.b.c. = /a.b.c. -par__plus a.b.c.d. = /a.b.c.d. = a.b.c.d. = /a.b.c.d. = a.b.c.d. = /a.b.c.d. = a.b.c.d. = /a.b.c.d. -par__plus a/1. = a/1. = a/1. = a/1. = a/1.. = a/1.. = a/1.. = a/1.. -par__plus a.b/1.2. = a.b/1.2. = a.b/1.2. = a.b/1.2. = a.b/1.2. = a.b/1.2. = a.b/1.2.. = a.b/1.2.. -par__plus a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. -par__plus a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. -par__plus a.. = /a.. = a.. = /a.. = a.. = /a.. = a... = /a... -par__plus a.b.. = /a.b.. = a.b.. = /a.b.. = a.b.. = /a.b.. = a.b.. = /a.b.. -par__plus a.b.c.. = /a.b.c.. = a.b.c.. = /a.b.c.. = a.b.c.. = /a.b.c.. = a.b.c.. = /a.b.c.. -par__plus a.b.c.d.. = /a.b.c.d.. = a.b.c.d.. = /a.b.c.d.. = a.b.c.d.. = /a.b.c.d.. = a.b.c.d.. = /a.b.c.d.. -par__plus a./1. = a./1. = a./1. = a./1. = a./1.. = a./1.. = a./1.. = a./1.. -par__plus a.b./1.2.. = a.b./1.2.. = a.b./1.2.. = a.b./1.2.. = a.b./1.2.. = a.b./1.2.. = a.b./1.2.. = a.b./1.2.. -par__plus a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. -par__plus a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. -par__plus ### Test {%...} {%%...} {#...} {##...} -par__plus z.foo -par__plus z.foo -par__plus foo -par__plus foo -par__plus foo.z -par__plus foo.z -par__plus foo -par__plus foo -par__plus A B C -par__plus A C B -par__plus B A C -par__plus B C A -par__plus C A B -par__plus C B A -par__plus A+B+C -par__plus A+C+B -par__plus B+A+C -par__plus B+C+A -par__plus C+A+B -par__plus C+B+A -par__plus A B C -par__plus A B D -par__plus A C D -par__plus B C D -par__sql_colsep ### SQL should add Vn columns for --colsep -par__sql_colsep /a/A/1/11/ -par__sql_colsep /a/A/2/22/ -par__sql_colsep /a/A/3/33/ -par__sql_colsep /b/B/1/11/ -par__sql_colsep /b/B/2/22/ -par__sql_colsep /b/B/3/33/ -par__sql_colsep /c/C/1/11/ -par__sql_colsep /c/C/2/22/ -par__sql_colsep /c/C/3/33/ -par__sql_colsep /a/A/1/11/ -par__sql_colsep /a/A/2/22/ -par__sql_colsep /a/A/3/33/ -par__sql_colsep /b/B/1/11/ -par__sql_colsep /b/B/2/22/ -par__sql_colsep /b/B/3/33/ -par__sql_colsep /c/C/1/11/ -par__sql_colsep /c/C/2/22/ -par__sql_colsep /c/C/3/33/ -par__sql_colsep a A 1 11 a A 2 22 a A 3 33 -par__sql_colsep a A 4 44 a A 5 55 a A 6 66 -par__sql_colsep b B 1 11 b B 2 22 b B 3 33 -par__sql_colsep b B 4 44 b B 5 55 b B 6 66 -par__sql_colsep c C 1 11 c C 2 22 c C 3 33 -par__sql_colsep c C 4 44 c C 5 55 c C 6 66 -par__sql_colsep a A 1 11 a A 2 22 a A 3 33 -par__sql_colsep a A 4 44 a A 5 55 a A 6 66 -par__sql_colsep b B 1 11 b B 2 22 b B 3 33 -par__sql_colsep b B 4 44 b B 5 55 b B 6 66 -par__sql_colsep c C 1 11 c C 2 22 c C 3 33 -par__sql_colsep c C 4 44 c C 5 55 c C 6 66 -par__test_XI_mI ### Test -I -par__test_XI_mI 1 1 -par__test_XI_mI 2 1 -par__test_XI_mI 2 2 -par__test_XI_mI 3 1 -par__test_XI_mI 3 2 -par__test_XI_mI 3 3 -par__test_XI_mI 4 1 -par__test_XI_mI 4 2 -par__test_XI_mI 4 3 -par__test_XI_mI 4 4 -par__test_XI_mI 5 1 -par__test_XI_mI 5 2 -par__test_XI_mI 5 3 -par__test_XI_mI 5 4 -par__test_XI_mI 5 5 -par__test_XI_mI 6 1 -par__test_XI_mI 6 2 -par__test_XI_mI 6 3 -par__test_XI_mI 6 4 -par__test_XI_mI 6 5 -par__test_XI_mI 6 6 -par__test_XI_mI 7 1 -par__test_XI_mI 7 2 -par__test_XI_mI 7 3 -par__test_XI_mI 7 4 -par__test_XI_mI 7 5 -par__test_XI_mI 7 6 -par__test_XI_mI 7 7 -par__test_XI_mI 8 1 -par__test_XI_mI 8 2 -par__test_XI_mI 8 3 -par__test_XI_mI 8 4 -par__test_XI_mI 8 5 -par__test_XI_mI 8 6 -par__test_XI_mI 8 7 -par__test_XI_mI 8 8 -par__test_XI_mI 9 1 -par__test_XI_mI 9 2 -par__test_XI_mI 9 3 -par__test_XI_mI 9 4 -par__test_XI_mI 9 5 -par__test_XI_mI 9 6 -par__test_XI_mI 9 7 -par__test_XI_mI 9 8 -par__test_XI_mI 9 9 -par__test_XI_mI 10 1 -par__test_XI_mI 10 2 -par__test_XI_mI 10 3 -par__test_XI_mI 10 4 -par__test_XI_mI 10 5 -par__test_XI_mI 10 6 -par__test_XI_mI 10 7 -par__test_XI_mI 10 8 -par__test_XI_mI 10 9 -par__test_XI_mI 10 10 -par__test_XI_mI ### Test -X -I -par__test_XI_mI a1 b1 -par__test_XI_mI a2 b1 b2 -par__test_XI_mI a3 b1 b2 b3 -par__test_XI_mI a4 b1 b2 b3 b4 -par__test_XI_mI a5 b1 b2 b3 b4 b5 -par__test_XI_mI a6 b1 b2 b3 b4 b5 b6 -par__test_XI_mI a7 b1 b2 b3 b4 b5 b6 b7 -par__test_XI_mI a8 b1 b2 b3 b4 b5 b6 b7 b8 -par__test_XI_mI a9 b1 b2 b3 b4 b5 b6 b7 b8 b9 -par__test_XI_mI a10 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 -par__test_XI_mI ### Test -m -I -par__test_XI_mI a1 b1 -par__test_XI_mI a2 b1 2 -par__test_XI_mI a3 b1 2 3 -par__test_XI_mI a4 b1 2 3 4 -par__test_XI_mI a5 b1 2 3 4 5 -par__test_XI_mI a6 b1 2 3 4 5 6 -par__test_XI_mI a7 b1 2 3 4 5 6 7 -par__test_XI_mI a8 b1 2 3 4 5 6 7 8 -par__test_XI_mI a9 b1 2 3 4 5 6 7 8 9 -par__test_XI_mI a10 b1 2 3 4 5 6 7 8 9 10 -par__test_cpu_detection_cpuinfo 2-8-8-8 Xeon 8 core server in Germany -par__test_cpu_detection_cpuinfo 2 8 8 8 -par__test_cpu_detection_cpuinfo 4-48-48-48 Dell R815 4 CPU 48-core -par__test_cpu_detection_cpuinfo 4 24 48 24 -par__test_cpu_detection_cpuinfo 1-4-8-4 4-core/8 thread Lenovo T480 -par__test_cpu_detection_cpuinfo 1 4 8 4 -par__test_cpu_detection_cpuinfo 4-64-64-64 Dell R815 4 CPU 64-core -par__test_cpu_detection_cpuinfo 4 32 64 32 -par__test_cpu_detection_cpuinfo 1-2-2-2 AMD Neo N36L Dual-Core Processor -par__test_cpu_detection_cpuinfo 1 2 2 2 -par__test_cpu_detection_cpuinfo 1-1-1-1 Intel Xeon X5675 (mandriva.p) -par__test_cpu_detection_cpuinfo 1 1 1 1 -par__test_cpu_detection_cpuinfo 1-1-1-1 Intel(R) Celeron(R) M (eee900) -par__test_cpu_detection_cpuinfo 1 1 1 1 -par__test_cpu_detection_cpuinfo 2-12-24-12 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz (vh4) -par__test_cpu_detection_cpuinfo 2 12 24 12 -par__test_cpu_detection_cpuinfo 1-6-12-6 AMD Ryzen 5 4600G with Radeon Graphics (ai) -par__test_cpu_detection_cpuinfo 1 6 12 6 -par__test_cpu_detection_cpuinfo 1-4-8-4 Core i7-3632QM Acer laptop -par__test_cpu_detection_cpuinfo 1 4 8 4 -par__test_cpu_detection_cpuinfo 1-2-4-2 Core i5-2410M laptop firewall -par__test_cpu_detection_cpuinfo 1 2 4 2 -par__test_cpu_detection_cpuinfo 1-2-2-2 AMD Opteron 244 dual core laptop(?) -par__test_cpu_detection_cpuinfo 1 2 2 2 -par__test_cpu_detection_cpuinfo 2-24-48-24 24-core (maxwell?) -par__test_cpu_detection_cpuinfo 2 24 48 24 -par__test_cpu_detection_cpuinfo 1-2-2-2 HP Laptop Compaq 6530b -par__test_cpu_detection_cpuinfo 1 2 2 2 -par__test_cpu_detection_cpuinfo 1-8-8-8 Huawei P Smart Octa-core (4x2.36 GHz Cortex-A53 & 4x1.7 GHz Cortex-A53) -par__test_cpu_detection_cpuinfo 1 8 8 8 -par__test_cpu_detection_cpuinfo 1-4-4-4 x96 quad-core Android TV-box -par__test_cpu_detection_cpuinfo 1 4 4 4 -par__test_cpu_detection_cpuinfo 1-6-6-6 Kramses 200 USD laptop 6-core -par__test_cpu_detection_cpuinfo 1 6 6 6 -par__test_cpu_detection_lscpu 2-8-8-8 Xeon 8 core server in Germany -par__test_cpu_detection_lscpu 2 8 8 8 -par__test_cpu_detection_lscpu 4-64-64-64 Dell R815 4 CPU 64-core -par__test_cpu_detection_lscpu 4 32 64 32 -par__test_cpu_detection_lscpu 1-2-2-2 AMD Neo N36L Dual-Core Processor -par__test_cpu_detection_lscpu 1 2 2 2 -par__test_cpu_detection_lscpu 1-1-1-1 Intel Xeon X5675 (mandriva.p) -par__test_cpu_detection_lscpu 1 1 1 1 -par__test_cpu_detection_lscpu 1-1-1-1 Intel(R) Celeron(R) M (eee900) -par__test_cpu_detection_lscpu 1 1 1 1 -par__test_cpu_detection_lscpu 2-12-24-12 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz (vh4) -par__test_cpu_detection_lscpu 2 12 24 12 -par__test_cpu_detection_lscpu 1-6-12-6 AMD Ryzen 5 4600G with Radeon Graphics (ai) -par__test_cpu_detection_lscpu 1 6 12 6 -par__test_cpu_detection_lscpu 1-4-8-4 Core i7-3632QM Acer laptop -par__test_cpu_detection_lscpu 1 4 8 4 -par__test_cpu_detection_lscpu 1-2-4-2 Core i5-2410M laptop firewall -par__test_cpu_detection_lscpu 1 2 4 2 -par__test_cpu_detection_lscpu 1-8-8-8 Huawei P Smart Octa-core (4x2.36 GHz Cortex-A53 & 4x1.7 GHz Cortex-A53) -par__test_cpu_detection_lscpu 2 8 8 8 -par__test_cpu_detection_lscpu 1-4-4-4 x96 quad-core Android TV-box -par__test_cpu_detection_lscpu 1 1 1 1 par_basic_halt parallel: This job failed: par_basic_halt false par_basic_halt parallel: This job succeeded: diff --git a/testsuite/wanted-results/parallel-local-3s b/testsuite/wanted-results/parallel-local-3s index cfacde67..86bb7dfa 100644 --- a/testsuite/wanted-results/parallel-local-3s +++ b/testsuite/wanted-results/parallel-local-3s @@ -12,6 +12,82 @@ par__10000_5_rpl_X 4 par__10000_5_rpl_X 4 par__10000_5_rpl_X 3 par__10000_5_rpl_X 2 +par__I_X_m ### Test -I with -X and -m +par__I_X_m 1 1 +par__I_X_m 2 1 +par__I_X_m 2 2 +par__I_X_m 3 1 +par__I_X_m 3 2 +par__I_X_m 3 3 +par__I_X_m 4 1 +par__I_X_m 4 2 +par__I_X_m 4 3 +par__I_X_m 4 4 +par__I_X_m 5 1 +par__I_X_m 5 2 +par__I_X_m 5 3 +par__I_X_m 5 4 +par__I_X_m 5 5 +par__I_X_m 6 1 +par__I_X_m 6 2 +par__I_X_m 6 3 +par__I_X_m 6 4 +par__I_X_m 6 5 +par__I_X_m 6 6 +par__I_X_m 7 1 +par__I_X_m 7 2 +par__I_X_m 7 3 +par__I_X_m 7 4 +par__I_X_m 7 5 +par__I_X_m 7 6 +par__I_X_m 7 7 +par__I_X_m 8 1 +par__I_X_m 8 2 +par__I_X_m 8 3 +par__I_X_m 8 4 +par__I_X_m 8 5 +par__I_X_m 8 6 +par__I_X_m 8 7 +par__I_X_m 8 8 +par__I_X_m 9 1 +par__I_X_m 9 2 +par__I_X_m 9 3 +par__I_X_m 9 4 +par__I_X_m 9 5 +par__I_X_m 9 6 +par__I_X_m 9 7 +par__I_X_m 9 8 +par__I_X_m 9 9 +par__I_X_m 10 1 +par__I_X_m 10 2 +par__I_X_m 10 3 +par__I_X_m 10 4 +par__I_X_m 10 5 +par__I_X_m 10 6 +par__I_X_m 10 7 +par__I_X_m 10 8 +par__I_X_m 10 9 +par__I_X_m 10 10 +par__I_X_m a1 b1 +par__I_X_m a2 b1 b2 +par__I_X_m a3 b1 b2 b3 +par__I_X_m a4 b1 b2 b3 b4 +par__I_X_m a5 b1 b2 b3 b4 b5 +par__I_X_m a6 b1 b2 b3 b4 b5 b6 +par__I_X_m a7 b1 b2 b3 b4 b5 b6 b7 +par__I_X_m a8 b1 b2 b3 b4 b5 b6 b7 b8 +par__I_X_m a9 b1 b2 b3 b4 b5 b6 b7 b8 b9 +par__I_X_m a10 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 +par__I_X_m a1 b1 +par__I_X_m a2 b1 2 +par__I_X_m a3 b1 2 3 +par__I_X_m a4 b1 2 3 4 +par__I_X_m a5 b1 2 3 4 5 +par__I_X_m a6 b1 2 3 4 5 6 +par__I_X_m a7 b1 2 3 4 5 6 7 +par__I_X_m a8 b1 2 3 4 5 6 7 8 +par__I_X_m a9 b1 2 3 4 5 6 7 8 9 +par__I_X_m a10 b1 2 3 4 5 6 7 8 9 10 par__argfile_plus -- -a file +file ++file par__argfile_plus parallel: Error: It is unclear whether you mean +./file or ./+file par__argfile_plus -- -a file +./file ++file @@ -241,6 +317,57 @@ par__parset_assoc_arr zsh@lo ls: cannot access 'no-such-file': No such file or d par__parset_assoc_arr zsh@lo ls: cannot access 'no-such-file': No such file or directory par__parset_assoc_arr zsh@lo ls: cannot access 'no-such-file1': No such file or directory par__parset_assoc_arr zsh@lo ls: cannot access 'no-such-file2': No such file or directory +par__plus ### --plus +par__plus (It is OK to start with extra / or end with extra .) +par__plus a = /a = a. = /a. = a. = /a. = a. = /a. +par__plus a.b = /a.b = a.b = /a.b = a.b. = /a.b. = a.b. = /a.b. +par__plus a.b.c = /a.b.c = a.b.c = /a.b.c = a.b.c = /a.b.c = a.b.c. = /a.b.c. +par__plus a.b.c.d = /a.b.c.d = a.b.c.d = /a.b.c.d = a.b.c.d = /a.b.c.d = a.b.c.d = /a.b.c.d +par__plus a/1 = a/1 = a/1. = a/1. = a/1. = a/1. = a/1. = a/1. +par__plus a.b/1.2 = a.b/1.2 = a.b/1.2 = a.b/1.2 = a.b/1.2. = a.b/1.2. = a.b/1.2. = a.b/1.2. +par__plus a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3 = a.b.c/1.2.3. = a.b.c/1.2.3. +par__plus a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 = a.b.c.d/1.2.3.4 +par__plus a. = /a. = a. = /a. = a.. = /a.. = a.. = /a.. +par__plus a.b. = /a.b. = a.b. = /a.b. = a.b. = /a.b. = a.b.. = /a.b.. +par__plus a.b.c. = /a.b.c. = a.b.c. = /a.b.c. = a.b.c. = /a.b.c. = a.b.c. = /a.b.c. +par__plus a.b.c.d. = /a.b.c.d. = a.b.c.d. = /a.b.c.d. = a.b.c.d. = /a.b.c.d. = a.b.c.d. = /a.b.c.d. +par__plus a/1. = a/1. = a/1. = a/1. = a/1.. = a/1.. = a/1.. = a/1.. +par__plus a.b/1.2. = a.b/1.2. = a.b/1.2. = a.b/1.2. = a.b/1.2. = a.b/1.2. = a.b/1.2.. = a.b/1.2.. +par__plus a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. = a.b.c/1.2.3. +par__plus a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. = a.b.c.d/1.2.3.4. +par__plus a.. = /a.. = a.. = /a.. = a.. = /a.. = a... = /a... +par__plus a.b.. = /a.b.. = a.b.. = /a.b.. = a.b.. = /a.b.. = a.b.. = /a.b.. +par__plus a.b.c.. = /a.b.c.. = a.b.c.. = /a.b.c.. = a.b.c.. = /a.b.c.. = a.b.c.. = /a.b.c.. +par__plus a.b.c.d.. = /a.b.c.d.. = a.b.c.d.. = /a.b.c.d.. = a.b.c.d.. = /a.b.c.d.. = a.b.c.d.. = /a.b.c.d.. +par__plus a./1. = a./1. = a./1. = a./1. = a./1.. = a./1.. = a./1.. = a./1.. +par__plus a.b./1.2.. = a.b./1.2.. = a.b./1.2.. = a.b./1.2.. = a.b./1.2.. = a.b./1.2.. = a.b./1.2.. = a.b./1.2.. +par__plus a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. = a.b.c./1.2.3.. +par__plus a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. = a.b.c.d./1.2.3.4.. +par__plus ### Test {%...} {%%...} {#...} {##...} +par__plus z.foo +par__plus z.foo +par__plus foo +par__plus foo +par__plus foo.z +par__plus foo.z +par__plus foo +par__plus foo +par__plus A B C +par__plus A C B +par__plus B A C +par__plus B C A +par__plus C A B +par__plus C B A +par__plus A+B+C +par__plus A+C+B +par__plus B+A+C +par__plus B+C+A +par__plus C+A+B +par__plus C+B+A +par__plus A B C +par__plus A B D +par__plus A C D +par__plus B C D par__prefix_for_L_n_N_s Must give xxx000 args par__prefix_for_L_n_N_s 1000 par__prefix_for_L_n_N_s 1000 @@ -321,6 +448,177 @@ par__prefix_for_L_n_N_s 244 par__prefix_for_L_n_N_s 246 par__prefix_for_L_n_N_s 246 par__prefix_for_L_n_N_s 273 +par__sql_colsep ### SQL should add Vn columns for --colsep +par__sql_colsep /a/A/1/11/ +par__sql_colsep /a/A/2/22/ +par__sql_colsep /a/A/3/33/ +par__sql_colsep /b/B/1/11/ +par__sql_colsep /b/B/2/22/ +par__sql_colsep /b/B/3/33/ +par__sql_colsep /c/C/1/11/ +par__sql_colsep /c/C/2/22/ +par__sql_colsep /c/C/3/33/ +par__sql_colsep /a/A/1/11/ +par__sql_colsep /a/A/2/22/ +par__sql_colsep /a/A/3/33/ +par__sql_colsep /b/B/1/11/ +par__sql_colsep /b/B/2/22/ +par__sql_colsep /b/B/3/33/ +par__sql_colsep /c/C/1/11/ +par__sql_colsep /c/C/2/22/ +par__sql_colsep /c/C/3/33/ +par__sql_colsep a A 1 11 a A 2 22 a A 3 33 +par__sql_colsep a A 4 44 a A 5 55 a A 6 66 +par__sql_colsep b B 1 11 b B 2 22 b B 3 33 +par__sql_colsep b B 4 44 b B 5 55 b B 6 66 +par__sql_colsep c C 1 11 c C 2 22 c C 3 33 +par__sql_colsep c C 4 44 c C 5 55 c C 6 66 +par__sql_colsep a A 1 11 a A 2 22 a A 3 33 +par__sql_colsep a A 4 44 a A 5 55 a A 6 66 +par__sql_colsep b B 1 11 b B 2 22 b B 3 33 +par__sql_colsep b B 4 44 b B 5 55 b B 6 66 +par__sql_colsep c C 1 11 c C 2 22 c C 3 33 +par__sql_colsep c C 4 44 c C 5 55 c C 6 66 +par__test_XI_mI ### Test -I +par__test_XI_mI 1 1 +par__test_XI_mI 2 1 +par__test_XI_mI 2 2 +par__test_XI_mI 3 1 +par__test_XI_mI 3 2 +par__test_XI_mI 3 3 +par__test_XI_mI 4 1 +par__test_XI_mI 4 2 +par__test_XI_mI 4 3 +par__test_XI_mI 4 4 +par__test_XI_mI 5 1 +par__test_XI_mI 5 2 +par__test_XI_mI 5 3 +par__test_XI_mI 5 4 +par__test_XI_mI 5 5 +par__test_XI_mI 6 1 +par__test_XI_mI 6 2 +par__test_XI_mI 6 3 +par__test_XI_mI 6 4 +par__test_XI_mI 6 5 +par__test_XI_mI 6 6 +par__test_XI_mI 7 1 +par__test_XI_mI 7 2 +par__test_XI_mI 7 3 +par__test_XI_mI 7 4 +par__test_XI_mI 7 5 +par__test_XI_mI 7 6 +par__test_XI_mI 7 7 +par__test_XI_mI 8 1 +par__test_XI_mI 8 2 +par__test_XI_mI 8 3 +par__test_XI_mI 8 4 +par__test_XI_mI 8 5 +par__test_XI_mI 8 6 +par__test_XI_mI 8 7 +par__test_XI_mI 8 8 +par__test_XI_mI 9 1 +par__test_XI_mI 9 2 +par__test_XI_mI 9 3 +par__test_XI_mI 9 4 +par__test_XI_mI 9 5 +par__test_XI_mI 9 6 +par__test_XI_mI 9 7 +par__test_XI_mI 9 8 +par__test_XI_mI 9 9 +par__test_XI_mI 10 1 +par__test_XI_mI 10 2 +par__test_XI_mI 10 3 +par__test_XI_mI 10 4 +par__test_XI_mI 10 5 +par__test_XI_mI 10 6 +par__test_XI_mI 10 7 +par__test_XI_mI 10 8 +par__test_XI_mI 10 9 +par__test_XI_mI 10 10 +par__test_XI_mI ### Test -X -I +par__test_XI_mI a1 b1 +par__test_XI_mI a2 b1 b2 +par__test_XI_mI a3 b1 b2 b3 +par__test_XI_mI a4 b1 b2 b3 b4 +par__test_XI_mI a5 b1 b2 b3 b4 b5 +par__test_XI_mI a6 b1 b2 b3 b4 b5 b6 +par__test_XI_mI a7 b1 b2 b3 b4 b5 b6 b7 +par__test_XI_mI a8 b1 b2 b3 b4 b5 b6 b7 b8 +par__test_XI_mI a9 b1 b2 b3 b4 b5 b6 b7 b8 b9 +par__test_XI_mI a10 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 +par__test_XI_mI ### Test -m -I +par__test_XI_mI a1 b1 +par__test_XI_mI a2 b1 2 +par__test_XI_mI a3 b1 2 3 +par__test_XI_mI a4 b1 2 3 4 +par__test_XI_mI a5 b1 2 3 4 5 +par__test_XI_mI a6 b1 2 3 4 5 6 +par__test_XI_mI a7 b1 2 3 4 5 6 7 +par__test_XI_mI a8 b1 2 3 4 5 6 7 8 +par__test_XI_mI a9 b1 2 3 4 5 6 7 8 9 +par__test_XI_mI a10 b1 2 3 4 5 6 7 8 9 10 +par__test_cpu_detection_cpuinfo 2-8-8-8 Xeon 8 core server in Germany +par__test_cpu_detection_cpuinfo 2 8 8 8 +par__test_cpu_detection_cpuinfo 4-48-48-48 Dell R815 4 CPU 48-core +par__test_cpu_detection_cpuinfo 4 24 48 24 +par__test_cpu_detection_cpuinfo 1-4-8-4 4-core/8 thread Lenovo T480 +par__test_cpu_detection_cpuinfo 1 4 8 4 +par__test_cpu_detection_cpuinfo 4-64-64-64 Dell R815 4 CPU 64-core +par__test_cpu_detection_cpuinfo 4 32 64 32 +par__test_cpu_detection_cpuinfo 1-2-2-2 AMD Neo N36L Dual-Core Processor +par__test_cpu_detection_cpuinfo 1 2 2 2 +par__test_cpu_detection_cpuinfo 1-1-1-1 Intel Xeon X5675 (mandriva.p) +par__test_cpu_detection_cpuinfo 1 1 1 1 +par__test_cpu_detection_cpuinfo 1-1-1-1 Intel(R) Celeron(R) M (eee900) +par__test_cpu_detection_cpuinfo 1 1 1 1 +par__test_cpu_detection_cpuinfo 2-12-24-12 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz (vh4) +par__test_cpu_detection_cpuinfo 2 12 24 12 +par__test_cpu_detection_cpuinfo 1-6-12-6 AMD Ryzen 5 4600G with Radeon Graphics (ai) +par__test_cpu_detection_cpuinfo 1 6 12 6 +par__test_cpu_detection_cpuinfo 1-4-8-4 Lenovo E540 i7-4712MQ +par__test_cpu_detection_cpuinfo 1 4 8 4 +par__test_cpu_detection_cpuinfo 1-4-8-4 Core i7-3632QM Acer laptop +par__test_cpu_detection_cpuinfo 1 4 8 4 +par__test_cpu_detection_cpuinfo 1-2-4-2 Core i5-2410M laptop firewall +par__test_cpu_detection_cpuinfo 1 2 4 2 +par__test_cpu_detection_cpuinfo 1-2-2-2 AMD Opteron 244 dual core laptop(?) +par__test_cpu_detection_cpuinfo 1 2 2 2 +par__test_cpu_detection_cpuinfo 2-24-48-24 24-core (maxwell?) +par__test_cpu_detection_cpuinfo 2 24 48 24 +par__test_cpu_detection_cpuinfo 1-2-2-2 HP Laptop Compaq 6530b +par__test_cpu_detection_cpuinfo 1 2 2 2 +par__test_cpu_detection_cpuinfo 1-8-8-8 Huawei P Smart Octa-core (4x2.36 GHz Cortex-A53 & 4x1.7 GHz Cortex-A53) +par__test_cpu_detection_cpuinfo 1 8 8 8 +par__test_cpu_detection_cpuinfo 1-4-4-4 x96 quad-core Android TV-box +par__test_cpu_detection_cpuinfo 1 4 4 4 +par__test_cpu_detection_cpuinfo 1-6-6-6 Kramses 200 USD laptop 6-core +par__test_cpu_detection_cpuinfo 1 6 6 6 +par__test_cpu_detection_lscpu 2-8-8-8 Xeon 8 core server in Germany +par__test_cpu_detection_lscpu 2 8 8 8 +par__test_cpu_detection_lscpu 4-64-64-64 Dell R815 4 CPU 64-core +par__test_cpu_detection_lscpu 4 32 64 32 +par__test_cpu_detection_lscpu 1-2-2-2 AMD Neo N36L Dual-Core Processor +par__test_cpu_detection_lscpu 1 2 2 2 +par__test_cpu_detection_lscpu 1-1-1-1 Intel Xeon X5675 (mandriva.p) +par__test_cpu_detection_lscpu 1 1 1 1 +par__test_cpu_detection_lscpu 1-1-1-1 Intel(R) Celeron(R) M (eee900) +par__test_cpu_detection_lscpu 1 1 1 1 +par__test_cpu_detection_lscpu 2-12-24-12 Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz (vh4) +par__test_cpu_detection_lscpu 2 12 24 12 +par__test_cpu_detection_lscpu 1-6-12-6 AMD Ryzen 5 4600G with Radeon Graphics (ai) +par__test_cpu_detection_lscpu 1 6 12 6 +par__test_cpu_detection_lscpu 1-4-8-4 Lenovo E540 i7-4712MQ +par__test_cpu_detection_lscpu 1 4 8 4 +par__test_cpu_detection_lscpu 1-4-8-4 Core i7-3632QM Acer laptop +par__test_cpu_detection_lscpu 1 4 8 4 +par__test_cpu_detection_lscpu 1-2-4-2 Core i5-2410M laptop firewall +par__test_cpu_detection_lscpu 1 2 4 2 +par__test_cpu_detection_lscpu 1-8-8-8 Huawei P Smart Octa-core (4x2.36 GHz Cortex-A53 & 4x1.7 GHz Cortex-A53) +par__test_cpu_detection_lscpu 2 8 8 8 +par__test_cpu_detection_lscpu 1-4-4-4 x96 quad-core Android TV-box +par__test_cpu_detection_lscpu 1 1 1 1 +par__test_cpu_detection_topology 1-4-8-4 Lenovo E540 i7-4712MQ +par__test_cpu_detection_topology 1 4 8 4 par_children_receive_sig ### Do children receive --termseq signals par_children_receive_sig parallel: Warning: This job was killed because it timed out: par_children_receive_sig parallel: Warning: show_signals '' @@ -543,11 +841,15 @@ par_parset line1 par_parset line2 par_parset2 ### parset into array par_parset2 foo bar baz +par_parset2 foo bar baz par_parset2 ### parset into vars with comma par_parset2 foo bar baz +par_parset2 foo bar baz par_parset2 ### parset into vars with space par_parset2 foo bar baz +par_parset2 foo bar baz par_parset2 ### parset with newlines +par_parset2 1 1 2 1 2 3 par_parset2 1 par_parset2 1 par_parset2 2 @@ -556,11 +858,17 @@ par_parset2 2 par_parset2 3 par_parset2 ### parset into indexed array vars par_parset2 foo bar baz +par_parset2 foo bar baz +par_parset2 foo bar bar par_parset2 foo bar bar par_parset2 ### env_parset par_parset2 myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz par_parset2 myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz par_parset2 myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz +par_parset2 myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz +par_parset2 myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz +par_parset2 myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz +par_parset2 newline1 newline2 1 newline1 newline2 1 2 newline1 newline2 1 2 3 par_parset2 newline1 par_parset2 newline2 par_parset2 1 @@ -574,6 +882,8 @@ par_parset2 1 par_parset2 2 par_parset2 3 par_parset2 myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz +par_parset2 myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 baz +par_parset2 myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 bar par_parset2 myecho myvar myarr 1 foo myecho myvar myarr 1 bar myecho myvar myarr 1 bar par_parset2 bug #52507: parset arr1 -v echo ::: fails par_parset2 seq 3 diff --git a/testsuite/wanted-results/parallel-local-sql b/testsuite/wanted-results/parallel-local-sql index ee7a6e86..e69de29b 100644 --- a/testsuite/wanted-results/parallel-local-sql +++ b/testsuite/wanted-results/parallel-local-sql @@ -1,1717 +0,0 @@ -par_append_different_cmd $MYSQL p_wrapper par_append_different_cmd '$MYSQL' -par_append_different_cmd $MYSQL Exit=0 -par_append_different_cmd $MYSQL Exit=0 -par_append_different_cmd $MYSQL Command V1 V2 Stdout Stderr -par_append_different_cmd $MYSQL sleep .3;echo 1 a 1 a 1 a\n -par_append_different_cmd $MYSQL sleep .3;echo 1 b 1 b 1 b\n -par_append_different_cmd $MYSQL sleep .3;echo 1 c 1 c 1 c\n -par_append_different_cmd $MYSQL sleep .3;echo 1 d 1 d 1 d\n -par_append_different_cmd $MYSQL sleep .3;echo 1 e 1 e 1 e\n -par_append_different_cmd $MYSQL sleep .3;echo 2 a 2 a 2 a\n -par_append_different_cmd $MYSQL sleep .3;echo 2 b 2 b 2 b\n -par_append_different_cmd $MYSQL sleep .3;echo 2 c 2 c 2 c\n -par_append_different_cmd $MYSQL sleep .3;echo 2 d 2 d 2 d\n -par_append_different_cmd $MYSQL sleep .3;echo 2 e 2 e 2 e\n -par_append_different_cmd $MYSQL sleep .3;echo 3 a 3 a 3 a\n -par_append_different_cmd $MYSQL sleep .3;echo 3 b 3 b 3 b\n -par_append_different_cmd $MYSQL sleep .3;echo 3 c 3 c 3 c\n -par_append_different_cmd $MYSQL sleep .3;echo 3 d 3 d 3 d\n -par_append_different_cmd $MYSQL sleep .3;echo 3 e 3 e 3 e\n -par_append_different_cmd $MYSQL sleep .3;echo 4 a 4 a 4 a\n -par_append_different_cmd $MYSQL sleep .3;echo 4 b 4 b 4 b\n -par_append_different_cmd $MYSQL sleep .3;echo 4 c 4 c 4 c\n -par_append_different_cmd $MYSQL sleep .3;echo 4 d 4 d 4 d\n -par_append_different_cmd $MYSQL sleep .3;echo 4 e 4 e 4 e\n -par_append_different_cmd $MYSQL sleep .3;echo 5 a 5 a 5 a\n -par_append_different_cmd $MYSQL sleep .3;echo 5 b 5 b 5 b\n -par_append_different_cmd $MYSQL sleep .3;echo 5 c 5 c 5 c\n -par_append_different_cmd $MYSQL sleep .3;echo 5 d 5 d 5 d\n -par_append_different_cmd $MYSQL sleep .3;echo 5 e 5 e 5 e\n -par_append_different_cmd $MYSQL sleep .3;echo A-11 11 A A-11\n -par_append_different_cmd $MYSQL sleep .3;echo B-11 11 B B-11\n -par_append_different_cmd $MYSQL sleep .3;echo C-11 11 C C-11\n -par_append_different_cmd $MYSQL sleep .3;echo D-11 11 D D-11\n -par_append_different_cmd $MYSQL sleep .3;echo E-11 11 E E-11\n -par_append_different_cmd $MYSQL sleep .3;echo A-12 12 A A-12\n -par_append_different_cmd $MYSQL sleep .3;echo B-12 12 B B-12\n -par_append_different_cmd $MYSQL sleep .3;echo C-12 12 C C-12\n -par_append_different_cmd $MYSQL sleep .3;echo D-12 12 D D-12\n -par_append_different_cmd $MYSQL sleep .3;echo E-12 12 E E-12\n -par_append_different_cmd $MYSQL sleep .3;echo A-13 13 A A-13\n -par_append_different_cmd $MYSQL sleep .3;echo B-13 13 B B-13\n -par_append_different_cmd $MYSQL sleep .3;echo C-13 13 C C-13\n -par_append_different_cmd $MYSQL sleep .3;echo D-13 13 D D-13\n -par_append_different_cmd $MYSQL sleep .3;echo E-13 13 E E-13\n -par_append_different_cmd $MYSQL sleep .3;echo A-14 14 A A-14\n -par_append_different_cmd $MYSQL sleep .3;echo B-14 14 B B-14\n -par_append_different_cmd $MYSQL sleep .3;echo C-14 14 C C-14\n -par_append_different_cmd $MYSQL sleep .3;echo D-14 14 D D-14\n -par_append_different_cmd $MYSQL sleep .3;echo E-14 14 E E-14\n -par_append_different_cmd $MYSQL sleep .3;echo A-15 15 A A-15\n -par_append_different_cmd $MYSQL sleep .3;echo B-15 15 B B-15\n -par_append_different_cmd $MYSQL sleep .3;echo C-15 15 C C-15\n -par_append_different_cmd $MYSQL sleep .3;echo D-15 15 D D-15\n -par_append_different_cmd $MYSQL sleep .3;echo E-15 15 E E-15\n -par_append_different_cmd $PG p_wrapper par_append_different_cmd '$PG' -par_append_different_cmd $PG Exit=0 -par_append_different_cmd $PG Exit=0 -par_append_different_cmd $PG command | v1 | v2 | stdout | stderr -par_append_different_cmd $PG --------------------+----+----+--------+-------- -par_append_different_cmd $PG sleep .3;echo 1 a | 1 | a | 1 a +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 1 b | 1 | b | 1 b +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 1 c | 1 | c | 1 c +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 1 d | 1 | d | 1 d +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 1 e | 1 | e | 1 e +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 2 a | 2 | a | 2 a +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 2 b | 2 | b | 2 b +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 2 c | 2 | c | 2 c +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 2 d | 2 | d | 2 d +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 2 e | 2 | e | 2 e +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 3 a | 3 | a | 3 a +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 3 b | 3 | b | 3 b +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 3 c | 3 | c | 3 c +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 3 d | 3 | d | 3 d +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 3 e | 3 | e | 3 e +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 4 a | 4 | a | 4 a +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 4 b | 4 | b | 4 b +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 4 c | 4 | c | 4 c +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 4 d | 4 | d | 4 d +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 4 e | 4 | e | 4 e +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 5 a | 5 | a | 5 a +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 5 b | 5 | b | 5 b +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 5 c | 5 | c | 5 c +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 5 d | 5 | d | 5 d +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo 5 e | 5 | e | 5 e +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo A-11 | 11 | A | A-11 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo B-11 | 11 | B | B-11 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo C-11 | 11 | C | C-11 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo D-11 | 11 | D | D-11 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo E-11 | 11 | E | E-11 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo A-12 | 12 | A | A-12 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo B-12 | 12 | B | B-12 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo C-12 | 12 | C | C-12 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo D-12 | 12 | D | D-12 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo E-12 | 12 | E | E-12 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo A-13 | 13 | A | A-13 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo B-13 | 13 | B | B-13 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo C-13 | 13 | C | C-13 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo D-13 | 13 | D | D-13 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo E-13 | 13 | E | E-13 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo A-14 | 14 | A | A-14 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo B-14 | 14 | B | B-14 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo C-14 | 14 | C | C-14 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo D-14 | 14 | D | D-14 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo E-14 | 14 | E | E-14 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo A-15 | 15 | A | A-15 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo B-15 | 15 | B | B-15 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo C-15 | 15 | C | C-15 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo D-15 | 15 | D | D-15 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG sleep .3;echo E-15 | 15 | E | E-15 +| -par_append_different_cmd $PG | | | | -par_append_different_cmd $PG (50 rows) -par_append_different_cmd $PG -par_append_different_cmd $SQLITE p_wrapper par_append_different_cmd '$SQLITE' -par_append_different_cmd $SQLITE Exit=0 -par_append_different_cmd $SQLITE Exit=0 -par_append_different_cmd $SQLITE Command|V1|V2|Stdout|Stderr -par_append_different_cmd $SQLITE sleep .3;echo 1 a|1|a|1 a -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 1 b|1|b|1 b -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 1 c|1|c|1 c -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 1 d|1|d|1 d -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 1 e|1|e|1 e -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 2 a|2|a|2 a -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 2 b|2|b|2 b -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 2 c|2|c|2 c -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 2 d|2|d|2 d -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 2 e|2|e|2 e -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 3 a|3|a|3 a -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 3 b|3|b|3 b -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 3 c|3|c|3 c -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 3 d|3|d|3 d -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 3 e|3|e|3 e -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 4 a|4|a|4 a -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 4 b|4|b|4 b -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 4 c|4|c|4 c -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 4 d|4|d|4 d -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 4 e|4|e|4 e -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 5 a|5|a|5 a -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 5 b|5|b|5 b -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 5 c|5|c|5 c -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 5 d|5|d|5 d -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo 5 e|5|e|5 e -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo A-11|11|A|A-11 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo B-11|11|B|B-11 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo C-11|11|C|C-11 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo D-11|11|D|D-11 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo E-11|11|E|E-11 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo A-12|12|A|A-12 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo B-12|12|B|B-12 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo C-12|12|C|C-12 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo D-12|12|D|D-12 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo E-12|12|E|E-12 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo A-13|13|A|A-13 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo B-13|13|B|B-13 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo C-13|13|C|C-13 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo D-13|13|D|D-13 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo E-13|13|E|E-13 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo A-14|14|A|A-14 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo B-14|14|B|B-14 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo C-14|14|C|C-14 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo D-14|14|D|D-14 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo E-14|14|E|E-14 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo A-15|15|A|A-15 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo B-15|15|B|B-15 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo C-15|15|C|C-15 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo D-15|15|D|D-15 -par_append_different_cmd $SQLITE | -par_append_different_cmd $SQLITE sleep .3;echo E-15|15|E|E-15 -par_append_different_cmd $SQLITE | -par_no_table $MYSQL p_wrapper par_no_table '$MYSQL' -par_no_table $MYSQL bug #50018: --dburl without table dies -par_no_table $MYSQL 255 -par_no_table $MYSQL 255 -par_no_table $MYSQL 255 -par_no_table $MYSQL Exit=0 -par_no_table $MYSQL Exit=0 -par_no_table $MYSQL Command V1 V2 Stdout Stderr -par_no_table $MYSQL true dummy dummy dummy dummy -par_no_table $MYSQL parallel: Error: The DBURL (mysql://tange:tange@lo/tange) must contain a table. -par_no_table $MYSQL parallel: Error: The DBURL (mysql://tange:tange@lo/tange) must contain a table. -par_no_table $MYSQL parallel: Error: The DBURL (mysql://tange:tange@lo/tange) must contain a table. -par_no_table $PG p_wrapper par_no_table '$PG' -par_no_table $PG bug #50018: --dburl without table dies -par_no_table $PG 255 -par_no_table $PG 255 -par_no_table $PG 255 -par_no_table $PG Exit=0 -par_no_table $PG Exit=0 -par_no_table $PG command | v1 | v2 | stdout | stderr -par_no_table $PG ------------------+-------+-------+--------+-------- -par_no_table $PG true dummy dummy | dummy | dummy | | -par_no_table $PG (1 row) -par_no_table $PG -par_no_table $PG parallel: Error: The DBURL (pg://tange:tange@lo/tange) must contain a table. -par_no_table $PG parallel: Error: The DBURL (pg://tange:tange@lo/tange) must contain a table. -par_no_table $PG parallel: Error: The DBURL (pg://tange:tange@lo/tange) must contain a table. -par_no_table $SQLITE p_wrapper par_no_table '$SQLITE' -par_no_table $SQLITE bug #50018: --dburl without table dies -par_no_table $SQLITE 255 -par_no_table $SQLITE 255 -par_no_table $SQLITE 255 -par_no_table $SQLITE Exit=0 -par_no_table $SQLITE Exit=0 -par_no_table $SQLITE Command|V1|V2|Stdout|Stderr -par_no_table $SQLITE true dummy dummy|dummy|dummy|| -par_no_table $SQLITE parallel: Error: The DBURL (sqlite3:///%2Frun%2Fshm%2Fparallel.db) must contain a table. -par_no_table $SQLITE parallel: Error: The DBURL (sqlite3:///%2Frun%2Fshm%2Fparallel.db) must contain a table. -par_no_table $SQLITE parallel: Error: The DBURL (sqlite3:///%2Frun%2Fshm%2Fparallel.db) must contain a table. -par_shuf $MYSQL p_wrapper par_shuf '$MYSQL' -par_shuf $MYSQL 1 a -par_shuf $MYSQL 1 b -par_shuf $MYSQL 1 c -par_shuf $MYSQL 1 d -par_shuf $MYSQL 1 e -par_shuf $MYSQL 2 a -par_shuf $MYSQL 2 b -par_shuf $MYSQL 2 c -par_shuf $MYSQL 2 d -par_shuf $MYSQL 2 e -par_shuf $MYSQL 3 a -par_shuf $MYSQL 3 b -par_shuf $MYSQL 3 c -par_shuf $MYSQL 3 d -par_shuf $MYSQL 3 e -par_shuf $MYSQL 4 a -par_shuf $MYSQL 4 b -par_shuf $MYSQL 4 c -par_shuf $MYSQL 4 d -par_shuf $MYSQL 4 e -par_shuf $MYSQL 5 a -par_shuf $MYSQL 5 b -par_shuf $MYSQL 5 c -par_shuf $MYSQL 5 d -par_shuf $MYSQL 5 e -par_shuf $MYSQL OK: Diff bigger than 2500 char -par_shuf $MYSQL Exit=0 -par_shuf $MYSQL Exit=0 -par_shuf $MYSQL Command V1 V2 Stdout Stderr -par_shuf $MYSQL sleep .3;echo 1 a 1 a /tmp/parallel-bug49791- new_script -par_zsh_embed Put -par_zsh_embed your -par_zsh_embed code -par_zsh_embed here -par_zsh_embed parallel_OK -par_zsh_embed env_parallel --env OK -par_zsh_embed _which_PAR:13: argument list too long: perl -par_zsh_embed env_parallel: Error: Your environment is too big. -par_zsh_embed env_parallel: Error: You can try 3 different approaches: -par_zsh_embed env_parallel: Error: 1. Run 'env_parallel --session' before you set -par_zsh_embed env_parallel: Error: variables or define functions. -par_zsh_embed env_parallel: Error: 2. Use --env and only mention the names to copy. -par_zsh_embed env_parallel: Error: 3. Try running this in a clean environment once: -par_zsh_embed env_parallel: Error: env_parallel --record-env -par_zsh_embed env_parallel: Error: And then use '--env _' -par_zsh_embed env_parallel: Error: For details see: man env_parallel -par_zsh_embed ParsetOK -par_zsh_embed Put -par_zsh_embed your -par_zsh_embed code -par_zsh_embed here -par_zsh_embed Put your code here -par_zsh_embed You can also activate GNU Parallel for interactive use by: -par_zsh_embed . ./parallel-embed -par_tcsh_embed Not implemented -par_sshlogin_range ### --sshlogin with ranges -par_sshlogin_range ### Jobs fail, but the important is the name of the hosts -par_sshlogin_range echo 1 -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a000.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a001.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a002.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a003.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a004.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a005.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a006.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a007.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a008.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a009.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a010.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a011.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a012.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a013.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a014.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a015.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a016.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a017.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a018.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a019.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a020.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a021.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a022.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a023.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a024.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a025.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a026.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a027.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a028.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a029.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a030.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a031.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a032.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a033.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a034.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a035.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a036.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a037.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a038.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a039.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a040.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a041.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a042.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a043.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a044.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a045.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a046.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a047.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a048.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a049.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a050.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a051.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a052.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a053.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a054.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a055.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a056.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a057.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a058.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a059.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a060.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a061.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a062.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a063.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a064.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a065.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a066.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a067.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a068.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a069.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a070.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a071.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a072.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a073.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a074.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a075.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a076.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a077.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a078.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a079.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a080.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a081.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a082.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a083.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a084.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a085.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a086.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a087.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a088.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a089.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a090.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a091.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a092.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a093.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a094.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a095.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a096.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a097.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a098.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a099.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a100.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a101.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a102.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a103.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a104.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a105.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a106.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a107.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a108.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a109.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a110.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a111.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a112.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a113.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a114.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a115.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a116.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a117.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a118.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a119.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a120.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a121.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a122.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on a123.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b10c1.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b10c4.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b10c6.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b11c1.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b11c4.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b11c6.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b2c1.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b2c4.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b2c6.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b3c1.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b3c4.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b3c6.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b5c1.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b5c4.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b5c6.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b7c1.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b7c4.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b7c6.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b8c1.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b8c4.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b8c6.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b9c1.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b9c4.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on b9c6.nx-dom (). Using 1. -par_sshlogin_range echo 1 -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev000.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev001.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev002.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev003.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev004.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev005.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev006.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev007.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev008.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev009.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev010.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev011.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev012.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev013.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev014.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev015.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev016.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev017.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev018.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev019.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev020.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev021.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev022.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev023.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev024.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev025.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev026.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev027.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev028.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev029.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev030.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev031.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev032.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev033.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev034.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev035.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev036.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev037.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev038.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev039.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev040.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev041.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev042.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev043.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev044.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev045.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev046.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev047.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev048.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev049.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev050.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev051.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev052.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev053.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev054.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev055.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev056.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev057.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev058.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev059.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev060.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev061.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev062.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev063.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev064.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev065.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev066.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev067.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev068.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev069.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev070.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev071.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev072.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev073.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev074.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev075.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev076.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev077.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev078.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev079.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev080.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev081.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev082.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev083.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev084.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev085.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev086.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev087.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev088.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev089.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev090.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev091.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev092.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev093.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev094.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev095.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev096.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev097.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev098.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev099.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on dev100.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod000.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod001.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod002.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod003.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod004.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod005.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod006.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod007.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod008.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod009.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod010.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod011.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod012.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod013.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod014.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod015.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod016.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod017.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod018.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod019.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod020.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod021.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod022.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod023.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod024.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod025.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod026.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod027.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod028.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod029.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod030.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod031.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod032.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod033.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod034.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod035.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod036.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod037.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod038.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod039.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod040.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod041.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod042.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod043.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod044.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod045.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod046.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod047.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod048.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod049.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod050.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod051.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod052.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod053.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod054.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod055.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod056.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod057.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod058.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod059.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod060.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod061.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod062.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod063.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod064.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod065.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod066.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod067.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod068.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod069.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod070.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod071.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod072.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod073.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod074.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod075.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod076.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod077.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod078.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod079.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod080.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod081.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod082.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod083.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod084.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod085.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod086.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod087.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod088.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod089.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod090.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod091.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod092.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod093.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod094.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod095.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod096.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod097.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod098.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod099.nx-dom (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on prod100.nx-dom (). Using 1. -par_sshlogin_range echo 1 -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 249.0.10.109 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 249.0.10.110 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 249.0.10.111 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 249.0.11.109 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 249.0.11.110 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 249.0.11.111 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 249.0.9.109 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 249.0.9.110 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 249.0.9.111 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 250.0.10.109 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 250.0.10.110 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 250.0.10.111 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 250.0.11.109 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 250.0.11.110 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 250.0.11.111 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 250.0.9.109 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 250.0.9.110 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 250.0.9.111 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 251.0.10.109 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 251.0.10.110 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 251.0.10.111 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 251.0.11.109 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 251.0.11.110 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 251.0.11.111 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 251.0.9.109 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 251.0.9.110 (). Using 1. -par_sshlogin_range parallel: Warning: Could not figure out number of cpus on 251.0.9.111 (). Using 1. -par_sh_embed --embed -par_sh_embed Redirect the output to a file and add your changes at the end: -par_sh_embed /usr/local/bin/parallel --embed > new_script -par_sh_embed Put -par_sh_embed your -par_sh_embed code -par_sh_embed here -par_sh_embed parallel_OK -par_sh_embed env_parallel --env OK -par_sh_embed env_parallel_OK -par_sh_embed ParsetOK -par_sh_embed Put -par_sh_embed your -par_sh_embed code -par_sh_embed here -par_sh_embed Put your code here -par_sh_embed You can also activate GNU Parallel for interactive use by: -par_sh_embed . ./parallel-embed -par_no_route_to_host ### no route to host with | and -j0 causes inf loop -par_no_route_to_host ssh: connect to host i.p.n.r port 22: No route to host par_no_route_to_host -par_no_route_to_host parallel: This job finished: -par_no_route_to_host raw i.p.n.r -par_no_route_to_host parallel: Warning: ssh to i.p.n.r only allows for 0 simultaneous logins. -par_no_route_to_host parallel: Warning: You may raise this by changing -par_no_route_to_host parallel: Warning: /etc/ssh/sshd_config:MaxStartups and MaxSessions on i.p.n.r. -par_no_route_to_host parallel: Warning: You can also try --sshdelay 0.1 -par_no_route_to_host parallel: Warning: Using only -1 connections to avoid race conditions. -par_no_route_to_host parallel: Error: Cannot run any jobs. -par_no_route_to_host via_parallel i.p.n.r -par_ksh_embed --embed -par_ksh_embed Redirect the output to a file and add your changes at the end: -par_ksh_embed /usr/local/bin/parallel --embed > new_script -par_ksh_embed Put -par_ksh_embed your -par_ksh_embed code -par_ksh_embed here -par_ksh_embed parallel_OK -par_ksh_embed env_parallel --env OK -par_ksh_embed ./parallel-embed[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] -par_ksh_embed env_parallel: Error: Your environment is too big. -par_ksh_embed env_parallel: Error: You can try 3 different approaches: -par_ksh_embed env_parallel: Error: 1. Run 'env_parallel --session' before you set -par_ksh_embed env_parallel: Error: variables or define functions. -par_ksh_embed env_parallel: Error: 2. Use --env and only mention the names to copy. -par_ksh_embed env_parallel: Error: 3. Try running this in a clean environment once: -par_ksh_embed env_parallel: Error: env_parallel --record-env -par_ksh_embed env_parallel: Error: And then use '--env _' -par_ksh_embed env_parallel: Error: For details see: man env_parallel -par_ksh_embed ParsetOK -par_ksh_embed Put -par_ksh_embed your -par_ksh_embed code -par_ksh_embed here -par_ksh_embed Put your code here -par_ksh_embed You can also activate GNU Parallel for interactive use by: -par_ksh_embed . ./parallel-embed -par_fish_embed Not implemented -par_filter_hosts_parallel_not_installed bug #62672: Triggered a bug with --filter-host -par_filter_hosts_parallel_not_installed parallel: Warning: Could not figure out number of cpus on nopathbash@lo (). Using 1. -par_filter_hosts_parallel_not_installed OK -par_filter_hosts_parallel_not_installed parallel: Warning: Could not figure out number of cpus on nopathbash@lo (). Using 1. -par_filter_hosts_parallel_not_installed OK -par_env_parallel_big_env ### bug #54128: command too long when exporting big env -par_env_parallel_big_env should not fail -par_env_parallel_big_env OK -par_csh_embed Not implemented +par_PARALLEL_SSHLOGIN_SSHHOST ### bug #56554: Introduce $PARALLEL_SSHLOGIN $PARALLEL_SSHHOST +par_PARALLEL_SSHLOGIN_SSHHOST /usr/bin/ssh csh@lo /usr/bin/ssh csh@lo lo +par_PARALLEL_SSHLOGIN_SSHHOST /usr/bin/ssh csh@lo csh +par_PARALLEL_SSHLOGIN_SSHHOST /usr/bin/ssh tcsh@lo /usr/bin/ssh tcsh@lo lo +par_PARALLEL_SSHLOGIN_SSHHOST /usr/bin/ssh tcsh@lo tcsh +par_PARALLEL_SSHLOGIN_SSHHOST lo lo lo +par_PARALLEL_SSHLOGIN_SSHHOST lo tange +par_PARALLEL_SSHLOGIN_SSHHOST sh@lo sh +par_PARALLEL_SSHLOGIN_SSHHOST sh@lo sh@lo lo +par_PARALLEL_SSHLOGIN_SSHHOST zsh@lo zsh +par_PARALLEL_SSHLOGIN_SSHHOST zsh@lo zsh@lo lo +par__d_filter_hosts ### --filter-hosts and -0 +par__d_filter_hosts ### https://lists.gnu.org/archive/html/parallel/2022-07/msg00002.html +par__d_filter_hosts OKa +par__d_filter_hosts OKb +par__d_filter_hosts OKa +par__d_filter_hosts OKb +par__d_filter_hosts OKa +par__d_filter_hosts OKb +par__d_filter_hosts OKa +par__d_filter_hosts OKb +par__d_filter_hosts OKa +par__d_filter_hosts OKb +par__propagate_env ### bug #41805: Idea: propagate --env for parallel --number-of-cores +par__propagate_env ** test_zsh +par__propagate_env FOO=test_zsh +par__propagate_env HOME=~ +par__propagate_env ** test_zsh_filter +par__propagate_env FOO=test_zsh_filter +par__propagate_env HOME=~ +par__propagate_env ** test_csh +par__propagate_env MANPATH: Undefined variable. +par__propagate_env FOO=test_csh +par__propagate_env HOME=~ +par__propagate_env ** test_csh_filter +par__propagate_env MANPATH: Undefined variable. +par__propagate_env FOO=test_csh_filter +par__propagate_env HOME=~ +par__propagate_env ** bug #41805 done +par__sshlogin_range ### --sshlogin with ranges +par__sshlogin_range ### Jobs fail, but the important is the name of the hosts +par__sshlogin_range echo 1 +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a00.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a01.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a02.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a03.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a04.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a05.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a06.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a07.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a08.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a09.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a10.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a11.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on a12.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b10c1.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b10c4.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b10c6.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b11c1.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b11c4.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b11c6.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b2c1.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b2c4.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b2c6.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b3c1.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b3c4.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b3c6.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b5c1.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b5c4.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b5c6.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b7c1.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b7c4.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b7c6.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b8c1.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b8c4.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b8c6.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b9c1.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b9c4.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on b9c6.nx-dom (). Using 1. +par__sshlogin_range echo 1 +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev000.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev001.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev002.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev003.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev004.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev005.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev006.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev007.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev008.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev009.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev010.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev098.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev099.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev100.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on dev101.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod000.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod001.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod002.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod003.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod004.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod005.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod006.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod007.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod008.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod009.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod010.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod098.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod099.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod100.nx-dom (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on prod101.nx-dom (). Using 1. +par__sshlogin_range echo 1 +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip249.0.10.109 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip249.0.10.110 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip249.0.10.111 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip249.0.11.109 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip249.0.11.110 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip249.0.11.111 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip249.0.9.109 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip249.0.9.110 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip249.0.9.111 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip250.0.10.109 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip250.0.10.110 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip250.0.10.111 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip250.0.11.109 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip250.0.11.110 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip250.0.11.111 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip250.0.9.109 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip250.0.9.110 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip250.0.9.111 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip251.0.10.109 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip251.0.10.110 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip251.0.10.111 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip251.0.11.109 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip251.0.11.110 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip251.0.11.111 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip251.0.9.109 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip251.0.9.110 (). Using 1. +par__sshlogin_range parallel: Warning: Could not figure out number of cpus on ip251.0.9.111 (). Using 1. +par_ash_embed --embed +par_ash_embed Redirect the output to a file and add your changes at the end: +par_ash_embed /usr/local/bin/parallel --embed > new_script +par_ash_embed Put +par_ash_embed your +par_ash_embed code +par_ash_embed here +par_ash_embed parallel_OK +par_ash_embed env_parallel --env OK +par_ash_embed env_parallel_OK +par_ash_embed ParsetOK +par_ash_embed Put +par_ash_embed your +par_ash_embed code +par_ash_embed here +par_ash_embed Put your code here +par_ash_embed You can also activate GNU Parallel for interactive use by: +par_ash_embed . ./parallel-embed par_bash_embed --embed par_bash_embed Redirect the output to a file and add your changes at the end: par_bash_embed /usr/local/bin/parallel --embed > new_script @@ -501,58 +181,97 @@ par_bash_embed here par_bash_embed Put your code here par_bash_embed You can also activate GNU Parallel for interactive use by: par_bash_embed . ./parallel-embed -par_ash_embed --embed -par_ash_embed Redirect the output to a file and add your changes at the end: -par_ash_embed /usr/local/bin/parallel --embed > new_script -par_ash_embed Put -par_ash_embed your -par_ash_embed code -par_ash_embed here -par_ash_embed parallel_OK -par_ash_embed env_parallel --env OK -par_ash_embed env_parallel_OK -par_ash_embed ParsetOK -par_ash_embed Put -par_ash_embed your -par_ash_embed code -par_ash_embed here -par_ash_embed Put your code here -par_ash_embed You can also activate GNU Parallel for interactive use by: -par_ash_embed . ./parallel-embed -par__propagate_env ### bug #41805: Idea: propagate --env for parallel --number-of-cores -par__propagate_env ** test_zsh -par__propagate_env FOO=test_zsh -par__propagate_env HOME=~ -par__propagate_env ** test_zsh_filter -par__propagate_env FOO=test_zsh_filter -par__propagate_env HOME=~ -par__propagate_env ** test_csh -par__propagate_env FOO=test_csh -par__propagate_env HOME=~ -par__propagate_env ** test_csh_filter -par__propagate_env FOO=test_csh_filter -par__propagate_env HOME=~ -par__propagate_env ** bug #41805 done -par__d_filter_hosts ### --filter-hosts and -0 -par__d_filter_hosts ### https://lists.gnu.org/archive/html/parallel/2022-07/msg00002.html -par__d_filter_hosts OKa -par__d_filter_hosts OKb -par__d_filter_hosts OKa -par__d_filter_hosts OKb -par__d_filter_hosts OKa -par__d_filter_hosts OKb -par__d_filter_hosts OKa -par__d_filter_hosts OKb -par__d_filter_hosts OKa -par__d_filter_hosts OKb -par_PARALLEL_SSHLOGIN_SSHHOST ### bug #56554: Introduce $PARALLEL_SSHLOGIN $PARALLEL_SSHHOST -par_PARALLEL_SSHLOGIN_SSHHOST /usr/bin/ssh csh@lo /usr/bin/ssh csh@lo lo -par_PARALLEL_SSHLOGIN_SSHHOST /usr/bin/ssh csh@lo csh -par_PARALLEL_SSHLOGIN_SSHHOST /usr/bin/ssh tcsh@lo /usr/bin/ssh tcsh@lo lo -par_PARALLEL_SSHLOGIN_SSHHOST /usr/bin/ssh tcsh@lo tcsh -par_PARALLEL_SSHLOGIN_SSHHOST lo lo lo -par_PARALLEL_SSHLOGIN_SSHHOST lo tange -par_PARALLEL_SSHLOGIN_SSHHOST sh@lo sh -par_PARALLEL_SSHLOGIN_SSHHOST sh@lo sh@lo lo -par_PARALLEL_SSHLOGIN_SSHHOST zsh@lo zsh -par_PARALLEL_SSHLOGIN_SSHHOST zsh@lo zsh@lo lo +par_csh_embed Not implemented +par_env_parallel_big_env ### bug #54128: command too long when exporting big env +par_env_parallel_big_env should not fail +par_env_parallel_big_env OK +par_filter_hosts_parallel_not_installed bug #62672: Triggered a bug with --filter-host +par_filter_hosts_parallel_not_installed parallel: Warning: Could not figure out number of cpus on nopathbash@lo (). Using 1. +par_filter_hosts_parallel_not_installed OK +par_filter_hosts_parallel_not_installed parallel: Warning: Could not figure out number of cpus on nopathbash@lo (). Using 1. +par_filter_hosts_parallel_not_installed OK +par_fish_embed Not implemented +par_ksh_embed --embed +par_ksh_embed Redirect the output to a file and add your changes at the end: +par_ksh_embed /usr/local/bin/parallel --embed > new_script +par_ksh_embed Put +par_ksh_embed your +par_ksh_embed code +par_ksh_embed here +par_ksh_embed parallel_OK +par_ksh_embed env_parallel --env OK +par_ksh_embed ./parallel-embed[XXX]: perl: /usr/bin/perl: cannot execute [Argument list too long] +par_ksh_embed env_parallel: Error: Your environment is too big. +par_ksh_embed env_parallel: Error: You can try 3 different approaches: +par_ksh_embed env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_ksh_embed env_parallel: Error: variables or define functions. +par_ksh_embed env_parallel: Error: 2. Use --env and only mention the names to copy. +par_ksh_embed env_parallel: Error: 3. Try running this in a clean environment once: +par_ksh_embed env_parallel: Error: env_parallel --record-env +par_ksh_embed env_parallel: Error: And then use '--env _' +par_ksh_embed env_parallel: Error: For details see: man env_parallel +par_ksh_embed ParsetOK +par_ksh_embed Put +par_ksh_embed your +par_ksh_embed code +par_ksh_embed here +par_ksh_embed Put your code here +par_ksh_embed You can also activate GNU Parallel for interactive use by: +par_ksh_embed . ./parallel-embed +par_no_route_to_host ### no route to host with | and -j0 causes inf loop +par_no_route_to_host ssh: connect to host i.p.n.r port 22: No route to host par_no_route_to_host +par_no_route_to_host parallel: This job finished: +par_no_route_to_host raw i.p.n.r +par_no_route_to_host parallel: Warning: ssh to i.p.n.r only allows for 0 simultaneous logins. +par_no_route_to_host parallel: Warning: You may raise this by changing +par_no_route_to_host parallel: Warning: /etc/ssh/sshd_config:MaxStartups and MaxSessions on i.p.n.r. +par_no_route_to_host parallel: Warning: You can also try --sshdelay 0.1 +par_no_route_to_host parallel: Warning: Using only -1 connections to avoid race conditions. +par_no_route_to_host parallel: Error: Cannot run any jobs. +par_no_route_to_host via_parallel i.p.n.r +par_sh_embed --embed +par_sh_embed Redirect the output to a file and add your changes at the end: +par_sh_embed /usr/local/bin/parallel --embed > new_script +par_sh_embed Put +par_sh_embed your +par_sh_embed code +par_sh_embed here +par_sh_embed parallel_OK +par_sh_embed env_parallel --env OK +par_sh_embed env_parallel_OK +par_sh_embed ParsetOK +par_sh_embed Put +par_sh_embed your +par_sh_embed code +par_sh_embed here +par_sh_embed Put your code here +par_sh_embed You can also activate GNU Parallel for interactive use by: +par_sh_embed . ./parallel-embed +par_tcsh_embed Not implemented +par_zsh_embed --embed +par_zsh_embed Redirect the output to a file and add your changes at the end: +par_zsh_embed /usr/local/bin/parallel --embed > new_script +par_zsh_embed Put +par_zsh_embed your +par_zsh_embed code +par_zsh_embed here +par_zsh_embed parallel_OK +par_zsh_embed env_parallel --env OK +par_zsh_embed _which_PAR:13: argument list too long: perl +par_zsh_embed env_parallel: Error: Your environment is too big. +par_zsh_embed env_parallel: Error: You can try 3 different approaches: +par_zsh_embed env_parallel: Error: 1. Run 'env_parallel --session' before you set +par_zsh_embed env_parallel: Error: variables or define functions. +par_zsh_embed env_parallel: Error: 2. Use --env and only mention the names to copy. +par_zsh_embed env_parallel: Error: 3. Try running this in a clean environment once: +par_zsh_embed env_parallel: Error: env_parallel --record-env +par_zsh_embed env_parallel: Error: And then use '--env _' +par_zsh_embed env_parallel: Error: For details see: man env_parallel +par_zsh_embed ParsetOK +par_zsh_embed Put +par_zsh_embed your +par_zsh_embed code +par_zsh_embed here +par_zsh_embed Put your code here +par_zsh_embed You can also activate GNU Parallel for interactive use by: +par_zsh_embed . ./parallel-embed diff --git a/testsuite/wanted-results/parallel-remote1 b/testsuite/wanted-results/parallel-remote1 index f03624cd..49e385d0 100644 --- a/testsuite/wanted-results/parallel-remote1 +++ b/testsuite/wanted-results/parallel-remote1 @@ -115,8 +115,8 @@ par_special_ssh 98 par_special_ssh 99 par_special_ssh 100 par_timeout_retries ### test --timeout --retries -par_timeout_retries ssh: connect to host 192.168.1.197 port 22: No route to host par_timeout_retries par_timeout_retries parallel: Warning: This job was killed because it timed out: +par_timeout_retries parallel: Warning: ssh 192.168.1.197 echo 192.168.1.197 par_timeout_retries parallel: Warning: ssh 8.8.8.8 echo 8.8.8.8 par_timeout_retries vagrant@parallel-server1 par_timeout_retries vagrant@parallel-server2 diff --git a/testsuite/wanted-results/parallel-tutorial b/testsuite/wanted-results/parallel-tutorial index 0f908494..93e4051e 100644 --- a/testsuite/wanted-results/parallel-tutorial +++ b/testsuite/wanted-results/parallel-tutorial @@ -499,7 +499,8 @@ Computer:jobs running/jobs completed/%of started jobs/Average seconds to complet seq 1000 | parallel -j10 --bar '(echo -n {};sleep 0.1)' \ 2> >(perl -pe 'BEGIN{$/="\r";$|=1};s/\r/\n/g' | zenity --timeout=15 --progress --auto-kill --auto-close) -BASE64--joblog /tmp/log exit ::: 1 2 3 0 + + parallel --joblog /tmp/log exit ::: 1 2 3 0 cat /tmp/log; parallel --joblog /tmp/log exit ::: 1 2 3 0 cat /tmp/log; parallel --resume --joblog /tmp/log exit ::: 1 2 3 0 0 0 @@ -664,8 +665,9 @@ Unknown option: parallel@lo Unknown option: myecho $myvar Unknown option: ::: Unknown option: green +You have called the dummy script "env_parallel". env_parallel only works if it is a function. -Do this and restart your shell: +You need to do this and restart your shell: bash: Put this in $HOME/.bashrc: . env_parallel.bash E.g. by doing: echo '. env_parallel.bash' >> $HOME/.bashrc Supports: variables, aliases, functions, arrays @@ -752,8 +754,9 @@ Unknown option: parallel@lo Unknown option: echo $NOT; not_ex Unknown option: ::: Unknown option: bar +You have called the dummy script "env_parallel". env_parallel only works if it is a function. -Do this and restart your shell: +You need to do this and restart your shell: bash: Put this in $HOME/.bashrc: . env_parallel.bash E.g. by doing: echo '. env_parallel.bash' >> $HOME/.bashrc Supports: variables, aliases, functions, arrays diff --git a/testsuite/wanted-results/sql01 b/testsuite/wanted-results/sql01 index eb4cf26b..c06520c7 100644 --- a/testsuite/wanted-results/sql01 +++ b/testsuite/wanted-results/sql01 @@ -53,16 +53,16 @@ par_-r Is the server running on that host and accepting TCP/IP connections? par_-r [ | psql -h 127.0.0.3 -U nongood -p 2227 -d nongood] par_-r psql: error: connection to server at "127.0.0.3", port 2227 failed: Connection refused par_-r Is the server running on that host and accepting TCP/IP connections? -par__listproc ### Test --show-processlist|proclist|listproc -par__listproc 2 17 -par__listproc 2 17 -par__listproc 2 17 par_dbsize ### Test --db-size --dbsize par_dbsize 6 par_dbsize 6 par_dburl_user_password_host_port ### Test dburl with username password host port par_dburl_user_password_host_port Test dburl with username password host port par_dburl_user_password_host_port OK +par_listproc ### Test --show-processlist|proclist|listproc +par_listproc 2 17 +par_listproc 2 17 +par_listproc 2 17 par_noheaders ### Test --noheaders --no-headers -n par_noheaders abc 1 par_noheaders def 3 @@ -89,5 +89,5 @@ par_sql_on_cmdline ### Test reading sql on command line par_sql_on_cmdline Test reading SQL from command line par_sql_on_cmdline Yes it does par_tablesize ### Test --table-size --tablesize -par_tablesize 94 -par_tablesize 94 +par_tablesize 93 +par_tablesize 93 diff --git a/testsuite/wanted-results/test21 b/testsuite/wanted-results/test21 index 22e15cbd..ea18f2f9 100644 --- a/testsuite/wanted-results/test21 +++ b/testsuite/wanted-results/test21 @@ -4,27 +4,27 @@ 1 1 centos8.localdomain -freebsd12.localdomain +freebsd14.localdomain hostname; echo 1 hostname; echo 1 ### Test $PARALLEL - multi line 1 1 centos8.localdomain -freebsd12.localdomain +freebsd14.localdomain hostname; echo 1 hostname; echo 1 ### Test ~/.parallel/config - single line 1 1 centos8.localdomain -freebsd12.localdomain +freebsd14.localdomain hostname; echo 1 hostname; echo 1 ### Test ~/.parallel/config - multi line 1 1 centos8.localdomain -freebsd12.localdomain +freebsd14.localdomain hostname; echo 1 hostname; echo 1