The most of us holds a multicore system, but often we don't use this characteristic, especially when we need to compile our programs.
In linux, you can use the boost of the multicore simply defining an environment variable. The CONCURRENCY_LEVEL variable.
I want to provides a simple example to understand the power of this variable. Let's compile the kernel 3.0.0.
First we try without any options:
# cd /usr/src/linux
# echo "Y"|make config
# time make
The results on my laptop are as follows:
real 112m8.846s
user 97m2.304s
sys 8m16.867s
Then we try with 5 processes running in parallel:
# export CONCURRENCY_LEVEL=5
# make clean
# time make
And the results are the following:
real
69m19.437s
user 109m24.562s
sys 9m2.986s