distcc - Distributed C Compiler


Distcc is one of those little gems that falls under the Unix philosophy of having many small simple tools working together. Distcc is a distributed compiler. Well, not really a compiler because it works with any existing compilers. It sends compile processes to any number of other computers to help speed things up. It builds open make's -j (for number of parallel jobs) argument, except it allows to send some of the parallel jobs to other computers via the network. It can also be used together with ccache for even further speed ups.

I tried to do a cross compile of Samba 3.0, using a Linux Debian system and Cygwin. It compiled fine; however it would not link in the Cygwin .o objects :-)

Here's some timings I did from compiling the linux 2.5.44 kernel. All of the compiles were initiated by System A. These times are for 'make bzImage modules'. The configuration I used was the initial one provided by menuconfig, with SCSI support turned off and the processor type changed to PIII.

System A: P-III 1Ghz, 512MB laptop System B: AMD K6-2 500Mhz, 196 MB server

Distcc (A&B): 12m36s non-distcc: (A only): 18m37s Ccache+Distcc (A&B): 7m26s

See also C, Programming, Linux, fvlug