diff --git a/NEWS b/NEWS index c1081ff2..6be5a769 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,85 @@ +20170522 + +* --timeout can now use s=second,m=minute,h=hour,d=day. + +* --dr is now an alias for --dry-run. + +* Vote for GNU Parallel's community ads on + http://meta.unix.stackexchange.com/a/4356/2972 + http://meta.askubuntu.com/a/16750/22307 + http://meta.serverfault.com/a/9040/45704 + +* GNU Parallel was cited in: Feature Detection in Visual Cortex during + Different Functional States + https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5397493/ + +* GNU Parallel was cited in: From genotype to phenotype: inferring + relationships between microbial traits and genomic components + https://docserv.uni-duesseldorf.de/servlets/DerivateServlet/Derivate-44622/main.pdf + +* GNU Parallel was cited in: Designing fecal microbiota transplant + trials that account for differences in donor stool efficacy + http://biorxiv.org/content/biorxiv/early/2016/07/25/065383.full.pdf + +* GNU Parallel was cited in: Assessing the predictability of + anharmonic vibrational modes at the example of hydroxyl groups - ad + hoc construction of localised modes and the influence of structural + solute–solvent motifs + http://pubs.rsc.org/-/content/articlelanding/2017/cp/c7cp01662j#!divAbstract + +* GNU Parallel was cited in: Mapping Environmental Influences on + Utility Fire Threat + ftp://frapftp.fire.ca.gov/outgoing/transfer/PUC_Map1/Utility%20Fire%20map%201%20final%20review%20and%20development%20report21616.pdf + +* GNU Parallel was cited in: Weak vs. Strong Disorder Superfluid-Bose + Glass Transition in One Dimension + https://arxiv.org/pdf/1704.02257.pdf + +* GNU Parallel was cited in: Online Automatic Post-editing for MT in a + Multi-Domain Translation Environment + https://www.aclweb.org/anthology/E/E17/E17-1050.pdf + +* GNU Parallel was cited in: Cross-calibration of S-NPP VIIRS + moderate-resolution reflective solar bands against MODIS Aqua over + dark water scenes + http://www.atmos-meas-tech.net/10/1425/2017/amt-10-1425-2017.pdf + +* GNU Parallel was cited in: Scattering Networks: Efficient 2D + Implementation And Application To Melanoma Classification + http://amslaurea.unibo.it/12261/1/nurrito_eugenio_tesi_fisica_magistrale.pdf + +* GNU Parallel was cited in: Genome-scale detection of positive + selection in 9 primates predicts human-virus evolutionary conflicts + http://biorxiv.org/content/biorxiv/early/2017/04/27/131680.full.pdf + +* GNU Parallel is used in: Creates a speech dataset for deep learning + https://github.com/jupiter126/Create_Speech_Dataset + +* GNU Parallel is used in: Parse and process the demixing secrets + dataset (DSD100) https://github.com/faroit/dsdtools + +* First glance at the gnu parallel utility + https://ibiscybernetics.com/blog/2017-04-05.html + +* Installing parallel from source + https://bitsanddragons.wordpress.com/2017/05/03/installing-parallel-from-source/ + +* How to run command or code in parallel in bash shell under Linux or + Unix + https://www.cyberciti.biz/faq/how-to-run-command-or-code-in-parallel-in-bash-shell-under-linux-or-unix/ + +* Parallel Serial Jobs Using GNU Parallel + http://www.hpc.lsu.edu/training/weekly-materials/2017-Spring/gnuparallel-Feb2017.pdf + +* GNU Parallel or How to list millions of S3 objects + https://joeray.me/gnu-parallel-how-to-list-millions-objects.html + +* Which Is the Best Tool for Copying a Large Directory Tree Locally? + http://arjon.es/2017/05/11/which-is-the-best-tool-for-copying-a-large-directory-tree-locally/ + +* Bug fixes and man page updates. + + 20170422 * --halt supports done in addition to success and fail. diff --git a/README b/README index 003e969c..1dd9b512 100644 --- a/README +++ b/README @@ -44,9 +44,9 @@ document. Full installation of GNU Parallel is as simple as: - wget http://ftpmirror.gnu.org/parallel/parallel-20170422.tar.bz2 - bzip2 -dc parallel-20170422.tar.bz2 | tar xvf - - cd parallel-20170422 + wget http://ftpmirror.gnu.org/parallel/parallel-20170522.tar.bz2 + bzip2 -dc parallel-20170522.tar.bz2 | tar xvf - + cd parallel-20170522 ./configure && make && sudo make install @@ -55,9 +55,9 @@ Full installation of GNU Parallel is as simple as: If you are not root you can add ~/bin to your path and install in ~/bin and ~/share: - wget http://ftpmirror.gnu.org/parallel/parallel-20170422.tar.bz2 - bzip2 -dc parallel-20170422.tar.bz2 | tar xvf - - cd parallel-20170422 + wget http://ftpmirror.gnu.org/parallel/parallel-20170522.tar.bz2 + bzip2 -dc parallel-20170522.tar.bz2 | tar xvf - + cd parallel-20170522 ./configure --prefix=$HOME && make && make install Or if your system lacks 'make' you can simply copy src/parallel diff --git a/configure b/configure index 7c13e46a..bc68d67b 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for parallel 20170422. +# Generated by GNU Autoconf 2.69 for parallel 20170522. # # Report bugs to . # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='parallel' PACKAGE_TARNAME='parallel' -PACKAGE_VERSION='20170422' -PACKAGE_STRING='parallel 20170422' +PACKAGE_VERSION='20170522' +PACKAGE_STRING='parallel 20170522' PACKAGE_BUGREPORT='bug-parallel@gnu.org' PACKAGE_URL='' @@ -1214,7 +1214,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures parallel 20170422 to adapt to many kinds of systems. +\`configure' configures parallel 20170522 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1281,7 +1281,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of parallel 20170422:";; + short | recursive ) echo "Configuration of parallel 20170522:";; esac cat <<\_ACEOF @@ -1357,7 +1357,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -parallel configure 20170422 +parallel configure 20170522 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1374,7 +1374,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by parallel $as_me 20170422, which was +It was created by parallel $as_me 20170522, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2237,7 +2237,7 @@ fi # Define the identity of the package. PACKAGE='parallel' - VERSION='20170422' + VERSION='20170522' cat >>confdefs.h <<_ACEOF @@ -2880,7 +2880,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by parallel $as_me 20170422, which was +This file was extended by parallel $as_me 20170522, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -2942,7 +2942,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -parallel config.status 20170422 +parallel config.status 20170522 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 914ab78e..b62c7349 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([parallel], [20170422], [bug-parallel@gnu.org]) +AC_INIT([parallel], [20170522], [bug-parallel@gnu.org]) AM_INIT_AUTOMAKE([-Wall -Werror foreign]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([ diff --git a/doc/release_new_version b/doc/release_new_version index f78ae7ea..97ec9d8c 100644 --- a/doc/release_new_version +++ b/doc/release_new_version @@ -196,100 +196,106 @@ file:///home/tange/privat/parallel/doc/release_new_version from:tange@gnu.org to:parallel@gnu.org, bug-parallel@gnu.org -Subject: GNU Parallel 20170522 ('Macron') released <<[stable]>> +Subject: GNU Parallel 20170522 ('Macron') released [stable] -GNU Parallel 20170522 ('Macron') <<[stable]>> has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ +GNU Parallel 20170522 ('Macron') [stable] has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/ -<> +Very little new functionality was introduced so this is a good candidate for a stable release.>> Haiku of the month: - <<>> - -- Ole Tange + Always test your script + using a --dry-run + or --dr + -- Ole Tange New in this release: -* Vote for GNU Parallel's community ads on - http://meta.unix.stackexchange.com/a/4356/2972 - http://meta.askubuntu.com/a/16750/22307 - http://meta.serverfault.com/a/9040/45704 +* --timeout can now use s=second,m=minute,h=hour,d=day. -http://journal.frontiersin.org/article/10.3389/fncom.2017.00021/full#B18 +* --dr is now an alias for --dry-run. -https://www.cyberciti.biz/faq/how-to-run-command-or-code-in-parallel-in-bash-shell-under-linux-or-unix/ +* Vote for GNU Parallel's community ads on http://meta.unix.stackexchange.com/a/4356/2972 http://meta.askubuntu.com/a/16750/22307 http://meta.serverfault.com/a/9040/45704 -https://github.com/jupiter126/Create_Speech_Dataset +* GNU Parallel was cited in: Feature Detection in Visual Cortex during Different Functional States https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5397493/ -http://pubs.rsc.org/-/content/articlelanding/2017/cp/c7cp01662j#!divAbstract +* GNU Parallel was cited in: From genotype to phenotype: inferring relationships between microbial traits and genomic components https://docserv.uni-duesseldorf.de/servlets/DerivateServlet/Derivate-44622/main.pdf -http://www.hpc.lsu.edu/training/weekly-materials/2017-Spring/gnuparallel-Feb2017.pdf +* GNU Parallel was cited in: Designing fecal microbiota transplant trials that account for differences in donor stool efficacy http://biorxiv.org/content/biorxiv/early/2016/07/25/065383.full.pdf -https://joeray.me/gnu-parallel-how-to-list-millions-objects.html +* GNU Parallel was cited in: Assessing the predictability of anharmonic vibrational modes at the example of hydroxyl groups - ad hoc construction of localised modes and the influence of structural solute–solvent motifs http://pubs.rsc.org/-/content/articlelanding/2017/cp/c7cp01662j#!divAbstract -http://amedee.me/gnu-parallel-is-my-new-toaster/index.html +* GNU Parallel was cited in: Mapping Environmental Influences on Utility Fire Threat ftp://frapftp.fire.ca.gov/outgoing/transfer/PUC_Map1/Utility%20Fire%20map%201%20final%20review%20and%20development%20report21616.pdf -http://arjon.es/2017/05/11/which-is-the-best-tool-for-copying-a-large-directory-tree-locally/ +* GNU Parallel was cited in: Weak vs. Strong Disorder Superfluid-Bose Glass Transition in One Dimension https://arxiv.org/pdf/1704.02257.pdf -https://github.com/faroit/dsdtools +* GNU Parallel was cited in: Online Automatic Post-editing for MT in a Multi-Domain Translation Environment https://www.aclweb.org/anthology/E/E17/E17-1050.pdf -ftp://frapftp.fire.ca.gov/outgoing/transfer/PUC_Map1/Utility%20Fire%20map%201%20final%20review%20and%20development%20report21616.pdf +* GNU Parallel was cited in: Cross-calibration of S-NPP VIIRS moderate-resolution reflective solar bands against MODIS Aqua over dark water scenes http://www.atmos-meas-tech.net/10/1425/2017/amt-10-1425-2017.pdf -https://dzone.com/articles/batch-convert-images-from-png-to-jpeg +* GNU Parallel was cited in: Scattering Networks: Efficient 2D Implementation And Application To Melanoma Classification http://amslaurea.unibo.it/12261/1/nurrito_eugenio_tesi_fisica_magistrale.pdf -https://arxiv.org/pdf/1704.02257.pdf +* GNU Parallel was cited in: Genome-scale detection of positive selection in 9 primates predicts human-virus evolutionary conflicts http://biorxiv.org/content/biorxiv/early/2017/04/27/131680.full.pdf -http://www.sciencedirect.com/science/article/pii/S0044848616312194 +* GNU Parallel is used in: Creates a speech dataset for deep learning https://github.com/jupiter126/Create_Speech_Dataset -https://www.aclweb.org/anthology/E/E17/E17-1050.pdf +* GNU Parallel is used in: Parse and process the demixing secrets dataset (DSD100) https://github.com/faroit/dsdtools -http://www.atmos-meas-tech.net/10/1425/2017/amt-10-1425-2017.pdf +* First glance at the gnu parallel utility https://ibiscybernetics.com/blog/2017-04-05.html -http://amslaurea.unibo.it/12261/1/nurrito_eugenio_tesi_fisica_magistrale.pdf +* Installing parallel from source https://bitsanddragons.wordpress.com/2017/05/03/installing-parallel-from-source/ -http://biorxiv.org/content/biorxiv/early/2017/04/27/131680.full.pdf +* How to run command or code in parallel in bash shell under Linux or Unix https://www.cyberciti.biz/faq/how-to-run-command-or-code-in-parallel-in-bash-shell-under-linux-or-unix/ -http://www.nature.com/nprot/journal/v12/n5/full/nprot.2017.022.html?WT.feed_name=subjects_biotechnology +* Parallel Serial Jobs Using GNU Parallel http://www.hpc.lsu.edu/training/weekly-materials/2017-Spring/gnuparallel-Feb2017.pdf -https://128.84.21.199/pdf/1704.08997.pdf +* GNU Parallel or How to list millions of S3 objects https://joeray.me/gnu-parallel-how-to-list-millions-objects.html + +* Which Is the Best Tool for Copying a Large Directory Tree Locally? http://arjon.es/2017/05/11/which-is-the-best-tool-for-copying-a-large-directory-tree-locally/ + +<> + +<> <> +<> -* <> +<> -* <> +<> -* <> +<> -* <> +<> -* <> +<> -* << kontakt GNU Parallel was used (unfortunately without citation) in: Instrumentation and Trace Analysis for Ad-hoc Python Workflows in Cloud Environments http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=7214035>> +<< kontakt GNU Parallel was used (unfortunately without citation) in: Instrumentation and Trace Analysis for Ad-hoc Python Workflows in Cloud Environments http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=7214035>> -* <> GNU Parallel was used (unfortunately without citation) in: MUGBAS: a species free gene-based programme suite for post-GWAS analysis http://www.ncbi.nlm.nih.gov/pubmed/25765345 +<> GNU Parallel was used (unfortunately without citation) in: MUGBAS: a species free gene-based programme suite for post-GWAS analysis http://www.ncbi.nlm.nih.gov/pubmed/25765345 -* <> GNU Parallel was used in: Large Scale Author Name Disambiguation in Digital Libraries http://ieeexplore.ieee.org/xpl/abstractReferences.jsp?tp=&arnumber=7004487&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D7004487 +<> GNU Parallel was used in: Large Scale Author Name Disambiguation in Digital Libraries http://ieeexplore.ieee.org/xpl/abstractReferences.jsp?tp=&arnumber=7004487&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D7004487 -* <> GNU Parallel was used (unfortunately with wrong citation) in: TADSim: Discrete Event-Based Performance Prediction for Temperature-Accelerated Dynamics http://vruehle.de/publications/2015c.pdf +<> GNU Parallel was used (unfortunately with wrong citation) in: TADSim: Discrete Event-Based Performance Prediction for Temperature-Accelerated Dynamics http://vruehle.de/publications/2015c.pdf http://www.researchgate.net/profile/Christoph_Junghans/publication/276178326_TADSim_Discrete_Event-Based_Performance_Prediction_for_Temperature-Accelerated_Dynamics/links/55562b6708ae980ca60c8369.pdf -* << Update forventet juni Rachel har lige svaret >> GNU Parallel was used in: SISRS: Site Identification from Short Read Sequences https://github.com/rachelss/SISRS/ +<< Update forventet juni Rachel har lige svaret >> GNU Parallel was used in: SISRS: Site Identification from Short Read Sequences https://github.com/rachelss/SISRS/ -* <> -* <> +<> -* <> +<> -* <> +<> -* <> +<> -* <> +<> -* <> +<> * Bug fixes and man page updates. diff --git a/packager/obs/home:tange/parallel/.osc/_files b/packager/obs/home:tange/parallel/.osc/_files index 715e1d3d..f1a29ffb 100644 --- a/packager/obs/home:tange/parallel/.osc/_files +++ b/packager/obs/home:tange/parallel/.osc/_files @@ -1,6 +1,6 @@ - - - - - + + + + + diff --git a/packager/obs/home:tange/parallel/.osc/parallel.spec b/packager/obs/home:tange/parallel/.osc/parallel.spec index e989b505..e316d80a 100644 --- a/packager/obs/home:tange/parallel/.osc/parallel.spec +++ b/packager/obs/home:tange/parallel/.osc/parallel.spec @@ -1,7 +1,6 @@ - Summary: Shell tool for executing jobs in parallel Name: parallel -Version: 20170422 +Version: 20170522 Release: 1.2 License: GPL Group: Productivity/File utilities diff --git a/packager/obs/home:tange/parallel/parallel.spec b/packager/obs/home:tange/parallel/parallel.spec index e989b505..e316d80a 100644 --- a/packager/obs/home:tange/parallel/parallel.spec +++ b/packager/obs/home:tange/parallel/parallel.spec @@ -1,7 +1,6 @@ - Summary: Shell tool for executing jobs in parallel Name: parallel -Version: 20170422 +Version: 20170522 Release: 1.2 License: GPL Group: Productivity/File utilities diff --git a/src/Makefile.am b/src/Makefile.am index 210384a4..25d66e00 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -14,7 +14,7 @@ man_MANS = parallel.1 env_parallel.1 sem.1 sql.1 niceload.1 \ parcat.1 parset.1 doc_DATA = parallel.html env_parallel.html sem.html sql.html niceload.html \ parallel_tutorial.html parallel_design.html parallel_alternatives.html \ - parcat.html \ + parcat.html parset.html \ parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi \ parallel_tutorial.texi parallel_design.texi parallel_alternatives.texi \ parcat.texi parset.texi \ @@ -142,8 +142,8 @@ niceload.html: niceload.pod sql.html rm -f $(srcdir)/pod2htm* # Depending on niceload.html to avoid stupid pod2html race condition -parcat.html: parcat niceload.html - pod2html --title "GNU parcat" $(srcdir)/parcat > $(srcdir)/parcat.htmln \ +parcat.html: parcat.pod niceload.html + pod2html --title "GNU parcat" $(srcdir)/parcat.pod > $(srcdir)/parcat.htmln \ && mv $(srcdir)/parcat.htmln $(srcdir)/parcat.html \ || echo "Warning: pod2html not found. Using old parcat.html" rm -f $(srcdir)/pod2htm* @@ -187,8 +187,8 @@ niceload.texi: niceload.pod pod2texi --output=$(srcdir)/niceload.texi $(srcdir)/niceload.pod \ || echo "Warning: pod2texi not found. Using old niceload.texi" -parcat.texi: parcat - pod2texi --output=$(srcdir)/parcat.texi $(srcdir)/parcat \ +parcat.texi: parcat.pod + pod2texi --output=$(srcdir)/parcat.texi $(srcdir)/parcat.pod \ || echo "Warning: pod2texi not found. Using old parcat.texi" parset.texi: parset.pod @@ -227,8 +227,8 @@ niceload.pdf: niceload.pod pod2pdf --output-file $(srcdir)/niceload.pdf $(srcdir)/niceload.pod --title "GNU niceload" \ || echo "Warning: pod2pdf not found. Using old niceload.pdf" -parcat.pdf: parcat - pod2pdf --output-file $(srcdir)/parcat.pdf $(srcdir)/parcat --title "GNU parcat" \ +parcat.pdf: parcat.pod + pod2pdf --output-file $(srcdir)/parcat.pdf $(srcdir)/parcat.pod --title "GNU parcat" \ || echo "Warning: pod2pdf not found. Using old parcat.pdf" parset.pdf: parset.pod diff --git a/src/Makefile.in b/src/Makefile.in index 1c8b584b..216a9a7e 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -241,7 +241,7 @@ bin_SCRIPTS = parallel sql niceload parcat env_parallel \ @DOCUMENTATION_TRUE@doc_DATA = parallel.html env_parallel.html sem.html sql.html niceload.html \ @DOCUMENTATION_TRUE@ parallel_tutorial.html parallel_design.html parallel_alternatives.html \ -@DOCUMENTATION_TRUE@ parcat.html \ +@DOCUMENTATION_TRUE@ parcat.html parset.html \ @DOCUMENTATION_TRUE@ parallel.texi env_parallel.texi sem.texi sql.texi niceload.texi \ @DOCUMENTATION_TRUE@ parallel_tutorial.texi parallel_design.texi parallel_alternatives.texi \ @DOCUMENTATION_TRUE@ parcat.texi parset.texi \ @@ -730,8 +730,8 @@ niceload.html: niceload.pod sql.html rm -f $(srcdir)/pod2htm* # Depending on niceload.html to avoid stupid pod2html race condition -parcat.html: parcat niceload.html - pod2html --title "GNU parcat" $(srcdir)/parcat > $(srcdir)/parcat.htmln \ +parcat.html: parcat.pod niceload.html + pod2html --title "GNU parcat" $(srcdir)/parcat.pod > $(srcdir)/parcat.htmln \ && mv $(srcdir)/parcat.htmln $(srcdir)/parcat.html \ || echo "Warning: pod2html not found. Using old parcat.html" rm -f $(srcdir)/pod2htm* @@ -775,8 +775,8 @@ niceload.texi: niceload.pod pod2texi --output=$(srcdir)/niceload.texi $(srcdir)/niceload.pod \ || echo "Warning: pod2texi not found. Using old niceload.texi" -parcat.texi: parcat - pod2texi --output=$(srcdir)/parcat.texi $(srcdir)/parcat \ +parcat.texi: parcat.pod + pod2texi --output=$(srcdir)/parcat.texi $(srcdir)/parcat.pod \ || echo "Warning: pod2texi not found. Using old parcat.texi" parset.texi: parset.pod @@ -815,8 +815,8 @@ niceload.pdf: niceload.pod pod2pdf --output-file $(srcdir)/niceload.pdf $(srcdir)/niceload.pod --title "GNU niceload" \ || echo "Warning: pod2pdf not found. Using old niceload.pdf" -parcat.pdf: parcat - pod2pdf --output-file $(srcdir)/parcat.pdf $(srcdir)/parcat --title "GNU parcat" \ +parcat.pdf: parcat.pod + pod2pdf --output-file $(srcdir)/parcat.pdf $(srcdir)/parcat.pod --title "GNU parcat" \ || echo "Warning: pod2pdf not found. Using old parcat.pdf" parset.pdf: parset.pod diff --git a/src/niceload b/src/niceload index 67534fbf..79059222 100755 --- a/src/niceload +++ b/src/niceload @@ -24,7 +24,7 @@ use strict; use Getopt::Long; $Global::progname="niceload"; -$Global::version = 20170423; +$Global::version = 20170522; Getopt::Long::Configure("bundling","require_order"); get_options_from_array(\@ARGV) || die_usage(); if($opt::version) { diff --git a/src/parallel_alternatives.pod b/src/parallel_alternatives.pod index 97768a94..4ee15eef 100644 --- a/src/parallel_alternatives.pod +++ b/src/parallel_alternatives.pod @@ -13,7 +13,6 @@ There are a lot programs with some of the functionality of GNU B. GNU B strives to include the best of the functionality without sacrificing ease of use. - =head2 SUMMARY TABLE The following features are in some of the comparable tools: @@ -1043,7 +1042,7 @@ The failed commands can be resumed with: =head2 DIFFERENCES BETWEEN machma AND GNU Parallel -Todo. Requires Go > 1.6. +Todo. Requires Go >= 1.7. =head2 DIFFERENCES BETWEEN ClusterSSH AND GNU Parallel @@ -1066,6 +1065,124 @@ GNU B can be used as a poor-man's version of ClusterSSH: B +=head1 TESTING OTHER TOOLS + +There are certain issues that are very common on parallelizing +tools. Here are a few stress tests. Be warned: If the tool is badly +coded it may overload you machine. + +=head2 Output mixes + +Output from 2 jobs should not mix. + + #!/bin/bash + + paralleltool=parallel + + cat <<-EOF > mycommand + #!/bin/bash + + # If 'a', 'b' and 'c' mix: Very bad + perl -e 'print "a"x3000_000," "' + perl -e 'print "b"x3000_000," "' + perl -e 'print "c"x3000_000," "' + echo + EOF + chmod +x mycommand + + # Run 30 jobs in parallel + seq 30 | $paralleltool -j0 ./mycommand | tr -s abc + + # 'a b c' should always stay together + # and there should only be a single line per job + +=head2 Speed depends on number of words + +Some tools become very slow if output lines have many words. + + #!/bin/bash + + paralleltool=parallel + + cat <<-EOF > mycommand + #!/bin/bash + + # 10 MB of lines with 1000 words + yes "`seq 1000`" | head -c 10M + EOF + chmod +x mycommand + + # Run 30 jobs in parallel + seq 30 | time $paralleltool -j0 ./mycommand > /dev/null + +=head2 Output limited by RAM + +Some tools cache output in RAM. This makes them extremely slow if the +output is bigger than physical memory and crash if the the output is +bigger than the virtual memory. + + #!/bin/bash + + paralleltool=parallel + + cat <<'EOF' > mycommand + #!/bin/bash + + # Generate 1 GB output + yes "`perl -e 'print \"c\"x30_000'`" | head -c 1G + EOF + chmod +x mycommand + + # Run 20 jobs in parallel + # Adjust 20 to be > physical RAM and < free space on /tmp + seq 20 | time $paralleltool -j0 ./mycommand | wc -c + +=head2 Leaving tmp files at unexpected death + +Some tools do not clean up tmp files if they are killed. + + #!/bin/bash + + paralleltool=parallel + + ls /tmp >/tmp/before + seq 10 | $paralleltool sleep & + pid=$! + # Give the tool time to start up + sleep 1 + # Kill it without giving it a chance to cleanup + kill -9 $! + # Should be empty: No files should be left behind + diff <(ls /tmp) /tmp/before + +=head2 Dealing badly with special file names. + +It is not uncommon for users to create files like: + + My brother's 12" records cost $$$.txt + +Some tools break on this. + + #!/bin/bash + + paralleltool=parallel + + touch "My brother's 12\" records cost \$\$\$.txt" + ls My*txt | $paralleltool echo + +=head2 Composed commands do not work + +Some tools require you to wrap composed commands into B. + + echo bar | $paralleltool echo foo';' echo {} + +=head2 Only one replacement string allowed + +Some tools can only insert the argument once. + + echo bar | $paralleltool echo {} foo {} + + =head1 AUTHOR When using GNU B for a publication please cite: diff --git a/src/sql b/src/sql index e26ebed9..34fb769e 100755 --- a/src/sql +++ b/src/sql @@ -576,7 +576,7 @@ $Global::Initfile && unlink $Global::Initfile; exit ($err); sub parse_options { - $Global::version = 20170423; + $Global::version = 20170522; $Global::progname = 'sql'; # This must be done first as this may exec myself diff --git a/testsuite/wanted-results/parallel-install b/testsuite/wanted-results/parallel-install index 5e3390d4..6569dfef 100644 --- a/testsuite/wanted-results/parallel-install +++ b/testsuite/wanted-results/parallel-install @@ -7,6 +7,12 @@ test -d "parallel-00000000" || mkdir "parallel-00000000" (cd src && make top_distdir=../parallel-00000000 distdir=../parallel-00000000/src \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[0]: Entering directory '~/privat/parallel/src' +pod2html --title "GNU parset" ./parset.pod > ./parset.htmln \ +&& mv ./parset.htmln ./parset.html \ +|| echo "Warning: pod2html not found. Using old parset.html" +/bin/bash: pod2html: command not found +Warning: pod2html not found. Using old parset.html +rm -f ./pod2htm* make[0]: Leaving directory '~/privat/parallel/src' test -n "" \ || find "parallel-00000000" -type d ! -perm -755 \