【每週論文】Graphene: Packing and Dependency-aware Scheduling for Data-Parallel Clusters(OSDI 2016)

【每週論文】Graphene: Packing and Dependency-aware Scheduling for Data-Parallel Clusters(OSDI 2016)


論文的一作Robert Grandl在OSDI 2016斬獲兩篇論文,非常的高產,這裏先介紹他其中的一篇論文,關於集羣調度有關的。


作者提出了一個全新的集羣調度器——Graphene,它主要用於調度那些有很複雜的依賴關係和有異構資源需求的作業。

現在的作業執行可以抽象爲一個DAG(有向無環圖),其中圖的點代表要執行的作業,有向的邊代表數據的流向(依賴)。調度異構DAG作業或者調度各自獨立的異構作業是一個NP難問題,先前的工作大部分使用啓發式方法來調度作業,比如着重優化關鍵路徑或者使用貪心算法來最大化資源利用率,但是當它們遇到異構的DAGs時性能就會表現的很差,而本文通關注長作業來挖掘DAG中潛在的並行性來提高整個集羣的運行時間和資源利用率。


這裏寫圖片描述


對一系列的依賴任務,整個調度過程分爲兩個部分:Offline的離線分析,Online的在線調度。

首先在整個作業集中找出麻煩任務集(Troublesome tasks,那些會運行非常長時間的任務,或者那些很難去pack的任務,如上圖的紅色),並對其他任務進行打包,將整個DAG分爲四部分:麻煩任務(troublesome,T)、父任務(parents,P)、子任務(children,C)和同輩任務(siblings,S) ;之後對四個任務集T、P、C、S在時間-資源的空間上進行放置(如上圖右邊),首先放置T,之後在T的周圍放置其他作業,Graphene選擇四種順序,TSCP、TSPC、TPSC或TCSP,因爲作者通過分析發現,只有先方式T任務,才能避免dead-ends(dead-ends的定義是在作業放置的最後存在一些作業不能被放置,除非這些作業能打破依賴)。在離線的情況下對作業進行模擬放置結束後,進行在線調度。下圖以兩個作業的調度爲例,首先分別對Job1和Job2,進行離線的分析,之後根據離線分析的結果對作業進行調度,最下方爲Graphene的方法,可以發現它通過作業的並行提高了資源利用率,縮短了作業的執行時間。

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章