Example 5: Dynamic Workload

Devices that can dynamically change their operating speeds and thus power consumed, are useful primarily in a scenario where the workload itself is dynamic. Thus, this modeling capability is useful only if we can specify a time-varying workload pattern.

PowerPerfCenter allows the specification of a dynamic workload profile, which is then implicitly repeated if the simulation time is longer than the duration of the workload profile. The workload is defined as a set of tuples - each tuple corresponds to a load level and the duration of this load level. The exact specification is as follows:

workload cyclic
noofusers 25  30  35  40  45  40  35  30  25  25  20  15  20  25  end
interval  300 300 300 300 300 300 300 300 300 300 300 300 300 300 end
end

Retrieving and printing the values of the metrics has an additional feature when it comes to cyclic workload. The normal invocation (like respt() or respt(host:server)) will yield a plain-text tabular output of the server output. In the below example output, the first column indicates cumulative time, second value the actual value of the metric in that particular slot, and the third value being the load level.

300.0 0.25835371753612657 25.0
600.0 0.2985893030379073 30.0
900.0 0.33969413373522045 35.0
1200.0 0.39436151057256036 40.0
1500.0 0.5138373785526069 45.0
1800.0 0.4096088647914943 40.0
2100.0 0.34160549628565423 35.0
2400.0 0.2960500496548456 30.0
2700.0 0.2541101178643327 25.0
3000.0 0.25573148944557716 25.0
3300.0 0.22913703342704078 20.0
3600.0 0.21060891275646207 15.0
3900.0 0.22126170455533734 20.0
4200.0 0.25266438279785525 25.0

In order to get the specific slot-level value for a metric, the same metric call can be indexed (like respt()[2]). The index starts with zero. Hence, from the above list, the call respt()[2] would yield the value 0.33969413373522045.

You can download the sample input files used for the ICPE 2014 paper here.