Low-energy BOINC

The goal of this project is to evaluate how much energy is consumed by DG, and how this compares to the energy consumed by more conventional solutions, such as computing clusters and cloud computing. The general understanding is that DG requires less energy than the other solution but we lack real figures to validate this hypothesis. With this work we want to remedy this shortcoming. In addition, it can provide valuable information about we can further reduce the energy of DG solutions.

The first reaction would be to simply measure how much energy a system consumes. However, we have also to take into account how much computing it performs. So it seems more appropriate to look at the amount of computation performed PER unit of energy that goes into the system, or the Performance/Watt.

The performance of a system roughly means the speed of computation of the machine. The performance is, in itself, a flexible concept, but we will make the following assumptions:

The Performance/Watt thus seems a good measure to evaluate a system. However, computers in a DG are "time-sharing" systems: the machine is used both for the scientific computation and for its "regular" use, for example, office applications or web services. We should therefore be more precise in how we compute the energy consumption of the machine since part of the consumption is due to the other uses.

There are three canonical situations:

In the first and the second case, the energy consumption and computing efficiency are more easy to define. In the last case, this is less straightforward because we need more detailed info about how the resources are charged between the tasks. It requires a fine-grained monitoring.

What we have to do is estimate the "DG-Power" requirements and the "DG-Performance" of the machine. The DG-Power is the amount of energy put into the system to run the Desktop Grid applications. Similarly, the DG-Performance is the basically the speed of computation of the DG applications. Once we have these numbers we can compute the Performance-per-Watt = DG-Performance / DG-Power.

In the case that the machine runs BOINC apps 100% of the time at 100% of the CPU capacity, DG-Performance / DG-Power = Machine-Performance / Machine-Power. This is true also when the machine runs the computation intermittently, but has all the resources when it does.

In the third scenario mentioned above (when the machine is simultaneously used for other purposes) we have to split of the energy used for these activities, from the energy used for the computation. In many cases, the other activities (such as the owner doing office work) does not stress the computer very much and its energy consumption is close to a stable minimum energy level. However, when the computation is thrown into the mix, this energy consumption will go up because more resources (CPU, memory) are used. It is this extra energy that we should measure and use to evaluate the power consumption of the Desktop Grid. The energy monitor described in the previous section therefore measures the CPU load of the user and DG applications in combination with the instantaneous power consumption. From this data, we estimate the base-line energy consumption of the machine, and the extra energy consumption, the DG-Energy , due to the computation. We also measure the progress of the running BOINC applications to estimate the DG-Performance.

We also assume that there are four broad classes of machines that participate in DG: servers, personal desktops, personal laptops, private desktops. We will have to evaluate how they map to the three simple use cases discussed above.

The analysis of the information gathered by the energy monitor will help us detect stereotypical situations. For each situation we will analyse what the performance per Watt is, and what can be done to decrease the energy requirements. This will lead to a set of profiles that can be used to configure BOINC and the machine.