[oe] PARALLEL_MAKE

Ulf Samuelsson ulf.samuelsson at atmel.com
Fri Mar 13 17:48:17 UTC 2009


>> The Core i7 has 4 cores and each core has two virtual CPUs so the system
>> sees 8 CPUs.
>> I saw some commone from someone claiming that if
>> you have n CPUs, then Buildroot should use make -j`2*n`.
>>
>> I thought about this, and came up with the following explanation.
>> If you have one job per CPU, then  whenever you have to wait for the
>> harddisk, you stall this CPU.
>> If you have several jobs per CPU, then you can gain some time
>> by running the second job while the first job was waiting for the hard
>> disk.
>>
>> Whether this works in practice, I cannot say, but it would be interesting
>> to have some real proof.
>
> First of all, I believe -j`2*n` is very agressive. I've seen other 
> suggestions
> of using -j`n+1` or -j`n+2`.
> Second, your Core i7 still has 4 real cores. Even though HyperThreading
> presents each core as 2 virtual ones, those are not real 8 cores. And
> according to [1], sometimes using HyperThreading may degrade the overall
> performance...
>
> So, you should experiment with your settings and find a sweet spot, which
> maybe somewhere between 4 and 16 threads :)
>

Yes, I know,
Maybe it is a good idea if the result of a build is published somewhere,
so that others do not have to go through this process.

Right now, openembedded does not even build for me,
since the native perl build fails :-(

> [1] http://en.wikipedia.org/wiki/Hyper-threading
>


Best Regards
Ulf Samuelsson 






More information about the Openembedded-devel mailing list