• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Min—Min任務(wù)調(diào)度算法的研究與仿真

      2016-01-01 00:00:00朱雷
      科技創(chuàng)新與應(yīng)用 2016年2期

      摘 要:文章首先對Min-Min算法進行分析,介紹了算法的思想和執(zhí)行過程。然后使用GridSim模擬器對算法模擬實現(xiàn),給出了算法的JAVA實現(xiàn)代碼,并統(tǒng)計了Min-Min算法實驗結(jié)果的完成時間。

      關(guān)鍵詞:Min-Min算法;任務(wù)調(diào)度;GridSim模擬器

      1 概述

      在網(wǎng)格計算中,大量的計算任務(wù)被調(diào)度到資源上,如何使任務(wù)得到最少的完成時間,在很大程度上是由它的調(diào)度算法所決定的[1]。良好的任務(wù)調(diào)度算法是任務(wù)調(diào)度的重要組成部分。目前,關(guān)于網(wǎng)格計算的任務(wù)調(diào)度算法,國內(nèi)外學(xué)者已經(jīng)取得了大量的研究成果。這些調(diào)度算法大多是基于啟發(fā)式的思想來解決問題的,比如有遺傳算法、螞蟻算法、Min-Min算法、Max-Min算法等[2]。由于Min-Min算法是一個經(jīng)典的任務(wù)調(diào)度算法,文章對Min-Min算法進行研究,然后用模擬器對算法模擬實現(xiàn)。

      2 Min-Min算法

      為了研究的方便,文章進行了如下的定義:

      (1)假設(shè)網(wǎng)格任務(wù)集為Tasks={T1,T2,T3,... ,Tn},集合內(nèi)有n個待調(diào)度的獨立任務(wù)。

      (2)網(wǎng)格資源集為Hosts={H1,H2,H3,...,Hm},該資源集合內(nèi)有m個資源。設(shè)資源Hj的就緒時間(即資源最早的可以使用的時間)為R(j)。

      (3)任務(wù)Ti在資源Hj上的完成時間定義為ECT(i,j),定義任務(wù)在資源上的執(zhí)行時間為ETC(i,j)。

      (4)從上面定義得出,一個任務(wù)Ti在資源Hj上的完成時間計算公式如下:

      ECT(i,j)=ETC(i,j)+R(j)

      (5)n個任務(wù)在m個資源上的ETC可以用一個n×m的矩陣來表示,矩陣元素ETC(i,j)表示第i個任務(wù)在第j個資源上的執(zhí)行時間,該矩陣的一行表示任務(wù)Ti在資源集合Hosts中所有資源的執(zhí)行時間,一列表示在同一資源上n個任務(wù)的執(zhí)行時間。

      Min-Min算法的思想是:首先,計算出任務(wù)列表中所有任務(wù)在所有資源上的最小完成時間。其次,從這些最小完成時間中找出一個值最小的,把這個最小時間對應(yīng)的任務(wù)資源對找出來,把該任務(wù)提交給該資源執(zhí)行,從任務(wù)列表中刪除這個任務(wù)。最后,更新最小完成時間矩陣。重復(fù)以上步驟,直到任務(wù)列表為空。該算法的目的是將任務(wù)指派給不僅完成它最早的,而且執(zhí)行它最快的機器,使得全部的任務(wù)完成時間最小[3]。該算法的執(zhí)行過程如下:

      (1)計算任務(wù)集合中的任務(wù)Ti在m個資源上的完成時

      間,得到n×m的ECT矩陣。

      如果任務(wù)集合Tasks不為空時,重復(fù)以下步驟直到任務(wù)全部調(diào)度。

      (2)得出每個任務(wù)的最小完成時間即ECT(i,j),把這些最小完成時間放入一個集合M內(nèi),然后找出這個集合內(nèi)最小的值,根據(jù)最小值所對應(yīng)的任務(wù)資源對(i,j),這就是任務(wù)到資源的映射。

      (3)把該任務(wù)Ti提交到對應(yīng)的資源Hj上執(zhí)行,同時還要更新此ECT矩陣。

      3 Min-Min算法的模擬實現(xiàn)

      文章采用GridSim模擬器對該算法進行仿真實驗,GridSim工具包設(shè)計的實體類有:Gridlet類、User類、Broker類、Resource類、GIS類等[4]。Gridlet類是用來對任務(wù)進行描述的,包含的屬性有任務(wù)ID,任務(wù)的狀態(tài),任務(wù)的計算量。User類是描述網(wǎng)格上的用戶,一個用戶有唯一的ID。Broker類是用戶的代理。Resource類是描述網(wǎng)格上異構(gòu)資源的類,通常一個資源類包括多個Machine類,一個Machine類由多個PE組成。GIS是網(wǎng)格的信息服務(wù)中心,它負責(zé)資源的發(fā)現(xiàn)、注冊和管理的功能。使用模擬器編寫一個MyTest繼承GridSim類,然后編寫Min-Min算法如下關(guān)鍵代碼:

      int JOB_NUM = 10, RES_NUM = 4;// 任務(wù)數(shù)與資源數(shù)

      double ETC[][] = new double[JOB_NUM][RES_NUM];

      double CT[][] = new double[JOB_NUM][RES_NUM];

      double R[] = new double[RES_NUM]; //資源就緒時間數(shù)組

      int MAX_JOB_RUN_TIME = 0x7ffffff;

      double minCT[] = new double[JOB_NUM]; //任務(wù)的最小完成時間數(shù)組

      int host_minCT[] = new int[JOB_NUM]; // 任務(wù)最小完成時間對應(yīng)的主機

      int scheduled = 0; // 調(diào)度的任務(wù)數(shù),初始為0;

      int min_minCT_index=0; //具有最小完成時間的任務(wù)索引號

      while (scheduled < JOB_NUM) {

      for (int i = 0; i < JOB_NUM; i++)

      { // 計算每個任務(wù)的預(yù)測完成時間CT[i][j]

      Gridlet gridlet= (Gridlet) list_.get(i);

      for (int j = 0; j < RES_NUM; j++) {

      int mip = resCharS[j].getMIPSRating();

      if (ETC[i][j] ==Double.MAX_VALUE)

      {

      CT[i][j] = ETC[i][j];

      } else

      {

      ETC[i][j]=gridlet.getGridletLength()/mip;

      CT[i][j] = ETC[i][j] + R[j]; // CT[i][j]

      }

      }

      }

      for (int i = 0; i < JOB_NUM; i++)

      {

      for (int j = 0; j < RES_NUM; j++)

      {

      if (CT[i][j] < minCT[i])

      {

      minCT[i] = CT[i][j]; // 計算minCT

      host_minCT[i] = j; // 計算host_minCT

      }

      }

      }

      for (int i = 0; i < JOB_NUM; i++)

      {

      if ((minCT[i] != 0) (minCT[i] < minCT

      [min_minCT_index]))

      {

      min_minCT_index = i;

      }

      }

      Gridlet gridlet = (Gridlet) this.list_.get(min_minCT_index);

      super.gridletSubmit(gridlet,resourceID[host_minCT[min_minCT_index]]);

      //提交任務(wù)到資源

      R[host_minCT[min_minCT_index]]+= minCT[min_minCT_index];

      scheduled++;

      }

      根據(jù)以上代碼進行仿真實驗,任務(wù)數(shù)JOB_NUM為50,資源數(shù)RES_NUM為10,仿真實驗進行100次,用Min-Min算法進行任務(wù)調(diào)度,得到的Makespan去平均值。經(jīng)模擬實驗計算出Makespan的值為550。

      當(dāng)JOB_NUM為100,RES_NUM為10,采用以上同樣的方式調(diào)度,計算出Makespan的值為1000。當(dāng)JOB_NUM為150,資源數(shù)RES_NUM為10,得出的模擬結(jié)果Makespan的值為1620。當(dāng)任務(wù)數(shù)JOB_NUM為200,資源數(shù)RES_NUM為10,得出的模擬結(jié)果Makespan的值為2100。

      由以上的實驗,我們可以得到如圖1模擬結(jié)果,其中橫坐標(biāo)表示任務(wù)數(shù),縱坐標(biāo)為整個調(diào)度系統(tǒng)所有的時間。

      4 結(jié)束語

      基于以上對Min-Min算法的分析,我們可以得出Min-Min算法由于對任務(wù)選擇執(zhí)行它最快的資源,因此,它的完成時間較快。在今后的網(wǎng)格計算研究中,還需要考慮其它的因素,比如經(jīng)濟原則、負載均衡和服務(wù)質(zhì)量,對改進后的算法使用GridSim模擬器進行仿真驗證。

      參考文獻

      [1]王建鋒.網(wǎng)格計算的應(yīng)用及發(fā)展前景[J].大眾科技,2005.

      [2]Ian Foster, Carl Kesselman. The Grid: Blueprint for a New Computing Infrastrueture[M].Morgan Kaufmann Publishers,1999:1-30.

      [3]王向慧.網(wǎng)格計算中任務(wù)調(diào)度算法的改進[D].2009.

      [4]吳淞.基于網(wǎng)格仿真平臺GRIDSIM的任務(wù)調(diào)度算法[D].

      2006.

      马鞍山市| 开阳县| 蒙山县| 鹤山市| 玛多县| 巴青县| 西丰县| 互助| 阿尔山市| 鄯善县| 浦江县| 同江市| 太保市| 安陆市| 四平市| 溧阳市| 隆回县| 涿鹿县| 塔城市| 太保市| 龙山县| 吴川市| 盘锦市| 信丰县| 平舆县| 虎林市| 福鼎市| 宜都市| 光山县| 龙山县| 同心县| 湖口县| 淳化县| 蛟河市| 海门市| 太谷县| 团风县| 图们市| 墨脱县| 陇川县| 聂拉木县|