Monday, April 16, 2012

Re: Setting 'make -jN' in makeprg

On Mon, Apr 16, 2012 at 2:29 PM, Christian Brabandt <cblists@256bit.org> wrote:
> Hi Ben!
>
> On Mo, 16 Apr 2012, Ben Fritz wrote:
>
>> Eclipse has a "use optimal number of jobs" setting, but all this does
>> is pass the -j flag with NO argument to make. Apparently this actually
>> spawns ALL jobs which can be parallelized, all at once when make
>> begins. Somehow on my and several coworkers' machines, this works just
>> fine, and gives equivalent performance to the fastest time given from
>> experimenting with various explicit numbers of jobs (which happened to
>> be 1.5 times the number of processors for us...we all have 4-core
>> machines). But...not passing an explicit number of jobs fails
>> miserably on other machines, which more predictably run out of memory
>> and/or process IDs and the build crashes.
>
> ,----[ http://www.gnu.org/software/make/manual/make.txt ]-
> | If the `-j' option is followed by an integer, this is the number of
> | recipes to execute at once; this is called the number of "job slots".
> | If there is nothing looking like an integer after the `-j' option,
> | there is no limit on the number of job slots.  The default number of job
> | slots is one, which means serial execution (one thing at a time).
> `----
>
> Well, "no limit on the number of job slots" doesn't sound right, in my
> opinion.
>

Yeah, it doesn't sound like it should work at all. Somehow though it
works wonderfully on my 4-core machine, with equal performance to
using 6 processes. Experiments trying 1-8 processes showed 6 as the
magic number for my 4-core machine, and I had two coworkers verify it
on theirs. It must be some magic in the scheduler on the 64-bit
Windows XP system we all have, because another coworker with an older
dual-core crashed 'make' every time he tried running without an
explicit number of jobs.

By the way, Eclipse showing "Optimal number of jobs" for the option
name is even considered a bug:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=259768

I'm certainly not advocating using -j with no explicit number. I like
the idea of this number being determined for me, though. I meant to
give more weight to the "1.5 * number of CPUs seemed to work better
for me" but re-reading what I wrote, I failed in that regard.

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

No comments: