On Wed, Jul 06, 2011 at 09:01:20PM +0200, Antonio Cuni wrote:
that would be really cool. However, I'm not sure it's enough to prevent "random noise".
E.g., I know that modern CPUs have a mechanism that turns off the unused cores in order to speed up the active ones (by slightly incrementing the frequency). If this is the case, then I fear that the only way to have a precise benchmark is to run only one process at time.
Looks like a X5680 cpu so yes it has the turbo boost feature (http://en.wikipedia.org/wiki/Nehalem_(microarchitecture)#Server_.2F_Desktop_...) i am running an i7 for building pypy and have the same turbo boost feature and in practice have not found it to be an issue aslong as you are only running one translation at a time. as the workload is single threadded it ramps up nicely. a lock or two should prevent the turbo boost enabling/disabling erratic but it is also under kernel control.
i havent investigated how much control the kernel has over it but i assume if you switch the cpu speed governers from performance over to user mode and manually set the freqency that should not be much of an issue
turbo mode is socket specific so the isolation i talked about in my last post would prevent compiles' from affecting the cpu freqency on the benchmark cpus
as a side note this may be a good time for my to push for making the benchmark scores user time + kernel time instead of wall clock time