GCC Sees More Progress On Ability To Parallelize The Compilation Of Large Source Files

Written by Michael Larabel in GNU on 29 July 2020 at 06:17 PM EDT. Add A Comment
GNU
While GCC with GNU Make and other build systems can scale nicely in compiling many files concurrently, there has been an ongoing GCC effort to be able to parallelize more of the GNU Compiler Collection work when compiling large source files.

Back in the summer of 2019 the work got underway for trying to address the parallelization bottleneck in letting more of the compiler work be parallelized in larger source files.

Good progress was made in 2019 while student developer Giuliano Belinassi is back with Google Summer of Code this year continuing the work.

Belinassi provided his second report today on the "automatic parallel compilation viability" for speeding up the compiling of large files along with integration for the GNU Jobserver.

The code is working and via a branched version of GCC it can be tried. Speedups on a quad-core Intel Core i7 mobile processor range from slight slowdowns to around 1.9x the speed of the original GCC code. The C, C++, and Fortran front-ends to GCC currently support this work while other front-ends may come in time.

Belinassi concluded the latest status report with "The current project is going well, although conservative approaches such as disable static promotion may impact negatively the parallelism potential. One way to fix this in the future is to communicate the final assembler file back to the main GCC process and then concatenate back into one assembler file, rather than do partial linking of multiple assembler files. This certainly will increase Interprocess Communication costs, but it may be worth."

Hopefully the work continues going well and this parallelization improvement for GCC ultimately makes it upstream in the not too distant future.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week