distcc distributed compiler

Registered 2006-04-06 by Martin Pool

distcc is a program to distribute builds of C, C++, Objective C or Objective C++ code across several machines on a network. distcc should always generate the same results as a local build, is simple to install and use, and is usually much faster than a local compile.

distcc is a program to distribute builds of C, C++, Objective C or Objective C++ code across several machines on a network. distcc should always generate the same results as a local build, is simple to install and use, and is usually much faster than a local compile.

distcc does not require all machines to share a filesystem, have synchronized clocks, or to have the same libraries or header files installed. They can even have different processors or operating systems, if cross-compilers are installed.

distcc sends the complete preprocessed source code across the network for each job, so all it requires of the volunteer machines is that they be running the distccd daemon, and that they have an appropriate compiler installed.

distcc is not itself a compiler, but rather a front-end to the GNU C/C++ compiler (gcc). (There is preliminary support for some other compilers but the main focus is gcc.) Almost all gcc options and features work as normal.

distcc is designed to be used with the -j parallel-build feature in GNU Make or SCons, or other build tools. Shipping files across the network takes time, but few cycles on the client machine. Any files that can be built remotely are essentially "for free" in terms of client CPU.

distcc has been under development since early 2002. It reliably and successfully compiles large, complex free and proprietary software systems. Programs known to build correctly with distcc include the Linux kernel, rsync, KDE, GNOME (via GARNOME), Samba and Ethereal.

distcc is nearly linearly scalable for small numbers of machines: Building Linux 2.4.19 on a single 1700MHz Pentium IV machine with distcc 0.15 takes 6 minutes, 45 seconds. Using distcc across three such machines on a 100Mbps switch takes only 2 minutes, 30 seconds: 2.6x faster. The (unreachable) theoretical maximum speedup is 3.0x, so in this case distcc scales with 89% efficiency.

You don't need a lot of machines to benefit: a laptop and a single desktop is much faster than a laptop alone.

Project information

Maintainer:
Martin Pool
Driver:
Not yet selected
Development focus:

trunk series 

lp:distcc 
Browse the code

Programming Languages:
c,python
Licences:
GNU GPL v2
()

RDF metadata

View full history Series and milestones

distcc trunk series is the current focus of development

More contributors Top contributors

All packages Packages in Distributions

Get Involved

Downloads

distcc does not have any download files registered with Launchpad.