㈠ 如何将蚁群算法植入cloudsim作为资源调度策略
cloudsim是澳大利亚墨尔本大学的网格实验室和Gridbus项目宣布推出的云计算仿真软件。
主要类的介绍:
- Cloudlet类:构建云环境下的任务。
- DataCenter类:数据中心,支持虚拟化的网格资源,处理虚拟机上面的信息查询,也包含虚拟机对资源的分配策略的处理。
- DataCenterBroker类:隐藏了虚拟机的管理,如创建、任务提交、虚拟机的销毁等,即是一个代理业务。
- Host类:扩展了机器对虚拟机除处理单元(PE)之外的参数分配策略,如带宽、存储空间、内存等,一台Host可对应多台虚拟机。
- VirtualMachine类:虚拟机类,运行在Host上,与其它虚拟机共享资源,每台虚拟机由一个拥有者所有,可提交任务,并由VMScheler类定制该虚拟机的调度策略。
- VMScheler类:虚拟机的调度策略,用来管理执行任务,实现了任务接口。
- VMCharacteristics类:提供虚拟机描述。
- VMMAllocationPolicy类:虚拟机监视器策略类,描述同一Host上的多台虚拟机共享资源的策略。
- VMProvisioner类:实现数据中心的主机到虚拟机的映射。
主要过程:
①初始化一些值。
②创建数据中心,本实验中为两个数据中心:
DataCenter Mydatacenter_0 = createDatacenter(“MyDatacenter_0”);
DataCenter Mydatacenter_1 = createDatacenter(“MyDatacenter_1”);
③创建数据中心的代理业务:
DatacenterBroker broker = createBroker();
Int brokerId = broker.get_id();//获取代理的ID:
④创建虚拟机列表:
Private static VirtualMachineList cerateVm(int userID,int vms)
{
VirtualMachineList list = new VirtualMachineList();
//VM 一些基本参数
Long size = 10000;
Int vcpus = 1;
Int priority = 1;
String vmm = “bingchean”;//my name
//创建一个虚拟机列表数组
VirtualMachineList[] Myvm = new VirtualMachineList[vms];
For(int i = 0;i < vms;i++)
{
Vm[i] = new VirtualMachine
(new VMCharacteristics(i,usersID,size,memory,bw,vcpus,priority,
vmm,new TimeSharedVMScheler()));
//将每个创建好的虚拟机放入列表
List.add(vm[i]);
}
Return list;}
//创建15个虚拟机.
vmlist = createVM(brokerID,15);
//创建40个任务
cloudletlist = createCloudletlist(brokerId,40);
⑤提交任务列表和虚拟机列表
Broker.submitVMList(vmlist);
Broker.submitCloudletList(cloudletlist);
⑥开始仿真.
GridSim.startGridSimulation();
CloudletList newList = broker.getCloudletList();
⑦仿真结束,停止实验,打印结果.
GridSim.stop GridSimulation();
printCloudletList(newList);
⑧打印每个数据中心的dept值.
Mydatacenter_0.printDepts();
Mydatacenter_1.printDepts();
实验里运用蚁群算法对资源分配,和普通的没使用蚁群算法的随机算法进行资源分配的实验进行了对比。创建了两个数据中心,15个虚拟机,分别执行20,30,40,50,60个任务,上图中选取的是执行40个任务时的状态.最后是通过QoS标准对交付给用户的服务进行评判.
结果:
。。。。。太长
(4*40 + 11*80 + 3*60 + 2*160) / 15 = 102.67
(16*80 + 6*120 + 8*160) / 15 = 218.67
(4*80+24*120+12*240) / 15 = 405.33
(12*120 + 16*160 + 9*180 + 9*240 + 4*320) / 15 = 601.33
(32*160 + 12*240 + 16*320) / 15 = 874.67
----------------------------------------------------------------------------------------------------------------
Qos中约束条件可以表述为:
要最终寻找的路径要保证最短,且保证T(R)要最小,在图G中寻找的范围约束条件为满足上式中的ABC.这样做就可以保证云计算在资源分配策略上满足QoS标准.
㈡ 基于蚁群算法的工作流任务调度算法与CloudSim仿真
你这个解决了吗,我毕设也做这个,能不能共享一下代码