Live data from Hacker News

GNU Parallel Cheat Sheet [pdf]

gnu.org

51–60 of 64 posts

Re: GNU Parallel Cheat Sheet [pdf]

#51
post #41

Each time I've seen something about GNU parallel pop up I've been tempted to post, but I've never made an account until now. I wrote a very different style of command parallelizer that I named lateral. It doesn't require constructing elaborate commandlines that define all of your work at once. You start a server, and separate invocations of 'lateral run' add your commands to a queue to run on the server, including th…

This looks neat! Much Can a single lateral server queue be used across multiple host machines? And in the other direction, can lateral launch and monitor processes that reside across multiple machines?

Re: GNU Parallel Cheat Sheet [pdf]

#53
post #41

Each time I've seen something about GNU parallel pop up I've been tempted to post, but I've never made an account until now. I wrote a very different style of command parallelizer that I named lateral. It doesn't require constructing elaborate commandlines that define all of your work at once. You start a server, and separate invocations of 'lateral run' add your commands to a queue to run on the server, including th…

I think it is good you finally made an account: How are people going to find your software if you do not tell them about it :)

Can you make a comparison between lateral and sem?

https://www.gnu.org/software/parallel/sem.html

Re: GNU Parallel Cheat Sheet [pdf]

#55
post #32

Earlier quoted context omitted.

It would be trivial to fork parallel. If people cared enough, a fork would appear and be adopted. That's the beauty of free software. If you don't like it you can change it.

It was already forked in its early perl days, and thus it's very hard to use it properly as build tool, as the non-GNU version has an entirely different argument syntax. eg on macOS or BSD. You really have to probe for the GNU version (the more popular and newer one, with this awkward citation and begging), but for longer tasks it speeds up processing immensely. There's no need for Hadoop when you can use parallel. I…

Where can I read about this fork?

Googling for "bsd parallel command" doesn't seem to show anything relevant.

Re: GNU Parallel Cheat Sheet [pdf]

#56

Ah, the rare case of nagware in GNU. From the man page: "--citation Print the BibTeX entry for GNU parallel and silence citation notice. If it is impossible for you to run --bibtex you can use --will-cite. If you use --will-cite in scripts to be run by others you are making it harder for others to see the citation notice. The development of GNU parallel is indirectly financed through citations, so if your users do no…

Beyond being supremely irritating, nagware is simply not scalable. Imagine if every utility, library, or driver in a typical Linux distribution took this approach. :( I encourage Debian et al. to adopt a "no nagware" policy.

There's something similar in Debian Policy §2.3 (https://www.debian.org/doc/debian-policy/ch-archive.html#cop...):

> Programs whose authors encourage the user to make donations are fine for the main distribution, provided that the authors do not claim that not donating is immoral, unethical, illegal or something similar; in such a case they must go in non-free.

BTW, the nagware code has been removed in Debian unstable:

https://bugs.debian.org/905674

Re: GNU Parallel Cheat Sheet [pdf]

#57
post #55
post #32

Earlier quoted context omitted.

It was already forked in its early perl days, and thus it's very hard to use it properly as build tool, as the non-GNU version has an entirely different argument syntax. eg on macOS or BSD. You really have to probe for the GNU version (the more popular and newer one, with this awkward citation and begging), but for longer tasks it speeds up processing immensely. There's no need for Hadoop when you can use parallel. I…

Where can I read about this fork? Googling for "bsd parallel command" doesn't seem to show anything relevant.

Mixed it up. It was from moreutils, not bsd.

My configure.ac recipe for the proper parallel is this, setting logs_all to the GNU parallel version.

    dnl GNU parallel, skip the old non-perl version from moreutils so far
    AC_CHECK_PROGS([PARALLEL], [parallel])
    logs_all=logs-all-serial.sh.in
    if test -n "$PARALLEL"; then
      AC_MSG_CHECKING([PARALLEL version])
      parallel_version=`$PARALLEL --version 2>&1 | head -n1 | cut -c14-`
      case "$parallel_version" in
        [0-9]*) AC_MSG_RESULT([$parallel_version])
                logs_all=logs-all-parallel.sh.in
                ;;
        *invalid*)
                PARALLEL=
                parallel_version="skip old moreutils version, need GNU parallel"
      esac
      AC_MSG_RESULT([$parallel_version])
    fi
    AM_CONDITIONAL([HAVE_PARALLEL], [test -n "$PARALLEL"])

Re: GNU Parallel Cheat Sheet [pdf]

#58
post #57
post #55

Earlier quoted context omitted.

Where can I read about this fork? Googling for "bsd parallel command" doesn't seem to show anything relevant.

Mixed it up. It was from moreutils, not bsd. My configure.ac recipe for the proper parallel is this, setting logs_all to the GNU parallel version. dnl GNU parallel, skip the old non-perl version from moreutils so far AC_CHECK_PROGS([PARALLEL], [parallel]) logs_all=logs-all-serial.sh.in if test -n "$PARALLEL"; then AC_MSG_CHECKING([PARALLEL version]) parallel_version=`$PARALLEL --version 2>&1 | head -n1 | cut -c14-` c…

For the avoidance of doubt, moreutils' parallel is not a fork of GNU parallel. They are independent implementations.

Re: GNU Parallel Cheat Sheet [pdf]

#59

Ah, the rare case of nagware in GNU. From the man page: "--citation Print the BibTeX entry for GNU parallel and silence citation notice. If it is impossible for you to run --bibtex you can use --will-cite. If you use --will-cite in scripts to be run by others you are making it harder for others to see the citation notice. The development of GNU parallel is indirectly financed through citations, so if your users do no…

Gooood who caaaaares. They spent a lot of time and effort, and made a cool thing and gave it away for free. If it bothers you so much, just add the flag. Or patch it out.

parent comment was deleted. the tldr was "how rude of them to do the licensing flag" thing

Re: GNU Parallel Cheat Sheet [pdf]

#60
I use GNU Parallel for pulling stock data from various sources, massaging it, creating flatfiles of the data, creating models of the data, etc.

I also use it as a rudimentary queue system for stacking up the next jobs (while scripts stack up the next jobs, but..).

It had a bit of a learning curve because the docs are really technical and not geared towards new users enough, but reading and re-reading and trying some examples helped cement.

Here are a few ways I use it:

echo "Number of RAR archives: "$(ls .rar | wc -l)

ls .rar | parallel -j0 1_1_rarFilesExtraction

ls -d stocks_all/Intraday/*.txt | parallel -j${ccj}% 1_2_stockFileProcessing {}

I'd like to scale this to work with multiple machines (as Parallel can do) but I get really tempted to just write my own parallel processor just to rely on my own code.

Post reply on HN