Gentoo Archives: gentoo-portage-dev

From: Francesco Riosa <BastianBalthazarBux@×××××××××.it>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] Max parallelization setting
Date: Wed, 11 Oct 2006 08:52:23
Message-Id: 452CB191.1040405@pnpitalia.it
In Reply to: Re: [gentoo-portage-dev] Max parallelization setting by Brian Harring
1 Brian Harring ha scritto:
2 > On Tue, Oct 10, 2006 at 05:27:07PM +0200, Marius Mauch wrote:
3 >
4 >> On Tue, 10 Oct 2006 00:04:57 -0700
5 >> Brian Harring <ferringb@×××××.com> wrote:
6 >>
7 >>
8 >>> I might be daft (likely), but why not just introduce a var indicating
9 >>> max parallelization instead? Tweak portage to push that setting into
10 >>> MAKEOPTS="${MAKEOPTS+${MAKEOPTS} } -j${PARALLELIZATION}".
11 >>>
12 >>> Might sound daft, but -j is hardcoded parallelization; if you're
13 >>> trying to run 3 build processes, the original var of -j isn't all
14 >>> that useful, nor will the hardcoded -j# var set for 3 package build
15 >>> processes be useful if you're doing a single build.
16 >>>
17 >>> Depending on number of seperate package build processes possible, the
18 >>> # of build processes allocated per build process needs to vary
19 >>> (essentially).
20 >>>
21 >> Seems useful as *alternative* to the low level vars, but shouldn't
22 >> replace them (so if the low level vars are set they override the global
23 >> setting).
24 >>
25 >
26 > Well.. heres the failing.
27 >
28 > Say I've got a 32x system; I screw up and have -j32 in my makeopts,
29 > and PARALLELIZATION=32.
30 >
31 > Now either the pkg manager needs to understand MAKEOPTS (beyond just
32 > adding a simple string to it), and check for -j*, or it's going to
33 > wind up allowing 32 seperate build jobs, each with -j32.
34 >
35 > Personally, I *really* would love to see that loadavg (that would be
36 > one nifty screenshot).
37 >
38 > Allowing MAKEOPTS to override the alloted build slices the manager
39 > hands it totally defeats the purpose of moving the parallelization
40 > factor into a seperate var; the intention is to give the manager a
41 > max, and allow it to allocate as it needs depending on the # of build
42 > jobs that can be ran at that point.
43 >
44 > Theres no point in doing this if the hole it's trying to plug is
45 > explicitly allowed; at best you wind up with two different vars you
46 > have to keep in sync, at worst, you wind up with the 32*32 exapmle
47 > from above.
48 >
49 > Response of course is "don't have -j* in your MAKEOPTS"; well dar,
50 > thus why allow it? ;)
51 >
52 > ~harring
53 >
54 Not going deep, sincerly I've read too few form the bug and the thread but:
55 I'm lucky and I have a cluster of 32 boxes with distcc each with 32
56 processors.
57 In such a eco-system the ebuild work is not parallelizable in the
58 cluster but the compiler work is, those are very different things.
59 please keep this in account ;)
60
61 rgds,
62 Francesco R.
63 --
64 gentoo-portage-dev@g.o mailing list