麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種云計算環境下應用任務流調度方法與流程

文檔序號:12034425閱讀:450來源:國知局

本發明涉及一種云計算環境下應用任務流調度方法,屬于云計算技術領域。



背景技術:

隨著internet網絡技術的發展和計算機技術的不斷提高,網絡中傳輸和處理數據的能力直線增長。人們希望獲得一種直接、便捷的計算處理方式,不需要安裝應用軟件,只要連接互聯網,就可以利用連接在網絡中的空閑的計算機資源進行任務處理。

云計算是即并行計算、分布式計算和網格計算之后的又一種新型的計算模式。在一個云計算系統中,計算資源被整合成資源池向外提供按需分配的服務。在這種場景下,一個應用可能不僅訪問位于本地的數據,而且與部署于其它地理位置遙遠的服務器上的應用存在通信。一個云計算系統擁有大量的計算資源,一個云數據中心可以包含成千上萬個服務器。

工作流調度是指將工作流中的任務映射到合適的資源并管理其運行,它不同于一般的任務調度,在調度時不僅要考慮為任務選擇一個最佳資源,還要考慮各個任務之間的時序與因果的約束條件,以及協調各個任務的執行來獲取最終的執行結果。

工作流調度問題是云計算中的一個重要問題,直接關系到云服務的穩定性、資源的使用效率、用戶的滿意程度和運營成本。

計算資源管理和虛擬機放置一直是云計算系統中的重要問題。虛擬機放置問題是一個n維的裝箱問題的變種,也是np問題。這種問題無法在多項式級的時間內解決。研究者們在這個領域做出了巨大的努力。總的來說,當前的虛擬機放置算法大多專注于提高計算資源使用效率;使用數據管理策略或者緩存或者副本等,來縮短數據訪問延時;完善服務器負載均衡;減少能耗。



技術實現要素:

本發明所要解決的技術問題是提供一種基于應用有向圖,能夠通過縮短關鍵路徑長度,實現縮短整個應用總體完成時間,提高工作效率的云計算環境下應用任務流調度方法。

本發明為了解決上述技術問題采用以下技術方案:本發明設計了一種云計算環境下應用任務流調度方法,用于針對目標應用所包含的各個子任務進行調度實現云計算處理,包括如下步驟:

步驟a.基于目標應用的各個子任務,構建應用有向圖,并根據應用有向圖,以入度為零的子任務為起點,結合子任務之間的后繼聯系,獲得各個子任務序列集合,并針對所有子任務序列集合,構建目標應用子任務集合,然后進入步驟b;

步驟b.針對云計算環境中的各個空閑虛擬機,分別獲得各個空閑虛擬機的cpu頻率,并針對所有空閑虛擬機,按cpu頻率進行非增順序排序,構建空閑虛擬機排序列表avm,然后進入步驟c;

步驟c.針對目標應用子任務集合,分別提取各個子任務序列集合中入度為零的子任務,構建或加入至待分配子任務集合ast中,同時刪除各個子任務序列集合中被提取的子任務,更新各個子任務序列集合,然后進入步驟d;

步驟d.針對待分配子任務集合ast中的各個子任務進行隨機排序,更新待分配子任務集合ast,然后進入步驟e;

步驟e.根據待分配子任務集合ast中各個子任務的排序,以及空閑虛擬機排序列表avm中各個虛擬機的排序,針對待分配子任務集合ast中的所有子任務,依次將各個子任務分別一一對應分配給各個虛擬機進行處理,同時刪除空閑虛擬機排序列表avm中已分配的各個虛擬機,以及清空待分配子任務集合ast,然后進入步驟f;

步驟f.判斷目標應用子任務集合中是否存在子任務,是則返回步驟c;否則目標應用子任務調度方法結束。

作為本發明的一種優選技術方案:所述步驟a包括如下步驟:

步驟a1.基于目標應用的各個子任務,構建應用有向圖,以及子任務集合,然后進入步驟a2;

步驟a2.獲得應用有向圖中入度為零的子任務,并分別構建該各個子任務分別一一對應的各個子任務序列集合,同時刪除子任務集合中的該各個子任務;然后進入步驟a3;

步驟a3.隨機選擇一個子任務序列集合,并進入步驟a4;

步驟a4.基于應用有向圖,判斷該子任務序列集合中序列末尾的子任務之后是否存在后繼子任務,是則進入步驟a5;否則進入步驟a6;

步驟a5.將該后繼子任務加入至該子任務序列集合中,并位于序列末尾,更新該子任務序列集合,同時刪除子任務集合中的該后繼子任務,然后返回步驟a4;

步驟a6.判斷是否存在未經步驟a3至步驟a5處理的子任務序列集合,是則返回步驟a3;否則進入步驟a7;

步驟a7.判斷子任務集合是否為空,是則即獲得各個子任務序列集合,并針對所有子任務序列集合,構建目標應用子任務集合,然后進入步驟b;否則返回步驟a2。

作為本發明的一種優選技術方案:所述步驟b中,構建空閑虛擬機排序列表avm的同時,獲得應用有向圖中的一條關鍵路徑,并針對該關鍵路徑上的各個子任務,構建關鍵子任務集合cst,然后進入步驟c;

所述步驟d包括如下步驟:

步驟d1.判斷待分配子任務集合ast與關鍵子任務集合cst之間是否存在交集,是則進入步驟d2;否則針對待分配子任務集合ast中的各個子任務進行隨機排序,更新待分配子任務集合ast,然后進入步驟e;

步驟d2.針對待分配子任務集合ast中屬于關鍵子任務集合cst的各個子任務進行隨機排序,構成待分配關鍵子任務排序集,同時針對待分配子任務集合ast中不屬于關鍵子任務集合cst的各個子任務進行隨機排序,構成待分配非關鍵子任務排序集,然后按照先待分配關鍵子任務排序集,后待分配非關鍵子任務排序集的順序,針對待分配子任務集合ast進行更新,然后進入步驟e。

作為本發明的一種優選技術方案:所述步驟b中,通過有向圖關鍵路徑算法,獲得應用有向圖中的一條關鍵路徑。

作為本發明的一種優選技術方案:所述步驟e中,依次將各個子任務分別一一對應分配給各個虛擬機進行處理的同時,若子任務執行完畢,則釋放該子任務所加載執行的虛擬機,并采用步驟b的操作,針對空閑虛擬機排序列表avm進行更新。

本發明所述一種云計算環境下應用任務流調度方法采用以上技術方案與現有技術相比,具有以下技術效果:本發明設計的云計算環境下應用任務流調度方法,不僅考慮到虛擬機的計算能力,而且通信延時和數據訪問延時也同時被考慮進來,更加接近實際生產環境下的云計算場景。一個子任務的執行時間被分成三個部分:在虛擬機上的執行時間,從計算節點到存儲結點的數據傳輸時間和子任務之間的通信時間。采用本發明設計方法,能夠更加準確地定義和計算子任務的執行時間,而且,許多云應用都是數據密集型的,由于本方法不僅考慮到虛擬機的計算能力,也考慮到任務之間的網絡帶寬和通信代價,因此本發明設計調度方法,能夠更好地處理數據密集型應用。

附圖說明

圖1是本發明所設計云計算環境下應用任務流調度方法的示意圖。

具體實施方式

下面結合說明書附圖對本發明的具體實施方式作進一步詳細的說明。

工作流調度問題可以簡化為虛擬機的調度問題,來自終端的用戶請求事先被分成多個子任務。這些子任務然后被分配到不同的虛擬機上;一個虛擬機從某種意義上講可以被當成一個子任務和執行這個子任務所需要的物理資源(ram,cpu,帶寬等)的結合。所有的虛擬機最后都會被放置到特定的計算結點上執行子任務;而且,這些虛擬機可以在計算結點之間進行遷移從而能夠提高計算資源的利用率。使用這種方式之后,數以千計的物理主機可以池化為巨大的資源池來服務用戶的各種請求。

云用戶可以部署他們自己的應用到云系統上,因為受到單個計算結點的內存空間,cpu能力等因素限制,一個應用通常不能直接分配到一個計算結點上。這些應用通常被分割為多個子任務程序,而且子任務之間的代碼長度和文件訪問序列都可以不相同。應用的部署問題一直是云計算領域研究的重要課題。合理的調度機制可以縮短一個應用的總體完成時間,從而提高用戶的qos體驗。

針對該問題,本發明提出一種云計算環境下應用任務流調度方法,使用該方法可以有效地發揮虛擬機的計算能力,縮短整個應用的完成時間。該方法的思路是將算法分為兩部分:子任務劃分算法(spa)和子任務分配算法(saa)。子任務劃分算法spa把所有子任務劃分成不同的任務集合,然后子任務分配算法saa根據劃分算法的結果把子任務分配到計算結點上。

如圖1所示,本發明設計了一種云計算環境下應用任務流調度方法,用于針對目標應用所包含的各個子任務進行調度實現云計算處理,包括如下步驟:

步驟a.基于目標應用的各個子任務,構建應用有向圖,并根據應用有向圖,以入度為零的子任務為起點,結合子任務之間的后繼聯系,獲得各個子任務序列集合,并針對所有子任務序列集合,構建目標應用子任務集合,然后進入步驟b。

其中,步驟a具體包括如下步驟:

步驟a1.基于目標應用的各個子任務,構建應用有向圖,以及子任務集合,然后進入步驟a2。

步驟a2.獲得應用有向圖中入度為零的子任務,并分別構建該各個子任務分別一一對應的各個子任務序列集合,同時刪除子任務集合中的該各個子任務;然后進入步驟a3。

步驟a3.隨機選擇一個子任務序列集合,并進入步驟a4。

步驟a4.基于應用有向圖,判斷該子任務序列集合中序列末尾的子任務之后是否存在后繼子任務,是則進入步驟a5;否則進入步驟a6。

步驟a5.將該后繼子任務加入至該子任務序列集合中,并位于序列末尾,更新該子任務序列集合,同時刪除子任務集合中的該后繼子任務,然后返回步驟a4。

步驟a6.判斷是否存在未經步驟a3至步驟a5處理的子任務序列集合,是則返回步驟a3;否則進入步驟a7。

步驟a7.判斷子任務集合是否為空,是則即獲得各個子任務序列集合,并針對所有子任務序列集合,構建目標應用子任務集合,然后進入步驟b;否則返回步驟a2。

步驟b.針對云計算環境中的各個空閑虛擬機,分別獲得各個空閑虛擬機的cpu頻率,并針對所有空閑虛擬機,按cpu頻率進行非增順序排序,構建空閑虛擬機排序列表avm,同時,通過有向圖關鍵路徑算法,獲得應用有向圖中的一條關鍵路徑,并針對該關鍵路徑上的各個子任務,構建關鍵子任務集合cst,然后進入步驟c。

步驟c.針對目標應用子任務集合,分別提取各個子任務序列集合中入度為零的子任務,構建或加入至待分配子任務集合ast中,同時刪除各個子任務序列集合中被提取的子任務,更新各個子任務序列集合,然后進入步驟d。

步驟d.針對待分配子任務集合ast中的各個子任務進行隨機排序,更新待分配子任務集合ast,然后進入步驟e。

其中,上述步驟d具體包括如下步驟:

步驟d1.判斷待分配子任務集合ast與關鍵子任務集合cst之間是否存在交集,是則進入步驟d2;否則針對待分配子任務集合ast中的各個子任務進行隨機排序,更新待分配子任務集合ast,然后進入步驟e。

步驟d2.針對待分配子任務集合ast中屬于關鍵子任務集合cst的各個子任務進行隨機排序,構成待分配關鍵子任務排序集,同時針對待分配子任務集合ast中不屬于關鍵子任務集合cst的各個子任務進行隨機排序,構成待分配非關鍵子任務排序集,然后按照先待分配關鍵子任務排序集,后待分配非關鍵子任務排序集的順序,針對待分配子任務集合ast進行更新,然后進入步驟e。

步驟e.根據待分配子任務集合ast中各個子任務的排序,以及空閑虛擬機排序列表avm中各個虛擬機的排序,針對待分配子任務集合ast中的所有子任務,依次將各個子任務分別一一對應分配給各個虛擬機進行處理,同時,若子任務執行完畢,則釋放該子任務所加載執行的虛擬機,并針對采用步驟b的操作,針對空閑虛擬機排序列表avm進行更新;與此同時,刪除空閑虛擬機排序列表avm中已分配的各個虛擬機,以及清空待分配子任務集合ast,然后進入步驟f。

步驟f.判斷目標應用子任務集合中是否存在子任務,是則返回步驟c;否則目標應用子任務調度方法結束。

上述技術方案所設計的云計算環境下應用任務流調度方法,不僅考慮到虛擬機的計算能力,而且通信延時和數據訪問延時也同時被考慮進來,更加接近實際生產環境下的云計算場景。一個子任務的執行時間被分成三個部分:在虛擬機上的執行時間,從計算節點到存儲結點的數據傳輸時間和子任務之間的通信時間。采用本發明設計方法,能夠更加準確地定義和計算子任務的執行時間,而且,許多云應用都是數據密集型的,由于本方法不僅考慮到虛擬機的計算能力,也考慮到任務之間的網絡帶寬和通信代價,因此本發明設計調度方法,能夠更好地處理數據密集型應用。

上面結合附圖對本發明的實施方式作了詳細說明,但是本發明并不限于上述實施方式,在本領域普通技術人員所具備的知識范圍內,還可以在不脫離本發明宗旨的前提下做出各種變化。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 青岛市| 贺州市| 横山县| 无棣县| 北海市| 务川| 扬州市| 慈利县| 锡林郭勒盟| 宁蒗| 鄂温| 康马县| 广安市| 江永县| 五常市| 曲水县| 中超| 兰西县| 嘉禾县| 北宁市| 德令哈市| 福清市| 桦甸市| 庆安县| 宁明县| 怀远县| 永春县| 巍山| 松原市| 牡丹江市| 永济市| 巴林左旗| 东源县| 大理市| 榆中县| 天津市| 涟源市| 蚌埠市| 如皋市| 克山县| 东宁县|