echo '### Test of xargs -m command lines > 130k'; seq 1 60000 | parallel -m -j1 echo a{}b{}c | tee >(wc >/tmp/awc$$) >(sort | md5sum) >/tmp/a$$; wait; CHAR=$(cat /tmp/a$$ | wc -c); LINES=$(cat /tmp/a$$ | wc -l); echo "Chars per line:" $(echo "$CHAR/$LINES" | bc); cat /tmp/awc$$; rm /tmp/a$$ /tmp/awc$$ ### Test of xargs -m command lines > 130k a3c892de2524f32f78550b47336eadd0 - Chars per line: 63437 11 119989 697810 echo '### Test of xargs -X command lines > 130k'; seq 1 60000 | parallel -X -j1 echo a{}b{}c | tee >(wc >/tmp/bwc$$) >(sort | (sleep 1; md5sum)) >/tmp/b$$; wait; CHAR=$(cat /tmp/b$$ | wc -c); LINES=$(cat /tmp/b$$ | wc -l); echo "Chars per line:" $(echo "$CHAR/$LINES" | bc); cat /tmp/bwc$$; rm /tmp/b$$ /tmp/bwc$$ ### Test of xargs -X command lines > 130k a98747678a5d18c4470a073812437ab2 - Chars per line: 62906 13 60000 817788 echo '### Test of xargs -m command lines > 130k'; seq 1 60000 | parallel -k -j1 -m echo | md5sum ### Test of xargs -m command lines > 130k ba869d577103ef0cc6b6045c2a618c43 - echo '### This causes problems if we kill child processes'; # 2>/dev/null to avoid parallel: Warning: Starting 45 processes took > 2 sec. ### This causes problems if we kill child processes seq 2 40 | parallel -j 0 seq 1 10 2>/dev/null | sort | md5sum 437c0d47a99b9a7c5bcb1d132f94c2e6 - echo '### This causes problems if we kill child processes (II)'; # 2>/dev/null to avoid parallel: Warning: Starting 45 processes took > 2 sec. ### This causes problems if we kill child processes (II) seq 1 40 | parallel -j 0 seq 1 10 '| parallel -j 3 echo' 2>/dev/null | LC_ALL=C sort | md5sum d7fb96d6a56d4347bc24930a395c431a - echo '### Test -m'; (echo foo;echo bar) | parallel -j1 -m echo 1{}2{}3 A{}B{}C ### Test -m 1foo bar2foo bar3 Afoo barBfoo barC echo '### Test -X'; (echo foo;echo bar) | parallel -j1 -X echo 1{}2{}3 A{}B{}C ### Test -X 1foo2foo3 1bar2bar3 AfooBfooC AbarBbarC echo '### Bug before 2009-08-26 causing regexp compile error or infinite loop'; echo a | parallel -qX echo "'"{}"' " ### Bug before 2009-08-26 causing regexp compile error or infinite loop 'a' echo '### Bug before 2009-08-26 causing regexp compile error or infinite loop (II)'; echo a | parallel -qX echo "'{}'" ### Bug before 2009-08-26 causing regexp compile error or infinite loop (II) 'a' echo '### bug #42041: Implement $PARALLEL_JOBSLOT' ### bug #42041: Implement $PARALLEL_JOBSLOT parallel -k --slotreplace // -j2 sleep 1\;echo // ::: {1..4} | sort 1 1 2 2 parallel -k -j2 sleep 1\;echo {%} ::: {1..4} | sort 1 1 2 2 echo '### bug #42363: --pipepart and --fifo/--cat does not work' ### bug #42363: --pipepart and --fifo/--cat does not work seq 100 > /tmp/bug42363; parallel --pipepart --block 31 -a /tmp/bug42363 -k --fifo wc | perl -pe 's:(/tmp.*par).....:${1}XXXXX:'; parallel --pipepart --block 31 -a /tmp/bug42363 -k --cat wc | perl -pe 's:(/tmp.*par).....:${1}XXXXX:'; rm /tmp/bug42363 14 14 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 9 9 28 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 14 14 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 11 11 33 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' 9 9 28 '/tmp/parallel-local22-tmp/'$'\n'' `touch /tmp/tripwire` <"'\''/tmp/parXXXXX' echo '### bug #42055: --pipepart -a bigfile should not require sequential reading of bigfile' ### bug #42055: --pipepart -a bigfile should not require sequential reading of bigfile parallel --pipepart -a /etc/passwd -L 1 should not be run parallel: Error: --pipepart is incompatible with --max-replace-args, --max-lines, and -L. parallel --pipepart -a /etc/passwd -N 1 should not be run parallel: Error: --pipepart is incompatible with --max-replace-args, --max-lines, and -L. parallel --pipepart -a /etc/passwd -l 1 should not be run parallel: Error: --pipepart is incompatible with --max-replace-args, --max-lines, and -L. echo '### bug #42893: --block should not cause decimals in cat_partial' ### bug #42893: --block should not cause decimals in cat_partial seq 100000 >/tmp/parallel-decimal; parallel --dry-run -kvv --pipepart --block 0.12345M -a /tmp/parallel-decimal true; rm /tmp/parallel-decimal 32767?32767:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 0 129450 |(true) 32767?32767:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 129450 129450 |(true) 32767?32767:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 258900 129450 |(true) 32767?32767:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 388350 129450 |(true) 32767?32767:$left)){$left-=$read;syswrite(STDOUT,$buf);}}' 0 0 517800 71095 |(true) echo '### bug #42892: parallel -a nonexiting --pipepart' ### bug #42892: parallel -a nonexiting --pipepart parallel --pipepart -a nonexisting wc parallel: Error: File not found: nonexisting echo '### added transfersize/returnsize to local jobs' ### added transfersize/returnsize to local jobs echo '### normal' ### normal seq 100 111 | parallel --joblog /dev/stderr seq {} '|' pv -qL100 2>&1 >/dev/null | cut -f 5-7 | sort 0 292 0 0 296 0 0 300 0 0 304 0 0 308 0 0 312 0 0 316 0 0 320 0 0 324 0 0 328 0 0 332 0 0 336 0 Send Receive Exitval echo '### --line-buffer' ### --line-buffer seq 100 111 | parallel --joblog /dev/stderr --line-buffer seq {} '|' pv -qL100 2>&1 >/dev/null | cut -f 5-7 | sort 0 292 0 0 296 0 0 300 0 0 304 0 0 308 0 0 312 0 0 316 0 0 320 0 0 324 0 0 328 0 0 332 0 0 336 0 Send Receive Exitval echo '### --tag' ### --tag seq 100 111 | parallel --tag --joblog /dev/stderr seq {} '|' pv -qL100 2>&1 >/dev/null | cut -f 5-7 | sort 0 292 0 0 296 0 0 300 0 0 304 0 0 308 0 0 312 0 0 316 0 0 320 0 0 324 0 0 328 0 0 332 0 0 336 0 Send Receive Exitval echo '### --tag --line-buffer' ### --tag --line-buffer seq 100 111 | parallel --tag --line-buffer --joblog /dev/stderr seq {} '|' pv -qL100 2>&1 >/dev/null | cut -f 5-7 | sort 0 292 0 0 296 0 0 300 0 0 304 0 0 308 0 0 312 0 0 316 0 0 320 0 0 324 0 0 328 0 0 332 0 0 336 0 Send Receive Exitval echo '### --files' ### --files seq 100 111 | parallel --files --joblog /dev/stderr seq {} '|' pv -qL100 2>&1 >/dev/null | cut -f 5-7 | sort 0 292 0 0 296 0 0 300 0 0 304 0 0 308 0 0 312 0 0 316 0 0 320 0 0 324 0 0 328 0 0 332 0 0 336 0 Send Receive Exitval parallel: Warning: --files do not work if $TMPDIR contains newline. echo '### --files --tag' ### --files --tag seq 100 111 | parallel --files --tag --joblog /dev/stderr seq {} '|' pv -qL100 2>&1 >/dev/null | cut -f 5-7 | sort 0 292 0 0 296 0 0 300 0 0 304 0 0 308 0 0 312 0 0 316 0 0 320 0 0 324 0 0 328 0 0 332 0 0 336 0 Send Receive Exitval parallel: Warning: --files do not work if $TMPDIR contains newline. echo '### --pipe' ### --pipe seq 1000 | parallel --joblog /dev/stderr --block 1111 --pipe pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort 1108 1108 0 1108 1108 0 1108 1108 0 569 569 0 Send Receive Exitval echo '### --pipe --line-buffer' ### --pipe --line-buffer seq 1000 | parallel --joblog /dev/stderr --block 1111 --pipe --line-buffer pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort 1108 1108 0 1108 1108 0 1108 1108 0 569 569 0 Send Receive Exitval echo '### --pipe --tag' ### --pipe --tag seq 1000 | parallel --joblog /dev/stderr --block 1111 --pipe --tag pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort 1108 1108 0 1108 1108 0 1108 1108 0 569 569 0 Send Receive Exitval echo '### --pipe --tag --line-buffer' ### --pipe --tag --line-buffer seq 1000 | parallel --joblog /dev/stderr --block 1111 --pipe --tag --line-buffer pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort 1108 1108 0 1108 1108 0 1108 1108 0 569 569 0 Send Receive Exitval echo '### --files --pipe' ### --files --pipe seq 1000 | parallel --joblog /dev/stderr --block 1111 --files --pipe pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort 1108 1108 0 1108 1108 0 1108 1108 0 569 569 0 Send Receive Exitval parallel: Warning: --files do not work if $TMPDIR contains newline. echo '### --files --pipe --tag' ### --files --pipe --tag seq 1000 | parallel --joblog /dev/stderr --block 1111 --files --pipe --tag pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort 1108 1108 0 1108 1108 0 1108 1108 0 569 569 0 Send Receive Exitval parallel: Warning: --files do not work if $TMPDIR contains newline. echo '### --pipe --round-robin' ### --pipe --round-robin seq 1000 | parallel --joblog /dev/stderr --block 1111 -j2 --pipe --round-robin pv -qL300 2>&1 >/dev/null | cut -f 5-7 | sort 1677 1677 0 2216 2216 0 Send Receive Exitval