1 |
On Nov 28, 2011 11:32 AM, "Michael Mol" <mikemol@×××××.com> wrote: |
2 |
> |
3 |
|
4 |
----- >8 snip |
5 |
|
6 |
> |
7 |
> MAKEOPTS would be -j16, -l10. (Which actually goes up to about 12 or |
8 |
> 13 based on that N*1.6 behavior) |
9 |
> |
10 |
|
11 |
----- >8 snip |
12 |
|
13 |
Just in case anyone wonders where the multiplier "1.6" comes from: |
14 |
|
15 |
There had been a discussion somewhere (I forgot where exactly, sorry) about |
16 |
load numbers. The final conclusion was that the ideal load number for |
17 |
today's processors is 2*N, because with the out-of-order capability of |
18 |
modern processors, two instructions can overlap in the pipeline, even |
19 |
without hyperthreading. |
20 |
|
21 |
Unfortunately, striving for 2*N will inadvertently result in short bursts |
22 |
of > 2*N, and this potentially induce a stall, which will be very costly. |
23 |
1.8*N gives a 10% margin for burst activities, while 1.6*N gives a 20% |
24 |
margin. |
25 |
|
26 |
Since emerging packages has a sudden increase in load when autoconfigure |
27 |
finishes and make fires up all the parallel building, I figure 20% margin |
28 |
will be better. |
29 |
|
30 |
Of course, that's before @mikemol made me aware of MAKEOPTS -l, so I am now |
31 |
tempted to raise the load-average to 1.8*N, letting make handle the bursts. |
32 |
|
33 |
Rgds, |