㈠ 如何將蟻群演算法植入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模擬
你這個解決了嗎,我畢設也做這個,能不能共享一下代碼