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.2 --hgrp -S @g1/1/parallel@lo -S @g2/3/lo whoami\;sleep 0.4{} ::: {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.2 --hgrp -S @g1/1/parallel@lo -S @g1/3/lo -S @g3/100/tcsh@lo whoami\;sleep 0.8{} ::: {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 echo '### bug #49404: "Max jobs to run" does not equal the number of jobs specified when using GNU Parallel on remote server?' ### bug #49404: "Max jobs to run" does not equal the number of jobs specified when using GNU Parallel on remote server? echo should give 10 running jobs should give 10 running jobs stdout parallel -S 16/lo --progress true ::: {1..10} | grep /.10 1:lo / 16 / 10 par_quoting_for_onall ### bug #35427: quoting of {2} broken for --onall par_quoting_for_onall /bin/ls par_return_with_fixedstring ### Test --return with fixed string (Gave undef warnings) par_return_with_fixedstring OK par_trc_with_space ### Test --trc with space added in filename par_trc_with_space original par_trc_with_special_chars ### Test --trc with >|< added in filename par_trc_with_special_chars original