You have different options.
Firstly, you can download an archive (https://github.com/Spirals-Team/bitwatts/releases/download/1.0/bitwatts-cli-1.0.tgz), untar it and then execute the command (./bin/bitwatts [options]). You can check the its wiki (https://github.com/Spirals-Team/bitwatts/wiki), or the wiki of the underlying library (https://github.com/Spirals-Team/powerapi/wiki).
Secondly, if you really want to build BitWatts from source, you have to use sbt.
Go to the parent folder, and execute the sbt command. Then you can access to two projects: bitwatts-core and bitwatts-cli. The first one contains all the code logic of BitWatts, whereas the second one is just an assembly of components for end-users.
You can also use BitWatts as a third-party library, then you can use sbt to build the core project with the package subcommand:
sbt > project bitwatts-core > package
Let me know if you want more details.
Hey Guys..!! Sorry to bother you..
I am unable to access the tool. I cannot see measurements..
When I untar the bitwatts package, and run the command
I am getting the output as,
no Java installations were detected
Please go to http://www.java.com/getjava/ and download
Please help me in getting some measurements....
I want to measure power for the openstack site which I run in my university. I am currently working on a project under my professor. Its a research project.
Hence, I want to measure the power usage of the nodes, and the Virtual machine.
If you can guide me on how I can measure power usage of my laptop, I can do the same thing to my experimental setup in the university.
Please guide me.
Hi, BitWatts is a library built on top of PowerAPI for process level power estimations inside virtualized environments. If you want more details, check out our paper: https://hal.inria.fr/hal-01130030. It will explain how we can achieve this fine-grained monitoring and you will see if it fits your needs.
However, if you would like to get the overall power consumption of a VM, you can consider directly PowerAPI (http://www.powerapi.org/) and you can consult the documentation to get more details on how to use it.
Let me know if you need help
I am able to install the software tools powerapi and bitwats as well. But I am still facing difficulties in viewing measurements. It would help me if you can provide few examples/sample commands to use to view the power consumption.
When I run the commands ./bin/bitwats I am getting various errors like unable to find modules, invalid command and so on.
Any help in obtaining the measurements is really useful for us.
Please find some time to answer our question.
Could you give us more details on what you want to do? What kind of measurements do you want to perform?
What is exactly the command that causes this error ?
Hi, I am Raywon and I am a masters student currently working in thesis project. I am using bitwatts tool to estimate the consumption.
I am increasing the load on CPU over a period of time, and when the CPU is at 100% but not 100%, the power consumption value is constant and is not varying.
The laptop which I tested on is having a TDP of 35
when I did the above mentioned way, the value is constant at 24.5 continuously
Is this an error, or why is the value not varying?
Any help would be appreciated
Hi, thanks for using BitWatts.
Did you try to have a non-constant workload to see any variation?
For instance, you can use
cpulimit to limit the load of a task and check whether the value is changing.
If you load is approximatively 100%, it seems normal to get the estimation given by the formula
P = 0.7 * TDP * CPU_load
As my main aim to use bitwatts is to measure consumption of various hosts (physical machines) and virtual machines running in it. basically this setup is of openstack.
hence, I can move on to powerapi directly.
As part of my project, one of the task is to find the estimation of a particular host when its load is increased from 0% to 100% gradually. When the load is varying the values differ, but When a constant load is maintained at/or near 100% it is giving the constant value, which I thought is not ideal, but with the formula I understood the concept. Here CPU_Load is actually CPU Utilization as far as I know. Because, as per my knowledge, 100% CPU Utilization may not lead to 100% load but increasing load from 0 to 100% will definitely make the cpu to be utilized 100%. So according to the formula, in some cases even though the load is somewhere between 0 to 100, the CPU utilization can be 100% which gives us the constant output value. Did you understand my point here?
Can you give some more information on the cpulimit mentioned? Is it part of the bitwatts tool or is it the device parameter.
Thanks for your time.
If you load the CPU, the utilization will follow the same trend. If you have a processor with 4 cores (w/ or wo/ hyper-threading) and you put one core to its full load, the CPU utilization will be 25% and it will then impact the power estimation produced by PowerAPI (
0.7 * 34 * 0.25 = 5.95W)
Otherwise, if you put the 4 cores at their maximum, you will get the max power consumption of your CPU (reprensented by the formula previously described).
This model is a basic one but it is the most simple to use on a wide range of architectures.
The last version of the PowerAPI’s CLI allows to get the power consumption in mW, which can give you more acurrate results.
We also built more efficient power model by learning (method available on github), but you need to have a PowerSPY (http://www.alciom.com/en/products/powerspy2-en-gb-2.html) for learning the model.
cpulimitis an external tool (https://github.com/opsengine/cpulimit) which you can use directly in a terminal ;-)
My thesis aims in finding consumption of all the processes together (--targets all) and measuring consumption particular process which is leading to the load (--targets pid)
which one do you suggest I use (BitWatts or the PowerAPI)?
Thanks for all the help you are doing
And can you give the installation steps in installing the PowerAPI tool
As far as I know, the usage is more like BitWatts which I have some experience i.e., ./bin/bitwatts and the rest data. In place of bitwatts we use powerapi i.e., ./bin/powerapi and the data.
If you want to get the power estimation of processes running on the host, you can use PowerAPI.
If you would like to go further and get power eestimation inside VM, you need BitWatts.
You can simply use our CLI (https://github.com/Spirals-Team/powerapi/releases/download/4.0/powerapi-cli.tgz), then execute the script
./bin/powerapi. Like BitWatts, you have to configure PowerAPI through the configuration file.
./bin/bitwatts modules cpu-simple monitor --frequency 50 --targets 27828 --console duration 5