diff --git a/doc/release_new_version b/doc/release_new_version index 18f2697c..b9d3c325 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -220,6 +220,8 @@ Quote of the month: New in this release: +* GNU Parallel now includes a cheat sheet: + https://calendar.colorado.edu/event/high_throughput_computing_on_rmacc_summit_and_beyond#.XH2NBhB7mV4 https://www.cheatography.com/cpriest/cheat-sheets/gnu-parallel/ diff --git a/src/parallel_cheat.fodt b/src/parallel_cheat.fodt new file mode 100644 index 00000000..fab12cce --- /dev/null +++ b/src/parallel_cheat.fodt @@ -0,0 +1,965 @@ + + + + 2019-02-27T22:13:36.7819247182019-03-04T21:52:31.122787645P4DT21H57M39S25LibreOffice/6.0.6.2$Linux_X86_64 LibreOffice_project/00m0$Build-22019-03-04T02:37:46.666605685 + + + 471 + 0 + 22287 + 10515 + true + false + + + view2 + 8511 + 2536 + 0 + 471 + 22285 + 10984 + 0 + 1 + false + 250 + false + false + + + + + false + + false + false + false + false + false + true + false + true + true + false + lwH+/1hlcm94X1BoYXNlcl82MTQwRE4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpYZXJveF9QaGFzZXJfNjE0MEROAAAAAAAAAAAWAAMAuAAAAAAAAAAEAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9WGVyb3hfUGhhc2VyXzYxNDBETgpvcmllbnRhdGlvbj1Qb3J0cmFpdApjb3BpZXM9MQpjb2xsYXRlPWZhbHNlCm1hcmdpbmRhanVzdG1lbnQ9MCwwLDAsMApjb2xvcmRlcHRoPTI0CnBzbGV2ZWw9MApwZGZkZXZpY2U9MQpjb2xvcmRldmljZT0wClBQRENvbnRleERhdGEKUGFnZVNpemU6QTQAABIAQ09NUEFUX0RVUExFWF9NT0RFDwBEdXBsZXhNb2RlOjpPZmY= + true + + false + false + true + false + true + false + 816919 + false + false + true + false + false + true + true + true + true + true + true + false + false + 1 + false + true + false + + false + false + Xerox_Phaser_6140DN + false + false + false + + false + 0 + false + + 0 + true + false + false + false + false + false + true + false + false + false + true + 1506730 + true + false + false + false + high-resolution + true + true + true + false + false + false + false + false + false + false + false + false + true + false + 0 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GNU Parallel Cheat Sheet + + + + + GNU Parallel is a replacement for xargs, and for loops. It can also split a file or a stream into blocks and pass those to commands running in parallel. + + + + + + + + + Examples + + + + + Compress all *.html files in parallel – 2 per CPU threadparallel --jobs 200% gzip ::: *.html + + + + + Convert all *.wav to *.mp3 using lameparallel lame {} -o {.}.mp3 ::: *.wav + + + + + Chop bigfile into 1MB blocks and grep for the string foobarcat bigfile | parallel --pipe grep foobar + + + + + + + + + Input sources + + + + + parallel echo ::: cmd line input source + + + + + cat input_from_stdin | parallel echo + + + + + parallel echo ::: multiple input ::: source values + + + + + parallel -a input_from_file echo + + + + + parallel echo :::: input_from_file + + + + + parallel echo :::: input_from_file ::: and command line + + + + + + + + + + Replacement string + + + Value + + + + + {} + + + mydir/mysubdir/myfile.myext + + + + + {.} + + + mydir/mysubdir/myfile + + + + + {/}, {//}, {/.} + + + myfile.myext, mydir/mysubdir, myfile + + + + + {#} + + + The sequence number of the job + + + + + {%} + + + The job slot number + + + + + {2} + + + Value from the second input source + + + + + {2.} {2/} {2//} {2/.} + + + Combination of {2} and {.} {/} {//} {/.} + + + + + {= perl expression =} + + + Change $_ with perl expression + + + + + + + + + Control the output – keep the order the same as the input + + + + + parallel --keep-order "sleep {}; echo {}" ::: 5 4 3 2 1 + + + + + + + + + Control the execution + + + + + Run 2 jobs in parallel + parallel --jobs 2 "sleep {}; echo {}" ::: 5 4 3 2 1 + + + + + See what will be run + parallel --dryrun echo ::: Red Green Blue ::: S M L + + + + + + + + + Remote execution + + + + + parallel -S server1 -S server2 "hostname; echo {}" ::: foo bar + + + + + + + + + Pipe mode + + + + + cat bigfile | parallel --pipe wc -l + + + + + Chop bigfile into one block per CPU thread and grep for foobarparallel -a bigfile --pipepart --block -1 grep foobar + + + + + + + + + Read more – Your command line will love you for it + + + + + parallel --help; man parallel; man parallel_tutorial + + + + + GNU Parallel 2018 https://doi.org/10.5281/zenodo.1146014 + + + + + + + + + + \ No newline at end of file