Energy Proportionality Trends

I recently published a blog on Data Center Knowledge about how energy proportionality has essentially doubled the server efficiency gains beyond what “Moore’s Law.”  This doubling was done by improving the “energy proportionality” of workload scaling.

A problem I’ve been stewing about is how to express proportionality in a simple way. There are of course lots of ways to think about it (and many of them equivalent). So what I am going to do here is propose a generic idea to emphasize an interesting insight into the proportionality of Xeon, and let other argue about the details.

Let’s divide this into three parts: 1) A framework, 2) Practical application to SPECPower results and 3) Insight from historical trends.

Part 1. A Framework

Establishing a framework for a “proportionality index,” of course, has some arbitrariness to it. Following some simple ideas about “what works for managers” let me just propose the following ideas. Looking at the graph of two hypothetical (and idealized) server load lines in the graph below you can see what distinguishes ideally Proportional Server “A” from non-ideal Server B is the area between the two curves. We can use this area difference as a metric of proportionality.


It is relatively easy to show that the area difference, which I will call SPI, between straight line (B)

Power = b + (1-b) * Workload

and an ideal line (A) is

Area = b/2

Where b = Idle Power/Max Power.

We can turn this into a Server Proportionality Index (SPI) with the following formula

SPI = 2(1 - Area) = 2*(1 - b/2 )

The index is zero for a server that has no energy scaling and one for a server with “ideal” linear scaling.

Part 2. Application to SPECPower

This idea can easily be applied to data readily available in the SPECpower benchmark.

In the figure below some data from a recent measurement on a Dell PowerEdge Server based Xeon E5-2600 are shown.


A little intuition will persuade you, and a little algebra will prove, that

SPI = 2(1 - AveragePower/PeakPower)

Where AveragePower is just the arithmetic average of the “average active power” measurements of SPECpower and PeakPower is the power at the targeted 100% load point. In the data set shown

SPI = 2(1 - (134 Watts)/(246 Watts)) = 0.90

This value is very close to ideal. Note that the idle power to max power ratio is about 0.21. The higher efficiency of the system mid-load improves the SPI. This emphasizes the importance of measuring the whole load line and not just the end points.

Part 3. Understanding Trends

Going back to the SPECPower database, I pulled the historical trends of volume two socket servers based on the Intel Xeon Processor and calculated the SPI for them all. I plotted the results in two ways to emphasize particular aspects about the dependence on the load line.


The graph on the left shows the trend of SPI versus the ratio of Idle/Max Power. The points generally follow closely the “ideal line” show as a dashed line on the plot. The notable exception is the departure at the lower end as noted above. This departure reveals very clearly why an improved way of thinking about proportionality is needed; the load lines of real servers are no longer well approximated by linear functions.

Looking at the second graph the historical trend of proportionality reveals very clearly the architectural transitions between families of Xeon processors. With each successive generation the proportionality index (as measured here) has improved in the range of 0.2 per generation. 

So there you have it: a simple way to analyze the energy proportionality of non-linear servers and a simple formula for calculating a “Proportionality Index.” The historical trend shows not only the clear deviation from linearity but reveals the major architectural transitions in Xeon processor families.

The data pose an interesting question: is a straight line really the “ideal load line?” It is very conceivable (and certainly theoretically possible) that we will see SPI > 1 in the near future. So is proportionality really the right end goal? What would be the ideal load line? Is there such a thing? Any opinions out there?