echo '### --hostgroup force ncpu' ### --hostgroup force ncpu parallel --delay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.4{} ::: {1..8} | sort parallel parallel tange tange tange tange tange tange echo '### --hostgroup two group arg' ### --hostgroup two group arg parallel -k --sshdelay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.3{} ::: {1..8}@g1+g2 | sort parallel parallel tange tange tange tange tange tange echo '### --hostgroup one group arg' ### --hostgroup one group arg parallel --delay 0.1 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.2{} ::: {1..8}@g2 tange tange tange tange tange tange tange tange echo '### --hostgroup multiple group arg + unused group' ### --hostgroup multiple group arg + unused group parallel --delay 0.1 --hgrp -S @g1/1/parallel@lo -S @g1/3/lo -S @g3/100/tcsh@lo whoami\;sleep 0.4{} ::: {1..8}@g1+g2 | sort parallel parallel tange tange tange tange tange tange echo '### --hostgroup two groups @' ### --hostgroup two groups @ parallel -k --hgrp -S @g1/parallel@lo -S @g2/lo --tag whoami\;echo ::: parallel@g1 tange@g2 parallel parallel parallel parallel tange tange tange tange echo '### --hostgroup' ### --hostgroup parallel -k --hostgroup -S @grp1/lo echo ::: no_group explicit_group@grp1 implicit_group@lo no_group explicit_group implicit_group echo '### --hostgroup --sshlogin with @' ### --hostgroup --sshlogin with @ parallel -k --hostgroups -S parallel@lo echo ::: no_group implicit_group@parallel@lo no_group implicit_group echo '### --hostgroup -S @group' ### --hostgroup -S @group parallel -S @g1/ -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo whoami\;true ::: {1..6} | sort tange tange tange tcsh tcsh tcsh echo '### --hostgroup -S @group1 -Sgrp2' ### --hostgroup -S @group1 -Sgrp2 parallel -S @g1/ -S @g2 -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo whoami\;true ::: {1..6} | sort parallel parallel tange tange tcsh tcsh echo '### --hostgroup -S @group1+grp2' ### --hostgroup -S @group1+grp2 parallel -S @g1+g2 -S @g1/1/tcsh@lo -S @g1/1/localhost -S @g2/1/parallel@lo whoami\;true ::: {1..6} | sort parallel parallel tange tange tcsh tcsh echo '### trailing space in sshlogin' ### trailing space in sshlogin echo 'sshlogin trailing space' | parallel --sshlogin "ssh -l parallel localhost " echo sshlogin trailing space echo '### Special char file and dir transfer return and cleanup' ### Special char file and dir transfer return and cleanup cd /tmp; mkdir -p d"`perl -e 'print pack("c*",1..9,11..46,48..255)'`"; echo local > d"`perl -e 'print pack("c*",1..9,11..46,48..255)'`"/f"`perl -e 'print pack("c*",1..9,11..46,48..255)'`"; ssh parallel@lo rm -rf d'*'/; mytouch() { cat d"`perl -e 'print pack("c*",1..9,11..46,48..255)'`"/f"`perl -e 'print pack("c*",1..9,11..46,48..255)'`" > d"`perl -e 'print pack("c*",1..9,11..46,48..255)'`"/g"`perl -e 'print pack("c*",1..9,11..46,48..255)'`"; echo remote OK >> d"`perl -e 'print pack("c*",1..9,11..46,48..255)'`"/g"`perl -e 'print pack("c*",1..9,11..46,48..255)'`"; }; export -f mytouch; parallel --env mytouch -Sparallel@lo --transfer --return {=s:/f:/g:=} mytouch ::: d"`perl -e 'print pack("c*",1..9,11..46,48..255)'`"/f"`perl -e 'print pack("c*",1..9,11..46,48..255)'`"; cat d"`perl -e 'print pack("c*",1..9,11..46,48..255)'`"/g"`perl -e 'print pack("c*",1..9,11..46,48..255)'`" local remote OK echo '### Uniq {=perlexpr=} in return - not used in command' ### Uniq {=perlexpr=} in return - not used in command cd /tmp; rm -f /tmp/parallel_perlexpr.2Parallel_PerlexPr; echo local > parallel_perlexpr; parallel -Sparallel@lo --trc {=s/pr/pr.2/=}{=s/p/P/g=} echo remote OK '>' {}.2{=s/p/P/g=} ::: parallel_perlexpr; cat /tmp/parallel_perlexpr.2Parallel_PerlexPr; rm -f /tmp/parallel_perlexpr.2Parallel_PerlexPr /tmp/parallel_perlexpr remote OK # Should be changed to --return '{=s:/f:/g:=}' and tested with csh - is error code kept? echo '### functions and --nice' ### functions and --nice myfunc() { echo OK $*; }; export -f myfunc; parallel --nice 10 --env myfunc -S parallel@lo myfunc ::: func OK func echo '### bug #45906: {= in header =}' ### bug #45906: {= in header =} rm -f returnfile45906; parallel --rpl '{G} $_=lc($_)' -S parallel@lo --return {G} --cleanup echo {G} '>' {G} ::: RETURNFILE45906; ls returnfile45906 returnfile45906 echo '### bug #45907: --header : + --return {header}' ### bug #45907: --header : + --return {header} rm returnfile45907; ppar --header : -S parallel@lo --return {G} --cleanup echo {G} '>' {G} ::: G returnfile45907; ls returnfile45907 returnfile45907 echo "### bug #47608: parallel --nonall -S lo 'echo ::: ' blocks" ### bug #47608: parallel --nonall -S lo 'echo ::: ' blocks parallel --nonall -S lo 'echo ::: ' ::: echo '### exported function to csh but with PARALLEL_SHELL=bash' ### exported function to csh but with PARALLEL_SHELL=bash doit() { echo "$1"; }; export -f doit; stdout parallel --env doit -S csh@lo doit ::: not_OK; PARALLEL_SHELL=bash parallel --env doit -S csh@lo doit ::: OK CSH/TCSH DO NOT SUPPORT newlines IN VARIABLES/FUNCTIONS. Unset doit OK bug #47695: How to set $PATH on remote? Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 0 updates are security updates. BASH Path before: /bin:/usr/bin with no parallel -bash: line 2: parallel: command not found ^^^^^^^^ Not found is OK /bin:/usr/bin:/tmp OK Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 0 updates are security updates. Warning: no access to tty (Bad file descriptor). Thus no job control in this shell. CSH Path before: /bin:/usr/bin with no parallel parallel: Command not found. ^^^^^^^^ Not found is OK parallel: Warning: Removed lo. parallel: Error: There are no hosts left to run on.