-
-
Notifications
You must be signed in to change notification settings - Fork 194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Power consumption inconsistency #153
Comments
Hello @alexandredias3d Could you please try the new version available at the dev branch with the new PowerExampleSchedulingInterval example and give me some feedback? Thanks for your contributions. |
You can check the messages in the last 2 commits and the new comments in the code for more details. |
Btw, realize that power consumption is computed in a different way now. |
Hi @manoelcampos, Sorry for the late reply. I have tested out the new features and they are working perfectly. I believe that using the DoubleSummaryStatistics from the UtilizationHistory will ease a lot the development of new heuristics for VM consolidation. Thanks for your hard work. |
Don't worry. And great that it's working as expected. |
…SING events The CloudletSchedulerAbstract.updateProcessing may return 0 to indicate that all running Cloudlets finished but there are Cloudlets into the waiting list (instead of retuning Double.MAX_VALUE to indicate there isn't any Cloudlet at all). In such situation, this value was not being considered and since zero is smaller than the Simulation's minTimeBetweenEvents, the value of this attribute was being added to the value returned by the mentioned method. The return value indicates the time the next event should be processed, while, in the mentioned scenario, it was not needed to send one more VM_UPDATE_CLOUDLET_PROCESSING event. Furthermore, finished Cloudlets were just being removed from the execList after updating the processing of Cloudlets in such a List. The addCloudletsToFinishedList() was called earlier to enable moving those Cloudlets to the finishedList, then just update the processing of Cloudlets actually running. Finally, when the Double.MAX_VALUE was returned from the VmSimple.updateProcessing, the decimal places from the current simulation clock were being removed from the mentioned value (that was required to fix issue #153). This way, after the method call, when checking if the returned value was equal to Double.MAX_VALUE, to indicate there are no more Cloudlets, it wasn't in fact. Subtracting the simulation's clock decimal places from the returned value was causing more events to be sent. This was the major performance issue. Signed-off-by: Manoel Campos <manoelcampos@gmail.com>
Expected behavior
Power consumption should be the same, or at least very close, even when changing the scheduling interval.
Actual behavior
Power consumption is varying way too much for some values of scheduling interval.
Example
Check the new PowerExampleSchedulingInterval.java introduced after the issue was fixed.
The text was updated successfully, but these errors were encountered: