I have been making use of the Intel Performance Counter Monitor (http://software.intel.com/en-us/articles/intel-performance-counter-monitor) software on Mac OS X. The class defined in MSRAccessor.h allows one to read the Model Specific Registers on a macbook, including performance counters and other system information. However, there is no way to know on what CPU the current thread is executing, in order to read MSRs that have scope of only one logical processor. One thus cannot measure things such as the ratio of un-halted core clock ticks (MSR name IA32_FIXED_CTR1) to un-halted reference clock ticks (MSR name IA32_FIXED_CTR2) in order to measure turbo boost activity on the system. Is there a way to target the appropriate CPU in order to get this type of information?
For more complete information about compiler optimizations, see our Optimization Notice.