亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Mesos的分布式參數(shù)優(yōu)化調度策略及系統(tǒng)設計

        2019-11-01 10:08:52陸忠華1孫永澤
        關鍵詞:優(yōu)化作業(yè)資源

        李 鑠,陸忠華1,孫永澤

        1.中國科學院計算機網(wǎng)絡信息中心,北京 100190

        2.中國科學院大學,北京 101408

        引言

        隨著計算機技術的不斷進步和網(wǎng)絡技術普及,人工智能技術近年來不斷地提升,機器學習和深度學習已經(jīng)廣泛地用于計算機視覺,自然語言處理等各個領域。

        一方面,機器學習和深度學習這一類需要大量資源和算力,TensorFlow、Caffe、Pytorch 等深度學習框架也都相繼推出了分布式版本,可見,這類任務對大規(guī)模的計算、存儲、傳輸?shù)确矫娴囊笠苍絹碓礁撸鴨闻_計算機硬件和軟件的發(fā)展卻遠遠落后于這類應用對這些方面的需求。另一方面,機器學習和深度學習的算法效果受到多方面的影響,如訓練數(shù)據(jù),模型選擇,超參數(shù)優(yōu)化等。在人工智能中普遍使用的學習式模型里通常情況下需要人為指定的一些參數(shù),這些參數(shù)就是超參數(shù)[2]。針對這些超參數(shù)的優(yōu)化,繼而提出了超參數(shù)優(yōu)化的概念,是指在確定模型和參數(shù)組合確定的情況下,設定每個參數(shù)的優(yōu)化范圍,對這些參數(shù)進行優(yōu)化以達到一個滿意的訓練效果。但是,參數(shù)優(yōu)化的過程中缺乏資源調度機制,目前的實現(xiàn)中不支持多租戶,平臺模式提交參數(shù)優(yōu)化作業(yè),這對于現(xiàn)在大量使用大規(guī)模集群資源的狀況相違背,導致用戶可能只能使用十分有限的資源來進行參數(shù)優(yōu)化,無法很好利用集群資源。

        目前很多機器學習算法庫都提供了他們的參數(shù)調優(yōu)方案,在這一領域稱為Auto-ML,AutoML的最終目標是為具有有限數(shù)據(jù)科學或機器學習背景的領域專家提供易于訪問的深度學習工具。Google 在其云產(chǎn)品上進行了自動參數(shù)優(yōu)化的集成,也就是Vizier[2]的外部接口。Auto-sklearn[3]是一個自動化機器學習的工具包,其基于sklearn 編寫,Autosklearn可以進行機器學習算法的自動選擇與超參數(shù)的自動優(yōu)化,它使用的技術包括貝葉斯優(yōu)等。Auto-Keras[4]是一個用于自動機器學習的開源軟件庫。它由 Texas A & M 大學的DATA 實驗室和社區(qū)貢獻者開發(fā)。Auto-Keras 提供自動搜索深度學習模型的架構和超參數(shù)的功能。

        分布式計算領域有許多用于大數(shù)據(jù)和高性能計算領域著名實現(xiàn)。MapReduce[5]是Google 公司于 2004年提出的能并發(fā)處理海量數(shù)據(jù)的并行編程模型,其特點是簡單易學、適用廣泛,能夠降低并行編程難度,讓程序員從繁雜的并行編程工作中解脫出來,輕松地編寫簡單、高效的并行程序。MPI[6]能廣泛應用于多類并行機群和網(wǎng)絡環(huán)境,是建立在多種可靠的消息傳遞庫的基礎上的一種接口模式。Parameter Server[7]基于參數(shù)服務器框架的分布式機器學習系統(tǒng)上設計并行優(yōu)化算法,采用靈活的一致性模型,提高算法執(zhí)行效率。參數(shù)優(yōu)化的場景和這些常用分布式計算區(qū)別在于需要持續(xù)的任務提交,這一特性對集群資源的管理提出了更高的要求。

        調度系統(tǒng)同樣有很重要的地位[1],Kubernetes[11]是Google 開源的容器集群管理系統(tǒng) (谷歌內(nèi)部:Borg[12])。此外還有其他各種調度系統(tǒng)例如YARN[13],Slurm[14],LSF[15]等。Mesos[9]調度系統(tǒng),Mesos 自身只是一個資源抽象的平臺,要使用它往往需要結合運行其上的分布式應用(在 Mesos中被稱作框架 Framework[16]),這些應用包括 Hadoop、Spark、Kafka、Elastic Search。還可配合框架 Marathon 來管理大規(guī)模的Docker[8]等容器化應用,另外這些框架還需要實現(xiàn)自己的二級調度,也就是在 Mesos 提供資源的同時對資源進行再分配,提供對自己任務本身的更為動態(tài)和細粒度的支持,給了分布式應用開發(fā)者更大的空間[10]。

        在通常的單機實現(xiàn)中,往往由用戶使用的軟件包串行執(zhí)行訓練程序,無法充分利用資源,在機器學習和深度學習的參數(shù)調優(yōu)的過程中,這一缺點暴露得更加明顯,因為這些場景下的訓練任務往往要執(zhí)行更多的時間,并且需要大量的資源。

        參數(shù)優(yōu)化和分布式存在著很大的契合點,尤其是在機器學習和深度學習這一類需要大量計算資源的領域,如何通過分布式的采樣算法去并行執(zhí)行參數(shù)優(yōu)化任務,以及如何在提高并發(fā)度的同時更好地利用集群資源是將兩者結合的關鍵問題。通過分布式的參數(shù)優(yōu)化系統(tǒng)可以在一定程度上提升參數(shù)優(yōu)化的效率,同時提高集群資源的利用率。

        本文同時從分布式計算和基礎設施兩個層面來考慮這一問題,與分布式的參數(shù)優(yōu)化算法相結合來形成分布式計算這一環(huán)節(jié),改進 Mesos Framework的資源調度策略來更好地利用集群資源。設計和實現(xiàn)一個基于Mesos的分布式參數(shù)優(yōu)化系統(tǒng),計算層由各類優(yōu)化算法組成,進行分布式參數(shù)優(yōu)化的采樣和生成計算任務,調度層是一個Mesos Framework的具體實現(xiàn),主要負責資源分配和執(zhí)行計算任務。更進一步地,我們可以針對參數(shù)優(yōu)化場景提出一種調度影響計算的策略來控制參數(shù)優(yōu)化這一過程,以平衡多租戶分布式參數(shù)優(yōu)化場景下的資源競爭問題。

        1 基于Mesos的參數(shù)優(yōu)化系統(tǒng)設計

        Mesos是常見的集群資源管理系統(tǒng)之一。Mesos相較于其他調度系統(tǒng)更加輕量,用于支持研究者進行自定義應用的開發(fā)的接口更加友好[9],其特有的兩級調度機制為研究者制造了更大的探索空間。Mesos 作為集群的基礎設施,圍繞這一基礎設施,不同的應用使用不同的Mesos Framework 來進行對其建設,為的是可以將應用銜接進入 Mesos 集群系統(tǒng),獲取集群的資源。為了使參數(shù)優(yōu)化系統(tǒng)能夠使用集群資源,需要設計和實現(xiàn)一個針對這一應用的Mesos Framework和計算框架,形成一個完整可用,可擴展性高的原型系統(tǒng)。

        1.1 Mesos的基本架構

        Mesos 主要由 Mesos Master,Mesos Slave,Mesos Framework 組成,其中 Mesos Framework 又包括 Scheduler和Executor 兩個重要模塊。

        上圖顯示了 Mesos的主要組成部分。Mesos 由一個主守護進程來管理從守護進程在每個集群節(jié)點上的運行,Mesos Frameworks在這些 Slaves 上運行 Tasks。

        Master 使用Resource Offers 實現(xiàn)跨越不同應用的細粒度資源共享,如 CPU、內(nèi)存、磁盤、網(wǎng)絡等。Master 根據(jù)指定的策略來決定分配多少資源給Framework,如公平共享策略,或優(yōu)先級策略。為了支持更多樣性的策略,Master 采用模塊化結構,這樣就可以方便的通過插件形式來添加新的分配模塊。

        圖1 Mesos 架構圖Fig.1 Mesos architecture diagram

        在 Mesos 上運行的Framework 由兩部分組成:一個是Scheduler,通過注冊到 Master 來獲取集群資源。另一個是在 Slave 節(jié)點上運行的Executor 進程,它可以執(zhí)行 Framework的Task。Master 決定為每個Framework 提供多少資源,F(xiàn)ramework的Scheduler來選擇 Master 提供的資源。當 Framework 同意了提供的資源,通過 Master 將 Task 發(fā)送到提供資源的Slaves 上運行。

        1.2 分布式參數(shù)優(yōu)化系統(tǒng)框架架構

        根據(jù)不同的應用場景來實現(xiàn)不同 M e s o s Framework,是Mesos 系統(tǒng)和其他調度系統(tǒng)區(qū)別所在,同時這一架構體現(xiàn)了 Mesos 系統(tǒng)所特有的兩級調度方式,文章會在 2.1 節(jié)對 Mesos的資源調度策略進行更進一步的介紹。常見的Mesos Framework 實現(xiàn)是針對不同的業(yè)務模型和作業(yè)方式對 Mesos Master 給予的資源進行更加優(yōu)化的管理調度,例如在線長作業(yè),離線批處理作業(yè)等模式。

        本文所提出的分布式參數(shù)優(yōu)化系統(tǒng),其核心調度功能也是通過實現(xiàn)一個Mesos Framework 來滿足多用戶使用Mesos 集群資源,提高資源的整體利用率,減少用戶在參數(shù)優(yōu)化過程中需要做的資源調度工作。此外,在參數(shù)優(yōu)化系統(tǒng)中,如何進行參數(shù)的計算和迭代也是至關重要的一環(huán)。采用了常見的Master-Slave 架構,App Core 作為Master,App Runner 作為Slave,計算結果匯報給 App Core。每個單獨的計算的任務可以作為一個Mesos Task 托管在 Mesos中運行,通過Docker 進行資源隔離。

        本系統(tǒng)解決了多租戶在集群系統(tǒng)上進行參數(shù)優(yōu)化的問題,提供分布式參數(shù)優(yōu)化的支持,通過 Mesos Framework 很好地集成了負責參數(shù)優(yōu)化的應用程序,對于 Mesos 集群系統(tǒng)侵入性很小,如圖2所示。

        整個系統(tǒng)包括四種組件:

        Client:客戶端,負責和用戶進行交互,用戶根據(jù)其需求提供參數(shù)并啟動框架

        Mesos Framework:負責啟動 App Core,App Runner,進行資源的二級的調度,與Mesos Master 通信,負責監(jiān)控作業(yè)運行狀態(tài)等工作。

        App Core:是一個交由 Mesos Task 托管的核心應用程序,主要負責運行參數(shù)優(yōu)化算法,保存參數(shù)優(yōu)化結果等。

        圖2 分布式參數(shù)優(yōu)化系統(tǒng)架構Fig.2 Distributed parameter optimization system architecture

        App Runner:交由 Mesos Task 托管的用戶提供應用程序,按照用戶提交的代碼進行結果運算,并將運算結果反饋至 App Core。當用戶提高并行參數(shù)時,App Core 會向 Mesos Framework 根據(jù)并行度提交運行App Runner的參數(shù)。

        1.3 系統(tǒng)實現(xiàn)關鍵技術

        1.3.1 Client設計

        客戶端供用戶提交自己的App Runner 程序,其關鍵部分主要有以下兩點:

        (1) 任務參數(shù)輸入

        用戶通過提交腳本的方式進行作業(yè)提交,并進行對應的參數(shù)輸入,這類參數(shù)主要數(shù)據(jù)輸入路徑,App Runner 程序路徑和啟動命令,App Core和App Runner 各自的運行 CPU 核數(shù),內(nèi)存大小等,這一類參數(shù)與其他調度系統(tǒng)有很大的相似度。

        如下所示:

        本文所描述的系統(tǒng)增加了優(yōu)化參數(shù)的特殊配置,以及優(yōu)化算法的選擇等與參數(shù)優(yōu)化相關的配置,如下是個簡單優(yōu)化參數(shù)配置文件:

        以機器學習的參數(shù)優(yōu)化為例,通常情況下,待優(yōu)化的參數(shù)選取如 learning rate,momentum,batch size等,其值 value 可以是上下界區(qū)間,數(shù)值選擇。

        圖3 用戶提交命令與參數(shù)Fig.3 User submits commands and parameters

        (2) 任務狀態(tài)監(jiān)控

        任務狀態(tài)獲取,用戶可以通過命令行或者 Mesos界面查看整個作業(yè)的運行狀態(tài),即作業(yè)中每個任務的運行狀態(tài)。主要是通過 org.apache.mesos.statusUpdate 接口函數(shù)來實現(xiàn)的。對于每個Task,主要包括PENDING,RUNNING,F(xiàn)INISHED,F(xiàn)AILED 等常見任務狀態(tài)。

        1.3.2 Mesos Framework 設計

        Mesos Framework是基于Mesos 調度系統(tǒng)的分布式應用,相對于 Mesos Master和Mesos Slave是獨立的,Mesos Framework和Mesos Master 服務進行交互,并不直接和Mesos Slave進行交互。本文設計的Framework 實際上是通過 Client 直接在本地啟動,并根據(jù) Client 參數(shù)將用戶需求抽象成 Job,Job 同時負責填充 Mesos的Task 參數(shù)。

        Mesos Framework和Mesos Master的交互,過 RPC[21]調用的方式進行通信,包括 Framework的注冊,接收資源,拒絕資源,狀態(tài)更新等。接收資源,即 resourceOffers,是一關鍵調用,涉及到資源的二次調度,填充 Task 參數(shù),拒絕資源等。

        Mesos Framework和App Core的交互也是通過RPC 進行的,包含一個RPC Server。

        1.3.3 App Core 設計

        對于參數(shù)的優(yōu)化,可以將這種優(yōu)化看作是反映泛化性能的未知黑盒函數(shù)的優(yōu)化,并調用針對這些問題開發(fā)的算法進行參數(shù)選擇。App Core的任務就是集成了這些算法,在用戶提交了任務之后由 App Core 根據(jù)用戶選擇的優(yōu)化算法和參數(shù)進行計算。一個作業(yè)中有且只有一個App Core,其中包含一個RPC Server和Client。在選擇了參數(shù)之后App Core的RPC Client向 Mesos Framework 通過 RPC Client 進行 RPC 通信過程①,提交下一輪實驗的參數(shù),內(nèi)容是由 App Core計算出來的參數(shù),提供給調度的優(yōu)先級系數(shù)等。App Core 其本身在系統(tǒng)中也是一個作業(yè)。如果參數(shù)優(yōu)化算法串行的提交作業(yè),在一定時間內(nèi)能完成的作業(yè)如圖4所示。

        如果指定并行度為n=3,那么如圖5所示在相同的時間內(nèi)可以完成更多的訓練任務。

        App Core中支持的參數(shù)優(yōu)化算法如表格 1 列出的,值得一提的是圖6所示的是一種異步的并行,目的是為了提高并行效率,不必去等較慢的進程[20],但是在貝葉斯優(yōu)化[18-19]中,需要反饋訓練結果,以進行下一步的采樣,所以其同步并行會產(chǎn)生一些效率問題。

        1.3.4 App Runner 設計

        這里的App Runner是一個統(tǒng)稱,表示用戶通過Client 上傳的訓練程序,根據(jù) App Core 選取的參數(shù),App Runner 在 Mesos Framework 指定的資源內(nèi)形成Mesos Task 運行,訓練結果會通過 RPC Client 向 App Core 以 RPC 通信過程②的方式進行匯報,其內(nèi)容是訓練結果和訓練時間等。用戶只需要根據(jù)系統(tǒng)提供的Python 工具包,簡單修改自己的程序,就能作為一個App Runner 運行在本系統(tǒng)中,達到和App Core 交互的目的。

        2 參數(shù)優(yōu)化系統(tǒng)的調度策略

        基于本文第一章的論述,研究并設計實現(xiàn)了一個基于Mesos的分布式參數(shù)優(yōu)化系統(tǒng),因此,在本章中我們將對這一系統(tǒng)的調度策略進行改進。主要是指在原先 Mesos的兩級調度基礎上,針對文中 MesosFramework 所承載的參數(shù)優(yōu)化應用的運行模式進行優(yōu)化,以達到在減少多租戶分布式參數(shù)優(yōu)化場景下的資源競爭的目的。

        表1 App Core中支持的參數(shù)優(yōu)化算法Table1 Parameter optimization algorithms supported in App Core

        圖4 串行參數(shù)優(yōu)化Fig.4 Serial parameter optimization

        圖5 并行參數(shù)優(yōu)化Fig.5 Parallel parameter optimization

        2.1 Mesos 資源調度策略

        基于圖6的事件流程:

        a.Slave1 向 Master 報告,有4個CPU和4GB內(nèi)存可用

        b.Master 發(fā)送一個Resource Offer 給 Framework1來描述 Slave1 有多少可用資源

        c.FrameWork1中的FW Scheduler 會答復Master,我有兩個Task 需要運行在 Slave1,一個Task 需要<2個cpu,1 gb內(nèi)存>,另外一個Task 需要<1個cpu,2 gb 內(nèi)存>

        d.最后,Master 發(fā)送這些 Tasks 給 Slave1。然后,Slave1 還有1個CPU和1GB內(nèi)存沒有使用,所以分配模塊可以把這些資源提供給 Framework2

        Mesos Master 即為第一級資源調度,在大部分情況下采用DRF 調度算法[17],主資源公平調度(Dominant Resource Fairness) 算法,非常適合應用于多維資源管理和調度的復雜環(huán)境。其中,主資源指的是各所需資源在相應總資源中所占比例最大的資源,在 Mesos中,體現(xiàn)在一輪分配中對于每個Framework的分配的資源不同。

        圖6 Mesos資源調度策略Fig.6 Mesos resource scheduling strategy

        Mesos Framework為第二級資源調度,在大部分實現(xiàn)中采用的FIFO 算法實現(xiàn),即先來先服務算法。因為經(jīng)過了一級資源調度,Mesos Master 通過Resource Offer 接口給予 Framework的資源已經(jīng)是比較細粒度的資源,所以對于一些普通的在線作業(yè)或者批處理作業(yè)僅需要進行一些資源排查。在本文所指出的分布式參數(shù)優(yōu)化的場景下,這一部分調度可以做到動態(tài)調度以在集群負擔較重時節(jié)約集群資源。

        2.2 動態(tài)資源調度策略

        本文提出一種針對分布式參數(shù)優(yōu)化的原型系統(tǒng)中 Mesos Framework 里的動態(tài)資源調度策略,利用Mesos 系統(tǒng)的兩級調度特色去探索一種新的調度策略,以優(yōu)化資源調度效率。在多租戶多任務的分布式參數(shù)優(yōu)化場景下,我們目前的優(yōu)化目標是:系統(tǒng)中存在多個任務 J_i 時,在盡量短的時間 T 內(nèi),使多個任務n達到接近其本身應該達到的優(yōu)化效果 F_i。算法1描述如下:

        算法 1 if (n > k * m) then // n為當前運行的任務J的數(shù)目,k為倍數(shù)系數(shù),m為取樣個數(shù)F = <f1,f2 … fn> //每次計算返回的結果的序列,fi按照效果由好到壞排列g = min(|f1 - f2|,…|fm-1 -fm| ) //計算前m對的效果差值if g < G || g ≈ g’ then //G為當前閾值,g’為前多次計算的gap均值pi = P + 1 //降低下一個J的優(yōu)先級,p表示對應Job的優(yōu)先級else pi = P if pi > P then P = pi //更新全局優(yōu)先級j = j + 1 G = Gj //Gj表示下一個閾值

        Mesos 特有的兩級調度系統(tǒng),Mesos Framework決定 Mesos 提供的資源是否合適,從而接受或者拒絕這個資源,當 Framework 拒絕資源,Mesos 將跳過該Framework,將資源提供給其他 Framework。因此,根據(jù) App Core 返回的優(yōu)先級,會根據(jù)配置跳過 d個Mesos 分配的資源,這些資源會分配給其他框架執(zhí)行高優(yōu)先級任務。如果 Framework 發(fā)現(xiàn)集群資源空閑即多次拒絕后分配的資源沒有減少,就會調高作業(yè)的優(yōu)先級,從利用優(yōu)化結果和集群資源的變化達到了一種動態(tài)調度。

        3 實驗結果與分析

        3.1 系統(tǒng)部署環(huán)境

        3.1.1 硬件部署環(huán)境

        實驗環(huán)境由兩臺曙光高性能測試服務器組成,其中 Master 服務器配置為Intel Xeon CPU E5-2620 v3的24 處理器,251G 內(nèi)存,另一臺Cluster服務器配置為Intel Xeon CPU E5-2640 v4的40 核處理器,251G 內(nèi)存。網(wǎng)絡連接為萬兆以太網(wǎng)。

        3.1.2 軟件部署環(huán)境

        兩臺高性能測試服務器的軟件部署環(huán)境相同:

        Ubuntu 16.04.1 LTS,OpenJDK 1.8.0_181,Python 2.7,protobuf 3.6.1,Mesos 1.6.1

        實驗在 Cluster 服務器,啟動 3個Mesos Agent 通過其資源隔離來模擬 3 臺資源皆為12 核 CPU,20G內(nèi)存的集群系統(tǒng);Master 服務器部署 Mesos Master,及本系統(tǒng)的Client 啟動,和為Mesos Framework 提供運行環(huán)境。

        1.1 實驗程序

        在本文提到的系統(tǒng)中,從用戶的角度來講,需要準備提供給 App Runner 運行的程序,本文將平時使用的單機機器學習參數(shù)優(yōu)化的程序作為App Runner來進行實驗,來探討其在本系統(tǒng)中不同場景下的運行效率問題。

        首先對實驗中的一些項目進行定義,定義用戶通過 Client 提交的參數(shù)優(yōu)化任務為一個作業(yè),在一個作業(yè)中擁有自己的Mesos Framework,App Core和App Runner,即本文所描述的參數(shù)優(yōu)化系統(tǒng),整個Mesos集群會有多個作業(yè)同時運行。定義在一個作業(yè)通過 App Core 運行一個App Runner為一個任務,并行度即指作業(yè)中可以同時運行的任務個數(shù)。定義通過Client 端輸入的為作業(yè)參數(shù)。定義通過 App Core 產(chǎn)生的為訓練參數(shù),即參數(shù)優(yōu)化的目標。

        (1) 測試數(shù)據(jù):采用MNIST 數(shù)據(jù)集,MNIST 數(shù)據(jù)集是采集阿拉伯數(shù)字 0-9的手寫數(shù)字數(shù)據(jù),每幅圖片均為0 到 9中 10 數(shù)字的任意一個,黑白像素。MNIST 數(shù)據(jù)集可在 http: //yann.lecun.com/exdb/mnist/獲取。本文中使用Python的MNIST 包接口對數(shù)據(jù)直接進行處理。

        (2) 測試程序:單機基于CPU的TensorFlow 程序,作為App Runner 提交到系統(tǒng)。其算法用于手寫數(shù)字識別,網(wǎng)絡架構為卷積神經(jīng)網(wǎng)絡。對于其中 5個訓練參數(shù)進行優(yōu)化,包括 learning rate,momentum,batch size 等參數(shù)。測試程序在訓練中達到正確率95% 以上時對于用戶來說達到了要求的正確率,此時如果繼續(xù)優(yōu)化也可以獲得更好的效果,但是因為期望大部分用戶可以在資源競爭的情況下更高效地獲得更好的效果,因此實驗中以這一正確率判斷作業(yè)結束的標志。即我們在算法1中提到的F_i。

        (3) 參數(shù)選擇:隨機搜索時一種常見的基礎參數(shù)優(yōu)化算法[22],因此我們設定參數(shù)優(yōu)化算法為隨機搜索,最大實驗次數(shù)為200,表示對于一個作業(yè)來說,App Core 會做出最多 100 次的訓練參數(shù)選擇。設定App Core 需要 1 核 CPU,1G 內(nèi)存,App Runner 即 (2)中的測試程序需要 4 核 CPU,5G 內(nèi)存。

        3.2 實驗結果

        實驗主要分為串行場景和并行場景,主要對比Mesos Framework中使用FIFO 算法和本文的提出的動態(tài)調度算法在相同作業(yè)數(shù) m和并行數(shù) n的情況下的表現(xiàn),即在作業(yè)的正確率達到 95% 時作業(yè)所消耗的時間,其中作業(yè)數(shù)表示模擬 m個用戶提交任務。每種情況設置了 10 組實驗,最后結果去除 10 組實驗中的最高和最低值,取剩下 8中的平均數(shù)作為實驗結果。

        3.2.1 串行實驗

        串行場景是指每個作業(yè)內(nèi)參數(shù)優(yōu)化過程為串行執(zhí)行,主要是為了保證不出現(xiàn)資源競爭得狀況,即在固定資源內(nèi),增加作業(yè)數(shù),觀察在沒有資源競爭發(fā)生的情況下的作業(yè)執(zhí)行效率。實驗結果如表2所示。

        由圖7 可以看出,動態(tài)資源調度方法和FIFO 調度方法在無資源競爭的情況下表現(xiàn)差別不大,動態(tài)資源調度會稍微耗時一些,原因是Mesos的兩級調度中,第一級資源調度的資源分配存在一定間隔周期,在動態(tài)資源調度中會存在多個這樣的周期,F(xiàn)IFO 則不存在。

        3.2.2 并行實驗

        并行場景增加了并行度,首先觀察在只有一個作業(yè)情況下提高并行度產(chǎn)生的加速比。結果如表3所示。

        從圖8 可以看出,增加并行數(shù)可以提高作業(yè)運行效率,參數(shù)優(yōu)化作業(yè)只有在一次訓練之后才會進行通信,不會產(chǎn)生頻繁的通信開銷。對比動態(tài)調度算法和FIFO 在此場景下差別不大。

        表2 無資源競爭作業(yè)運行時間 單位:秒Table2 No resource competition job running time(second)

        圖7 無資源競爭作業(yè)運行時間 單位:秒Fig.7 No resource competition job running time(second)

        表3 單個作業(yè)在不同并行度下的運行時間 單位:秒Table3 xxRun time of a single job at different parallelism(second)

        最后,將作業(yè)并行度設定為4,也就是一個作業(yè)會消耗 17個核 CPU,34G 內(nèi)存,增加作業(yè)數(shù),觀察在有資源競爭情況下作業(yè)運行時間,記錄如下表4。

        隨著作業(yè)數(shù)的增加,三個節(jié)點一共 36 核 CPU,60G 內(nèi)存的總體資源不再充裕,產(chǎn)生了資源競爭,如圖9所示,在作業(yè)數(shù)為3和4 時資源競爭已經(jīng)非常激烈,增加了作業(yè)的運行時間,此時動態(tài)調度算法的效率略高于 FIFO,整體的作業(yè)效率得到了提升。

        圖8 單個作業(yè)在不同并行度下的運行時間 單位:秒Fig.8 Run time of a single job at different parallelism(second)

        圖9 資源競爭環(huán)境下并行度為4的作業(yè)運行時間 單位:秒Fig.9 xxJob running time with parallelism of 4 in a resource competitive environment(second)

        表4 資源競爭環(huán)境下并行度為4的作業(yè)運行時間 單位:秒Table4 Job running time with parallelism of 4 in a resource competitive environment(second)

        4 總結與下一步工作

        本文介紹了以 Mesos為基礎系統(tǒng),在其上開發(fā)的一套分布式參數(shù)優(yōu)化系統(tǒng),主要指一個Mesos的Framework,這個Framework 可以運行在任何以Mesos為基礎的分布式系統(tǒng)上。用戶僅需要提供需要進行參數(shù)優(yōu)化的訓練程序,將其和Framework 提交給Mesos,由 Framework 來控制整個系統(tǒng)的運行流程,通過 Mesos Master 提供的資源 Offer 來進行調度,為后續(xù)的工作提供系統(tǒng)基礎。在整個系統(tǒng)中,參數(shù)優(yōu)化算法框架也是非常重要的一環(huán),目前已經(jīng)實現(xiàn)了常見的例如隨機搜索,網(wǎng)格搜索等基礎算法,根據(jù)用戶的需要運行不同的優(yōu)化算法。為了在資源競爭環(huán)境下提高系統(tǒng)的整體效率,本文從系統(tǒng)優(yōu)化的角度來進一步研究適用于分布式參數(shù)優(yōu)化的調度策略。本文充分利用了 Mesos的兩級調度機制來進行探索,取得了初步的效果。值得一提的是,因為本文所提出的系統(tǒng)可以滿足多租戶在混部場景下的使用,所以該策略的適用范圍更加廣泛,對已經(jīng)存在的Mesos 集群系統(tǒng)侵入性很低。

        目前,許多需要參數(shù)優(yōu)化的程序更多的采用了GPU 等硬件來加速計算,未來針對本文的原型系統(tǒng)還可以加入 GPU的調度,在調度策略上可以采用強化學習的方法來進行改進。

        猜你喜歡
        優(yōu)化作業(yè)資源
        超限高層建筑結構設計與優(yōu)化思考
        基礎教育資源展示
        民用建筑防煙排煙設計優(yōu)化探討
        關于優(yōu)化消防安全告知承諾的一些思考
        一道優(yōu)化題的幾何解法
        快來寫作業(yè)
        一樣的資源,不一樣的收獲
        資源回收
        資源再生 歡迎訂閱
        資源再生(2017年3期)2017-06-01 12:20:59
        作業(yè)
        故事大王(2016年7期)2016-09-22 17:30:08
        黄色国产一区在线观看| 国产成人无码免费看片软件| 亚洲精品456| 女优免费中文字幕在线| 亚洲女同恋av中文一区二区| 美女网站免费福利视频| 日韩精品一区二区三区在线观看 | 熟女白浆精品一区二区 | 98久9在线 | 免费| 国产午夜激情视频自拍| 国产精品国产三级国产专播| 欧美老熟妇乱子| 久久国产精久久精产国| 亚洲精品乱码久久久久99| 日产分东风日产还有什么日产| 又紧又大又爽精品一区二区| 亚洲精品国产v片在线观看| 爱v天堂在线观看| 中文字幕一区二区三区四区| 人与禽性视频77777| 亚洲中文字幕无线无码毛片 | 人人妻人人狠人人爽| 国产精品11p| 男女午夜视频一区二区三区| 最近免费中文字幕中文高清6| 青青草原精品99久久精品66| 亚洲av日韩av一卡二卡| av网站不卡的av在线| 国产精品美女久久久久av超清 | 国产熟女自拍av网站| 18禁黄污吃奶免费看网站| 牛牛本精品99久久精品88m| 日韩精品极品在线观看视频| 国产自拍av在线观看视频| 激情综合色五月丁香六月亚洲| 亚洲中文字幕久爱亚洲伊人| 国产尤物自拍视频在线观看| 人妻仑乱a级毛片免费看| 日本免费人成视频播放| 久久精品国产亚洲av日韩精品| 特级做a爰片毛片免费看|