We're writing an application that needs to read package temp and current core multiplier. We haven't found any useful information from Intel so far about how to access this information. Additionally, we also want to be able to set the core multiplier. Does anyone know how we go about starting to write this app? We haven't been able to find any API's, SDK's, or documentation that points us in the correct direction.
You can look at http://openhardwaremonitor.org/ for source code and binaries for the temperature.
On windows, I haven't had much luck controlling the cpu frequency. Windows generally keeps butting in and changing the frequency.
But once you have the ring 0 ability to read/write MSRs, you can look at linux frequency governor code to see how to change the frequency. Note that you can only increase the frequency beyond the turbo frequency on 'extreme' processors (or that is how it used to be).
Lots of BIOS's have an option to change the frequency.
Thanks, that gives me a start. We're working with K or X flavor CPU's, so adjusting the multiplier shouldn't be a problem. Since we need to monitor multiplier and temp in psuedo real-time and make multiplier changes based on temp, we can't rely on a BIOS to set the multiplier.
Maybe it can be useful too: Intel Performance Counter Monitor contains both source code for reading core and package thermal headroom. Package thermal headroom is supported on Intel(r) Xeon(r) E5 family processors only.