[distcc] about distcc's scheduling
Francois Berenger
berenger at riken.jp
Wed Nov 25 02:13:07 MST 2009
Francois Berenger wrote:
> Fergus Henderson wrote:
>> Have you tried using pump mode? That helps a lot.
>>
>> Also, if the issue is that distcc isn't running enough jobs on each
>> host, try using the "host/JOBS" format in DISTCC_HOSTS,
>> e.g. DISTCC_HOSTS="foo.riken.jp/20,cpp,lzo
>> <http://foo.riken.jp/20,cpp,lzo> bar.riken.jp/40,cpp,lzo
>> <http://bar.riken.jp/40,cpp,lzo>".
>> This would allow up to 20 concurrent compiles on host foo.riken.jp
>> <http://foo.riken.jp> and 40 concurrent compiles on host bar.riken.jp
>> <http://bar.riken.jp>.
>> (The ",cpp,lzo" part is required for pump mode.)
>
> Thanks a lot! I am trying this right away.
> I'll post my speedup results when I'm done.
Well, I managed to make our soft compile with:
distcc-server-3.1-1
distcc-3.1-1
However, pump seems to be for 32bit machines only:
titi at toto:x# pump scons -j24 bin mode=release
__________Using distcc-pump from /usr/bin
Traceback (most recent call last):
File
"/usr/lib/python2.4/site-packages/include_server/include_server.py",
line 42, in ?
import distcc_pump_c_extensions
ImportError:
/usr/lib/python2.4/site-packages/include_server/distcc_pump_c_extensions.so:
wrong ELF class: ELFCLASS32
__________Expected a socket at '/tmp/distcc-pump.E15442/socket'
__________Could not start distcc-pump include server
__________Warning: distcc-pump include server failed; running unpumped
__________Found 0 available distcc servers
Can someone publish x86_64 binary packages in the download section of
the distcc website?
Or at least the source RPM so I can to build for my systems.
Thanks a lot,
Francois.
>> At some point, depending on the size and structure of the software
>> that you're trying to compile,
>> and the way your Makefiles are arranged, you may run into limitations
>> in the parallelizability of your build graph.
>> For example, if your software has only three source files, then distcc
>> won't be able to speed up compilation by more than a factor of three
>> at very best.
>> Similarly, if your software has 30 files, but they are split into 10
>> directories of three files each, and your Makefile(s) sequentialize
>> the compilation of each directory, then you still won't get more than
>> a factor of three speed up at very best.
>
> We use scons. I am not so happy with it (like when it spends 30s before
> giving me back control of the command line when theres is _nothing_ to
> compile because everything is already done).
> However, it manages the dependencies far better than any Makefile I
> could have written by hand.
>
> Regards,
> Francois.
>
>> On Mon, Nov 23, 2009 at 8:19 PM, Francois Berenger <berenger at riken.jp
>> <mailto:berenger at riken.jp>> wrote:
>>
>> Hello,
>>
>> Is there a way to use a pull scheduler instead of a push scheduler
>> inside distcc?
>>
>> I have many compiling hosts and when they join a compiling job,
>> they are
>> not enough loaded, at least to my taste. Meaning: they could compile
>> more things and I could wait less for them to finish.
>>
>> I think the problem is that the scheduler is pushing: the distcc
>> server sends jobs to distcc compiling hosts.
>>
>> Instead, I would like this behavior: distcc compiling hosts ask and
>> take jobs as long as they are not completely loaded with compilation
>> jobs.
>> The distcc server should distribute jobs to whom asks for.
>>
>> This should scale better.
>>
>> If there is no way now to do so but you can give me some hint on
>> how to
>> do so (where to look, what to modify, etc.), it might be helpful.
>>
>> Best regards,
>> Francois.
>>
>> __
>> distcc mailing list http://distcc.samba.org/
>> To unsubscribe or change options:
>> https://lists.samba.org/mailman/listinfo/distcc
>>
>>
>>
>>
>> --
>> Fergus Henderson <fergus at google.com <mailto:fergus at google.com>>
>
> __
> distcc mailing list http://distcc.samba.org/
> To unsubscribe or change options:
> https://lists.samba.org/mailman/listinfo/distcc
More information about the distcc
mailing list