This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: If you had a month to improve gcc build parallelization, where would you begin?
- From: Joern Rennecke <joern dot rennecke at embecosm dot com>
- To: Jeff Law <law at redhat dot com>
- Cc: David Fang <fang at csl dot cornell dot edu>, Geert Bosch <bosch at adacore dot com>, Simon Baldwin <simonb at google dot com>, gcc at gcc dot gnu dot org
- Date: Wed, 03 Apr 2013 23:44:02 -0400
- Subject: Re: If you had a month to improve gcc build parallelization, where would you begin?
- References: <CAPTY64o0UBQBwnq_GMNOBRmdBV4QTc+En3Q7pLn6iR1aKXKQTA at mail dot gmail dot com> <43ABCE7D-03A4-4534-9A3C-79360A7AEC75 at adacore dot com> <Pine dot LNX dot 4 dot 64 dot 1304031751290 dot 19270 at hal-00 dot csl dot cornell dot edu> <20130403195359 dot dxngsssuo8cgsww4-nzlynne at webmail dot spamcop dot net> <515CDC53 dot 5000009 at redhat dot com>
Quoting Jeff Law <law@redhat.com>:
Using distcc and ccache is trivial; I spread my builds across ~20
processors around the house...
CC=distcc
CXX=distcc g++
CC_FOR_BUILD=distcc
CXX_FOR_BUILD=distcc
It's not quite that simple if you want bootstraps and/or Canadian crosses.
STAGE_CC_WRAPPER=distcc
STAGE_CXX_WRAPPER=distcc
How does that work?
The binaries have to get the all the machines of the clusters somewhere.
Does this assume you are using NFS or similar for your build directory?
Won't the overhead of using that instead of local disk kill most of the
parallelization benefit of a cluster over a single SMP machine?