On 07/15/2015 04:57 PM, Dugger, Donald D wrote:
In re: Static CPU frequency. For modern Intel CPUs this really isn't true. Turbo Boost is a feature that allows certain CPUs in certain conditions to actually run at a higher clock rate that what is advertised at power on (the havoc this causes code that depends upon timing based upon CPU spin loops is left as an exercise for the reader :-)
Reasonably recent machines have constant rates for the timestamp counter even in the face of CPU frequency variation. Nobody should be using bare spin loops.
Having said that, I think CPU frequency is a really bad metric to be making any kind of scheduling decisions on. A Core I7 running at 2 GHz is going to potentially run code faster than a Core I3 running at 2.2 GHz (issues of micro-architecture and cache sizes impact performance much more than minor variations in clock speed). If you really want to schedule based upon CPU capability you need to define an abstract metric, identify how many of these abstract units apply to the specific compute nodes in your cloud and do scheduling based upon that. There is actually work going to do just this, check out the BP: https://blueprints.launchpad.net/nova/+spec/normalized-compute-units
I agree with the general concept, but I'm a bit concerned that the "normalized" units will only be accurate for the specific units being tested. Other workloads may scale differently, especially if different CPU features are exposed (potentially allowing for much more efficient low-level instructions).
Chris __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: [email protected]?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
