Eric Saxe wrote: > For a default, I was leaning towards "maximize performance, but don't > squander power". That way, without doing anything system > administrators / users will still get the performance levels they have > come to expect..but will also see overall efficiency improvements, > since average system utilization is generally very low.
So if the system has 8 CPUs and 8 threads running, how do you decide on the number of CPUs to keep idle and clocked down? Maybe 8 threads on a single CPU will still be satisfactory from the application's point of view? >> There can be some special cases when performance feedback from >> applications is not needed. For example, we can decide that more than >> one thread per CPU results in a noticeable performance degradation, >> and so the power management policy can then learn what clock >> frequencies to assign to existing CPUs based on observing how many of >> those CPUs have some threads running on them. Do you think this is an >> important case to address? If so, then a separate management policy >> should be developed for this case, which will be "turned on" whenever >> such case is detected. > > I'm not sure I understand the scenario. The existing CMT scheduling > policy will still be active...trying to load balance work > across CPUs that have a shared physical relationship. The power > components of the scheduling policy may be trying to counter > this by coalescing work (where possible). Finding the optimal balance > between coalescence and load balancing is the interesting objective. > Is that what you mean? What you said is right, and it is the general problem statement. I was suggesting to look at the following special case. Let's say the system has 8 CPUs and the number of running threads (each of them consumes 100% of any one CPU) randomly fluctuates between 0 and 8. So when only 3 threads are running, how many CPUs can we afford to clock down and to what extent should they be clocked down? This may depend on the length of time there were only 3 threads in the system. In general, we can learn a policy that will map the pattern of current and recent CPU utilization into the decision about the number of CPUs to be clocked down by 50%, by 25%, etc. David
