public interface PowerModel extends PowerAware

Provides a model for power consumption of hosts, depending on utilization of a critical system component, such as CPU. This is the fundamental class to enable power-aware Hosts. However, a Host just provides power usage data if a PowerModel is set using the . The power consumption data is return in Watt-Second (Ws), which is just in a different scale than the usual Kilowatt-Hour (kWh).

The interface implements the Null Object Design Pattern in order to start avoiding NullPointerException when using the PowerModel.NULL object instead of attributing null to PowerModel variables.

If you are using any algorithms, policies or workload included in the power package please cite the following paper:

Author:Anton Beloglazov, Manoel Campos da Silva Filho



PowerModel NULL

A property that implements the Null Object Design Pattern for Host objects.



double getEnergyLinearInterpolation(double fromUtilization, double toUtilization, double time)

Gets an estimation of energy consumption using linear interpolation of the utilization change. It’s required to set a in order to get power usage data.

  • fromUtilization – the initial utilization percentage
  • toUtilization – the final utilization percentage
  • time – the time span between the initial and final utilization to compute the energy consumption

the estimated energy consumption


Host getHost()


double getMaxPower()

Gets the max power that can be consumed by the host in Watt-Second (Ws).

Returns:the max consumption power in Watt-Second (Ws)


double getPower(double utilization)

Gets power consumption in Watt-Second (Ws) of the Power Model, according to the utilization percentage of a critical resource, such as CPU.

The power consumption data is just available while the host is active.

  • utilization – the utilization percentage (between [0 and 1]) of a resource that is critical for power consumption.

the power consumption in Watt-Second (Ws)


void setHost(Host host)