help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: make internals and parallelization


From: Paul Smith
Subject: Re: make internals and parallelization
Date: Wed, 12 Aug 2009 12:13:53 -0400

On Wed, 2009-08-12 at 10:23 -0500, Michael Muratet wrote:
> I have been searching the list archives looking for information on how  
> make implements parallelization with make -j. From a most global view,  
> it appears that there is a data structure of dependancies and multiple  
> branches from the root are candidates for parallel processing. I  
> haven't seen any mention of a developer's manual, is there one? Can  
> anyone point me to some documentation or explain the process?

There is no developers manual.  I'm not aware of too many open source
projects that provide such a thing: there's the source code and the
comments therein after all :-).

It's not clear what exactly you're trying to understand so it's hard to
explain the process.

There's a discussion of GNU make's jobserver algorithm on my page (see
the signature), but that talks only about how make ensures that no more
than N jobs are run for "make -jN".

Make doesn't implement any sort of threading.  Since make spends most of
its time just waiting for child processes to complete, when you're
running in parallel it simply uses that "down time" to determine the
next job that could be run.  When it finds one, it will start that job
and begin looking through its data structures for the next one, etc.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.mad-scientist.net
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist




reply via email to

[Prev in Thread] Current Thread [Next in Thread]