D&C GLug - Home Page

[ Date Index ] [ Thread Index ] [ <= Previous by date / thread ] [ Next by date / thread => ]

Re: [LUG] make -jn

 

On 22/02/15 21:16, Tom wrote:
> Wot with all these multiprocessor jobies about these days I've been
> trying to find a valid reason for choosing make -j(n+1 or 2) where n is
> the number of cores. I've not been able to find anything 'scientific'
> just suggestions that adding one or two to the core count may allow for
> some of the tasks waiting for io to be replaced with other tasks but
> that's wishful thinking rather than 'good software engineering'.
> Anyone know different or how to test a running program so the value can
> be optimised?
> Tom te tom te tom
> 

I've been doing this for what feels like a million years. I just do
-j(n+1). All the logging, analysing, profiling and research in the world
will probably struggle to convince you otherwise. It's like how much
swap do you need? Received wisdom is that it should be equal to or
double your available RAM.

I couldn't care less about received wisdom, so do things as I feel like.
I disable swap entirely and build everything with one thread over my
physically available cores. In the old days there was only one thread
per socket and it was easy to figure out what value to pass to -jX:
check the system documentation, count how many Spark/PA-RISC/Power/MIPS
sockets you've got and plus one.

Being hopelessly old-skool I'd absolutely love it if someone popped up
with a thoroughly modern take on why that doesn't work anymore. For all
I know there's some awesome flag to pass LLVM these days and it will
just magically do some crazy multicore godlike optimizations and
everything will compile eleventy billion times faster. Please let this
dinosaur know if that's how things work these days.

-- 
The Mailing List for the Devon & Cornwall LUG
http://mailman.dclug.org.uk/listinfo/list
FAQ: http://www.dcglug.org.uk/listfaq