Subject: Re: MP scheduling
To: Dave Huang <khym@azeotrope.org>
From: Dan LaBell <dan4l-nospam@verizon.net>
List: port-macppc
Date: 11/11/2004 18:41:30
On Thursday, November 11, 2004, at 01:20 PM, Dave Huang wrote:
<...>
>
> Ah, each subdirectory gets its own nbmake process--e.g., if it was
> currently building /usr/src/bin/cat, you'd have one make for /usr/src,
> one for /usr/src/bin, and one for /usr/src/bin/cat. However, those
> make processes are mostly waiting for their children to finish doing
> the real work, so they use very little CPU.
Though, if one passes gcc '-pipe' , gcc will use pipes, as opposed
to writing tempfiles,
and there can be 3 processes active per waiting make. With multiple
CPUs they can run concurrently. My experience ( this was on an 8 cpu
sun ), was that gcc and the assembler worked well together ( as kept
up with gcc ), and on CPU most of the time, and with cpp it was on CPU
more often than not.
With only 2 CPU's one probably doesn't want to mix gcc -pipe and make
-j, but gcc -pipe
can give good concurrent CPU utilization, and avoid the occasional
failed build due to
race conditions.