Dynamically Binding Cloudlets to specific VMs by pausing simulation at specific intervals

13 views
Skip to first unread message

Remesh Abhijith

unread,
Oct 23, 2021, 8:05:36 AM10/23/21
to CloudSim Plus: Cloud Simulation Framework
Hello ,

I used the following setup for the scenario:
-4 Hosts each with 1 PE and VmSpaceSharedScheduler
-4 Vms each with 1 PE and CloudletSpaceSharedScheduler.
-Vm1,Vm2, Vm3, Vm4 has 1000, 2000, 3000, 4000 MIPS capacity respectively.
-100 cloudlets each with 1 PE and 4000 cloudlet_length.
  
I am trying to change the Cloudlet to VM binding dynamically by pausing the simulation at certain intervals using clock listeners. That is, if the order is {1,2,3,4}, then the cloudlets should get bound first to Vm1 at 1st pause, then to Vm2 at 2nd pause, then to Vm3 at 3rd pause and finally to Vm4 at 4th pause. At each pause, the broker is configured to bind the remaining cloudlets to the next Vm in the sequence.

Hence, At each pause
1. the finished cloudlets are removed from the cloudletlist, thus having only the unprocessed cloudlets.
2. The remaining cloudlets are again submitted to the broker so that the broker will bind them to the next Vm in the sequence.

As per the table results, I find that the broker binds the cloudlets to different VMs as per the sequence. But, on inspecting the cloudlet execution times from the table results, I find that all the cloudlets are actually executed by the first Vm in the sequence because the execution times of cloudlets suggests that they are executed by first Vm.( exec_time = cloudlet_length/VM_MIPS) ( I know cloudsimplus calculates exec_time = finish_time - start_time). 

As a result, metrics (ex. makespan) obtained by running the 100 cloudlets with Vm1 is same as the metrics (ex. makespan) obtained by 100 cloudlets with {Vm1,Vm2,Vm3,Vm4}.

Hence, I got confused if the cloudlets are actually getting bound to the different VMs.

Could you please let me know where I am going wrong ?

Looking forward to your reply with hope.

Prof. Manoel Campos

unread,
Oct 25, 2021, 5:53:05 AM10/25/21
to clouds...@googlegroups.com
Hello Remesh,
 
I used the following setup for the scenario:
-4 Hosts each with 1 PE and VmSpaceSharedScheduler
-4 Vms each with 1 PE and CloudletSpaceSharedScheduler.
-Vm1,Vm2, Vm3, Vm4 has 1000, 2000, 3000, 4000 MIPS capacity respectively.
-100 cloudlets each with 1 PE and 4000 cloudlet_length.
  
I am trying to change the Cloudlet to VM binding dynamically by pausing the simulation at certain intervals using clock listeners. 
That is, if the order is {1,2,3,4}, then the cloudlets should get bound first to Vm1 at 1st pause, then to Vm2 at 2nd pause, then to Vm3 at 3rd pause and finally to Vm4 at 4th pause.
If I understood correctly, you are trying to migrate Cloudlets from a VM to another.
In practice, we don't migrate applications. We can migrate VMs or containers, but CloudSim Plus doesn't have container support.
If you are considering that your Cloudlets are containers, it would make sense, but CloudSim or CloudSim Plus don't support Cloudlet migration, that is why you are having problems. Check this discussion for more details.

It's not clear why you are trying to perform such cloudlet migration, so that I can propose solutions.
 
At each pause, the broker is configured to bind the remaining cloudlets to the next Vm in the sequence.

Hence, At each pause
1. the finished cloudlets are removed from the cloudletlist, thus having only the unprocessed cloudlets.
2. The remaining cloudlets are again submitted to the broker so that the broker will bind them to the next Vm in the sequence.

As per the table results, I find that the broker binds the cloudlets to different VMs as per the sequence. But, on inspecting the cloudlet execution times from the table results, I find that all the cloudlets are actually executed by the first Vm in the sequence because the execution times of cloudlets suggests that they are executed by first Vm.( exec_time = cloudlet_length/VM_MIPS) ( I know cloudsimplus calculates exec_time = finish_time - start_time). 

As a result, metrics (ex. makespan) obtained by running the 100 cloudlets with Vm1 is same as the metrics (ex. makespan) obtained by 100 cloudlets with {Vm1,Vm2,Vm3,Vm4}.

Hence, I got confused if the cloudlets are actually getting bound to the different VMs.

Could you please let me know where I am going wrong ?

Looking forward to your reply with hope.

--
If you received an answer that worked for you, please be kind and reply to let everybody knows it worked.
http://cloudsimplus.org
---
You received this message because you are subscribed to the Google Groups "CloudSim Plus: Cloud Simulation Framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cloudsim-plu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cloudsim-plus/5c1b6021-2238-49cf-8a15-6fea7dba0851n%40googlegroups.com.

Remesh Abhijith

unread,
Oct 25, 2021, 6:35:00 AM10/25/21
to clouds...@googlegroups.com
Hello Maneol,

First of All, Thank you for the reply.

This is what I am trying to achieve:

Suppose I have 5 scheduling policies, say (1,2,3,4,5) each of which  binds cloudlets to VMs in a specific logic.
These scheduling policies are implemented within one broker.

I am actually trying to switch these policies at certain time interval by pausing the simulation using clock listeners.
That is, At 1st pause, the 1st scheduling policies gets selected and all cloudlets are bound to certain VMs.
At 2nd pause, the 2nd scheduling policies gets selected and the remaining cloudlets (excluding the finished cloudlets) are bound to certain VMs.
At 3rd pause, the 3rd scheduling policies gets selected and the remaining cloudlets (excluding the finished cloudlets) are bound to certain VMs.
and so on....

Basically , I am only trying to map the remaining cloudlets to certain VMs as per the selected scheduling policy. 

Actually, I am trying to switch the different scheduling policies at certain time intervals. 

To simplify it, I just considered that a scheduling policy maps cloudlets to a certain VM (I explained in my previous post) such that:
1st scheduling policy maps cloudlets to Vm1
2nd scheduling policy maps cloudlets to Vm2
3rd scheduling policy maps cloudlets to Vm3 and so on.

Would this be considered as cloudlet migration ? Would this scenerio be able to simulated in CloudSimPlus ?

Looking forward to your reply.


Warm Regards,
Abhijith Remesh
Contact : +919446751039 ( India)
             : +4917677316558 (Germany)



You received this message because you are subscribed to a topic in the Google Groups "CloudSim Plus: Cloud Simulation Framework" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cloudsim-plus/4BlTRWd_WzI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cloudsim-plu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cloudsim-plus/CAEPNnK1kYjM9ie5c_0eEBYGLDKF3OLTD1%3DiKF_9vw2crjTuszA%40mail.gmail.com.

Remesh Abhijith

unread,
Oct 26, 2021, 3:39:29 AM10/26/21
to clouds...@googlegroups.com
Hello Maneol,

It would be great if you could tell if the above stated scenario can be simulated in CloudSimplus.

Looking forward to your reply.


Hello Remesh,
To unsubscribe from this group and stop receiving emails from it, send an email to cloudsim-plus+unsubscribe@googlegroups.com.

--
If you received an answer that worked for you, please be kind and reply to let everybody knows it worked.
http://cloudsimplus.org
---
You received this message because you are subscribed to a topic in the Google Groups "CloudSim Plus: Cloud Simulation Framework" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cloudsim-plus/4BlTRWd_WzI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cloudsim-plus+unsubscribe@googlegroups.com.

Prof. Manoel Campos

unread,
Oct 26, 2021, 1:05:28 PM10/26/21
to clouds...@googlegroups.com
Dear Remesh,

I try to answer every message where the users show they have done their homework first.
The group homepage makes it clear and even suggests users to read the guide How to ask questions the smart way.
In fact, I've been answering all your questions since you seem to be doing your own research and homework.
However, it doesn't mean you should expect any prompt answer from me or anyone. 
This is a group where everyone is expected to help each other.
One day without an answer doesn't mean your question won't be answered, despite there are no guarantees.

You can check the group history to see that I don't usually reply to messages on the same day, mainly if they require a more elaborate answer, since that takes time and I have lots or other priorities. When I see a message, it doesn't mean I'll be able to reply to it right away. 

Messages like the last one you sent just deviate the focus and waste everyone's time. Furthermore, it rudely  suggests I didn't answer on purpose, when it's not the case (despite it could be the case for users who don't show they have done their homework and don't respect other people's time).

I could have used the time writing this message to give you an answer, but it's important that everyone follow the group rules and be kind and patient when asking questions. I try my best to provide CloudSim Plus as a free software and give support to users. That is how open source works.

Finally, I have to assess your scenario and get back to you ASAP.

Manoel Campos da Silva Filho Software Engineer

Computer Science and Engineering Ph.D. Student at University of Beira Interior (Portugal)

Professor at Federal Institute of Education, Science and Technology of Tocantins (Brazil)

http://manoelcampos.com


 about.me


Hello Remesh,
To unsubscribe from this group and stop receiving emails from it, send an email to cloudsim-plu...@googlegroups.com.

--
If you received an answer that worked for you, please be kind and reply to let everybody knows it worked.
http://cloudsimplus.org
---
You received this message because you are subscribed to a topic in the Google Groups "CloudSim Plus: Cloud Simulation Framework" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cloudsim-plus/4BlTRWd_WzI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cloudsim-plu...@googlegroups.com.

--
If you received an answer that worked for you, please be kind and reply to let everybody knows it worked.
http://cloudsimplus.org
---
You received this message because you are subscribed to the Google Groups "CloudSim Plus: Cloud Simulation Framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cloudsim-plu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cloudsim-plus/CAMEUJ%3D45J18kR4S4bjDg_bX1MAi2sBTKutULwDwNQgkCL4PWJA%40mail.gmail.com.

Prof. Manoel Campos

unread,
Oct 27, 2021, 9:46:41 AM10/27/21
to clouds...@googlegroups.com
 
Suppose I have 5 scheduling policies, say (1,2,3,4,5) each of which  binds cloudlets to VMs in a specific logic.
These scheduling policies are implemented within one broker.

You are confusing allocation of VMs for running each Cloudlet with cloudlet execution scheduling.
The former is performed by the DatacenterBroker. Check DatacenterBrokerSimple.setVmMapper().
There you can provide a function for defining which VM will run each Cloudlets. 
 
I am actually trying to switch these policies at certain time interval by pausing the simulation using clock listeners.
That is, At 1st pause, the 1st scheduling policies gets selected and all cloudlets are bound to certain VMs.
At 2nd pause, the 2nd scheduling policies gets selected and the remaining cloudlets (excluding the finished cloudlets) are bound to certain VMs.
At 3rd pause, the 3rd scheduling policies gets selected and the remaining cloudlets (excluding the finished cloudlets) are bound to certain VMs.
and so on....

You can do that for Cloudlets that haven't been submitted to the broker yet.
If you don't set an submission delay, the broker tries to map Cloudlets to respective VMs using a VM mapper policy as soon
as the simulation is started. The default mapping policy is a round-robin algorithm. Check DatacenterBrokerSimple.defaultVmMapper() for details and an example of how to implement your own policy. Since DatacenterBrokerSimple is a functional broker, you can use setVmMapper() to change that policy in runtime.
 
Would this be considered as cloudlet migration ?

If you aren't trying to change a cloudlet from a VM to another one, it's not cloudlet migration.
 
Would this scenerio be able to simulated in CloudSimPlus ?
As I explained, the Vm mapper is used for that, but only works for unsubmitted Cloudlets,
since submitted ones with zero delay will be placed into some VM when the simulation starts.
If you set a submission delay and change the VM mapping policy, when the broker tries to place delayed cloudlets
into some VMs, the current policy will be used.

Remesh Abhijith

unread,
Oct 27, 2021, 6:50:22 PM10/27/21
to CloudSim Plus: Cloud Simulation Framework
Thank you so much. 

I shall look into the VmMapper as suggested.

As far as I understand, the Datacenter broker simple uses the default VmMapper in which
(1). If the cloudlets are bound to certain VMs before hand, the VmMapper maps the cloudlets to that particular VMs.
(2). Or else, the Vms are selected in a round robin way.

However, I am trying to plug in my certain scheduling policies/functions before the VmMapper is invoked so that VmMapper would map the cloudlets based on the scheduling policy.
So, when the default VmMapper is invoked, it would map the cloudlets to VMs accordingly (as per (1)).

Thanks again.

Prof. Manoel Campos

unread,
Oct 29, 2021, 10:40:12 AM10/29/21
to clouds...@googlegroups.com
 
As far as I understand, the Datacenter broker simple uses the default VmMapper in which
(1). If the cloudlets are bound to certain VMs before hand, the VmMapper maps the cloudlets to that particular VMs.
(2). Or else, the Vms are selected in a round robin way.
Exactly
 
However, I am trying to plug in my certain scheduling policies/functions before the VmMapper is invoked so that VmMapper would map the cloudlets based on the scheduling policy.
What you have to do is provide your own implementation for a VmMapper using the broker.setVmMapper() method, 
which will replace the defaultVmMapper.
This is not a scheduling policy. Cloudlet scheduling (which schedules execution of cloudlets already inside a VM) is performed by some CloudletScheduler attached to the VM. What the broker does is a kind of task (cloudlet) distribution between available VMs.
 

Remesh Abhijith

unread,
Oct 29, 2021, 11:00:52 AM10/29/21
to clouds...@googlegroups.com

Yeah Sure. I shall try it. 

Thanks for the clarification. 

Warm Regards,
Abhijith Remesh

--
If you received an answer that worked for you, please be kind and reply to let everybody knows it worked.
http://cloudsimplus.org
---
You received this message because you are subscribed to a topic in the Google Groups "CloudSim Plus: Cloud Simulation Framework" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cloudsim-plus/4BlTRWd_WzI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cloudsim-plu...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages