[openstack-dev] [nova] schedule instance based on CPU frequency ?

Dugger, Donald D donald.d.dugger at intel.com
Thu Jul 16 14:51:06 UTC 2015


In re: Normalized units.  I agree that this is dependent upon benchmarking and there are many issues with the reliability of benchmarks.  Having said that, I think normalized units is a much better metric to be using than CPU frequency.  The reality is that the end user doesn't care about CPU freq., the end user cares about how fast the computer will run his job.  That is the goal of the normalized compute units BP, to provide a consistent way of measuring the performance of the compute node.

--
Don Dugger
"Censeo Toto nos in Kansa esse decisse." - D. Gale
Ph: 303/443-3786

-----Original Message-----
From: Chris Friesen [mailto:chris.friesen at windriver.com] 
Sent: Thursday, July 16, 2015 12:07 AM
To: openstack-dev at lists.openstack.org
Subject: Re: [openstack-dev] [nova] schedule instance based on CPU frequency ?

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: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list