If you had a month to improve gcc build parallelization, where would you begin?
Segher Boessenkool
segher@kernel.crashing.org
Wed Apr 10 02:19:00 GMT 2013
>> 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?
>
> This will be true regardless of communication method. There is so
> little
> opportunity for parallelism that anything more than 4-8 local cores is
> pretty much wasted. On a 4-core machine, more than 50% of the wall
> time
> is spent on things that will not use more than those 4 cores
> regardless.
> If the other 40-50% or so can be cut by a factor 4 compared to 4-core
> execution, we still are talking about at most a 30% improvement on the
> total wall time. Even a small serial overhead for communicating
> sources
> and binaries will still reduce this 30%.
>
> We need to improve the Makefiles before it makes sense to use more
> parallelism. Otherwise we'll just keep running into Amdahl's law.
Some numbers, 16-core 64-thread POWER7, c,c++,fortran bootstrap:
-j6:
real 57m32.245s
user 205m51.480s
sys 6m24.043s
-j10:
real 45m55.034s
user 211m37.833s
sys 6m33.305s
-j15:
real 41m51.061s
user 237m26.174s
sys 7m2.341s
-j60:
real 38m18.583s
user 336m12.393s
sys 11m26.717s
Segher
More information about the Gcc
mailing list