[distcc] Re: Using cc1/cc1plus directly from distccd?
Stuart D. Gathman
stuart at bmsi.com
Mon Mar 3 17:22:26 GMT 2003
Martin Pool wrote:
>>Even with compatible assemblers, splitting out the assembly phase
>>provides yet another opportunity for parallelization.
>>
>
>Last time I measured, assembly was very cheap compared to compilation,
>so it would likely not be worthwhile in most cases.
>
As posted in another message, my benchmarking shows that while CPU for
assembly is very cheap, the overlap provided by -pipe when cc1 runs
remote and as runs local provides a 2x speedup over the way distcc works
now.
I found that -B works very well to make gcc use stub versions of
compiler passes. It is not necessary to symlink other gcc tools. If
stubs are installed as /usr/lib/distcc/cc1 and /usr/lib/distcc/cc1plus,
then gcc -B/usr/lib/distcc is sufficient to use the stubs. Of course,
this only works with gcc, and distcc also supports other compilers.
So, now my goals are:
a) extend distcc protocol to support simultaneous pipelines
input/output. My benchmarking shows that this will provide a 2x speedup
when combined with -pipe and local assembly.
b) create a cc1 stub that uses the distcc protocol. How will it know
the path to cc1 to run on the volunteer? Currently, it is hardwired,
but perhaps a config file should be used.
c) modify distcc client to pass -B to gcc to use cc1{plus} stub. May
require switch to enable since this is gcc specific.
--
Stuart D. Gathman <stuart at bmsi.com>
Business Management Systems Inc. Phone: 703 591-0911 Fax: 703 591-6154
"Confutatis maledictis, flamis acribus addictis" - background song for
a Microsoft sponsored "Where do you want to go from here?" commercial.
More information about the distcc
mailing list