Saturday, May 21, 2011

distcc to paralel compile the Linux Kernel

Have you heard about distcc? distcc home page

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.

As I'll compile Linux Kernel hundreds of times in the upcoming months, and as I have two available servers, I decided to give distcc a try. It is easy to install and use. There are two modes: Regular and Pump-mode. Regular mode is easy to use but I was not able to boost the performance over 15%. The pump-mode did not work on my 64 bits system. I've tried pump-mode on 32 bits system, it worked easily but the performance gain wasn't as high as I was expecting. For now I decided to not use distcc.

But I learned about a magic performance argument for "make". It is "-jX", where X is the number of simultaneous actions that "make" will start. On x86 systems, you can set X to something between the number of cores and its double. For my notebook with Intel Core 2 Duo, setting "-j3" gave me the best results.

ADDED ON JUN 27: I got great results with distcc. See it here.

No comments:

Post a Comment