李瑞林+周亦敏
摘要:隨著技術(shù)的發(fā)展,基于異構(gòu)的CPU-GPU計(jì)算系統(tǒng)成為高性能計(jì)算趨勢(shì)。但是,異構(gòu)計(jì)算面臨著擴(kuò)展性、負(fù)載均衡等問(wèn)題。提出了一個(gè)集群調(diào)度模型,并結(jié)合GPU虛擬化運(yùn)行,設(shè)計(jì)了分層集群資源管理框架,該框架允許異構(gòu)CPU-GPU集群有效利用。實(shí)驗(yàn)結(jié)果表明,通過(guò)利用有效資源,調(diào)度框架無(wú)論是在應(yīng)用程序吞吐量還是延遲上都優(yōu)于現(xiàn)有批處理調(diào)度程序關(guān)鍵詞:高性能計(jì)算;異構(gòu)CPU-GPU集群;ARM;調(diào)度模型DOI:10.11907/rjdk.162656中圖分類號(hào):TP303文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):16727800(2017)0040022030引言 基于CPU-GPU的異構(gòu)計(jì)算系統(tǒng)逐漸成為HPC領(lǐng)域新的研究方向,許多基于 CPU-GPU 的異構(gòu)計(jì)算機(jī)系統(tǒng)應(yīng)用表現(xiàn)出良好性能。但是,由于各種原因制約,異構(gòu)高性能計(jì)算仍然面臨許多問(wèn)題,其中主要的問(wèn)題是開(kāi)發(fā)程序困難,特別是擴(kuò)充到集群規(guī)模層時(shí)這個(gè)問(wèn)題尤為突出。傳統(tǒng)的集群資源管理有一定性能限制:如負(fù)載不均衡、GPU共享資源有限、有限的GPU虛擬化等,往往不方便配置調(diào)度策略。最佳調(diào)度策略依賴于性能目標(biāo)、集群硬件、軟件配置與應(yīng)用程序等。因此,集群調(diào)度管理在異構(gòu)環(huán)境中顯得尤為重要。 本文設(shè)計(jì)一個(gè)新的集群調(diào)度模型,并將其與節(jié)點(diǎn)層GPU虛擬運(yùn)行整合。這個(gè)模型能夠很好地利用異構(gòu)CPU-GPU集群[14]各自的優(yōu)勢(shì),可自行配置,管理員能夠輕松定義調(diào)度策略,滿足集群配置、應(yīng)用程序以及用戶目標(biāo)。1集群調(diào)度 本文提供一種有效的CPU-GPU集群調(diào)度模型。異構(gòu)環(huán)境需要在兩次粒度上進(jìn)行調(diào)度:①任務(wù)要被映射到計(jì)算節(jié)點(diǎn)上(粗粒度調(diào)度);②特定庫(kù)的調(diào)用要映射到GPU集群上(細(xì)粒度調(diào)度)。為了使它具有可擴(kuò)展性,要設(shè)計(jì)一個(gè)異構(gòu)環(huán)境。 集群調(diào)度[56]主要目標(biāo)是:①運(yùn)行集群調(diào)度策略;②運(yùn)行節(jié)點(diǎn)層組件;③允許管理員自行定義調(diào)度策略。1.1調(diào)度結(jié)構(gòu) 圖1是集群調(diào)度模型框架[78]。該框架的下層實(shí)現(xiàn)集群要求的通信機(jī)制調(diào)度程序以及用戶與節(jié)點(diǎn)層運(yùn)行時(shí)的交互。接口提供了Socket與節(jié)點(diǎn)內(nèi)通信、共享內(nèi)存與節(jié)點(diǎn)內(nèi)通信。調(diào)度組件包括調(diào)度API、(用戶自定義)共享庫(kù)調(diào)度策略、數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)和集群相關(guān)信息的訪問(wèn)。1.2調(diào)度API 表1顯示調(diào)度API的主要原始事項(xiàng),管理員必須創(chuàng)建自定義調(diào)度庫(kù)。調(diào)度接口提供兩個(gè)機(jī)制:API和回調(diào)函數(shù)[9]。〖JP〗 API函數(shù):允許API函數(shù)(見(jiàn)表1)查詢節(jié)點(diǎn)狀態(tài)、分配執(zhí)行工作節(jié)點(diǎn)、收集分析信息等。API函數(shù)分為3類:一般API、節(jié)點(diǎn)層運(yùn)行管理API、作業(yè)和隊(duì)列管理API;通用API進(jìn)行調(diào)度庫(kù)維護(hù)工作;節(jié)點(diǎn)層管理的API函數(shù)可以相互控制在組件節(jié)點(diǎn)層上,具有查詢和管理功能;作業(yè)和隊(duì)列管理API函數(shù)任務(wù)調(diào)度的目的是為了限制資源,將上述信息收集分配給當(dāng)前運(yùn)行的作業(yè),然后在特定節(jié)點(diǎn)上安排運(yùn)行。
2集群調(diào)度策略 提出兩種調(diào)度策略:①異構(gòu)CPU-GPU集群調(diào)度;②減少延遲[1011]。前者目的是在共享通信之間使整體吞吐量最大化;后者盡量縮短等候時(shí)間。2.1集群調(diào)度庫(kù) 現(xiàn)代高性能計(jì)算集群配備有多個(gè)節(jié)點(diǎn)的GPU,它提高了節(jié)點(diǎn)的整體性能和利用率,但降低了隊(duì)列作業(yè)時(shí)間。 在3個(gè)節(jié)點(diǎn)、3個(gè)應(yīng)用程序進(jìn)行實(shí)驗(yàn),執(zhí)行8個(gè)進(jìn)程集群。每個(gè)實(shí)驗(yàn)必須使用測(cè)試進(jìn)程映射1-3個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)包含2-4 GPU。圖2顯示性能的3個(gè)指標(biāo)與8個(gè)運(yùn)行應(yīng)用程序在不同的節(jié)點(diǎn)配置,顯示出執(zhí)行時(shí)間有不同的映射策略。每個(gè)節(jié)點(diǎn)上的進(jìn)程數(shù)在地圖上顯示在方括號(hào)內(nèi)。 MM和NW是通信密集型應(yīng)用程序,而ADFA是計(jì)算密集型應(yīng)用程序。從圖中可以看出,通信密集型[12]的應(yīng)用程序不能擴(kuò)展到更多節(jié)點(diǎn),而一個(gè)計(jì)算密集應(yīng)用程序已經(jīng)分配了多個(gè)大規(guī)模的性能節(jié)點(diǎn)。2.2延遲減少調(diào)度 通過(guò)利用GPU的共享提高整體的吞吐量。如在圖2中發(fā)現(xiàn)應(yīng)用程序有不同的運(yùn)行時(shí)間:MM和NW是短期運(yùn)行的作業(yè),而ADFA是長(zhǎng)期運(yùn)行,這些應(yīng)用程序在運(yùn)行時(shí)隔離。當(dāng)不同的作業(yè)競(jìng)爭(zhēng)資源時(shí),長(zhǎng)時(shí)間運(yùn)行的作業(yè)會(huì)嚴(yán)重降低性能。具體來(lái)說(shuō),短期作業(yè)和長(zhǎng)期作業(yè)以同樣的方式可能會(huì)造成資源利用不公平。2.3節(jié)點(diǎn)層運(yùn)行 節(jié)點(diǎn)層的運(yùn)行時(shí)間用一個(gè)靈活的調(diào)度來(lái)虛擬化[1316],最終用戶在GPU上能重現(xiàn)映射過(guò)程。 圖3顯示節(jié)點(diǎn)層運(yùn)行時(shí)的狀態(tài),由連接管理器、背景隊(duì)列、調(diào)度、虛擬的GPU、內(nèi)存管理器和隊(duì)列監(jiān)視器等組成。3實(shí)驗(yàn)結(jié)果3.1實(shí)驗(yàn)設(shè)置 兩個(gè)集群實(shí)驗(yàn)配置:8個(gè)工作站集群各配備一個(gè)四核CPU和一個(gè)低端的GPU,高端集群包括3個(gè)HPC服務(wù)器,每個(gè)配備有超線程8或12核CPU,2至4的NVIDIA GPU。3.2異構(gòu)負(fù)載實(shí)驗(yàn) 對(duì)CPU-GPU異構(gòu)工作時(shí)的負(fù)載方案進(jìn)行評(píng)估。構(gòu)造一個(gè)批處理調(diào)度庫(kù)模擬轉(zhuǎn)矩,在一個(gè)循環(huán)方式下分配各項(xiàng)工作GPU,而不在節(jié)點(diǎn)層的GPU上共享。 圖4、圖5顯示標(biāo)準(zhǔn)吞吐量、平均質(zhì)量及服務(wù)性能。通過(guò)改善公平性,減少延遲調(diào)度策略,合理調(diào)度長(zhǎng)期和短期運(yùn)行作業(yè),提高了平均服務(wù)質(zhì)量,同時(shí)增大了吞吐量。4結(jié)語(yǔ) 通過(guò)研究典型的集群調(diào)度模型[17],提出了一種基于異構(gòu)CPU-GPU集群的分層調(diào)度框架。系統(tǒng)包括調(diào)度API,允許管理員自定義集群級(jí)調(diào)度策略和配置,在節(jié)點(diǎn)層使用共享和調(diào)度方案。提出兩個(gè)集群級(jí)調(diào)度方案(GPU共享和減少延遲調(diào)度),使用兩種異構(gòu)集群和計(jì)算密集型應(yīng)用程序?qū)ζ溥M(jìn)行測(cè)試。研究結(jié)果表明,調(diào)度模型改進(jìn)了傳統(tǒng)的間歇調(diào)度情況,有一定實(shí)用價(jià)值。參考文獻(xiàn):[1]陳鋼.眾核GPU體系結(jié)構(gòu)相關(guān)技術(shù)研究[D].上海:復(fù)旦大學(xué),2011.[2]吳佳駿.多核多線程處理器上任務(wù)調(diào)度技術(shù)研究[D].北京:中國(guó)科學(xué)院計(jì)算技術(shù)研究所,2006.[3]M BECCHI,K SAJJAPONGSE,I GRAVES,et al.A virtualmemory based runtime to support multitenancy in clusters with GPUs[C].In Proceedings of the 21st internationalsymposium on HighPerformance Parallel and Distributed Computing,Delft,The Netherlands,2012:97108.[4]V T RAVI,M BECCHI,W JIANG,et al.Scheduling concurrent applications on a cluster of CPUGPU nodes[C].In Proceedings of the 12th IEEE/ACM International Symposium on Cluster,Cloud and Grid Computing(CCGRID),2012:140147.[5]耿曉中.基于多核分布式環(huán)境下的任務(wù)調(diào)度關(guān)鍵技術(shù)研究[D].長(zhǎng)春:吉林大學(xué),2013.[6]朱福喜,何炎祥.并行分布計(jì)算中的調(diào)度算法理論與設(shè)計(jì)[M].武漢:武漢大學(xué)出版社,2003:6068.[7]KITTISAK SAJJAPONGSE,TEJASWI AGARWAL,MICHELA BECCHI.A flexible scheduling framework for heterogeneous CPUGPU clusters[EB/OL].https://www.researchgate.net/profile/Kittisak_Sajjapongse.[8]吳恩華,柳有權(quán).基于圖形處理器(GPU)的通用計(jì)算[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2004,16(5):601612.[9]V T RAVI,M BECCHI,G AGRAWAL,et al.ValuePack:valuebased scheduling framework for CPUGPUclusters[C].In Proceedings of the International Conferenceon High Performance Computing,Networking,Storage and Analysis(SC),Salt Lake City,Utah,2012:112.[10]SALAMY H,RAMANUJAM J.An effective solution to task scheduling and memory partitioning for multiprocessor systemonchip[J].IEEE Transactions on ComputerAided Design of Integrated Circuits and Systems,2012,31(31):717725.[11]何琨,趙勇,黃文奇.基于任務(wù)復(fù)制的分簇與調(diào)度算法[J].計(jì)算機(jī)學(xué)報(bào),2005,31(5):733740.[12]J D OWENS,M HOUSTON,D LUEBKE,et al.GPU computing[J].Proceedings of the IEEE,2008,96(5):879899.[13]虛擬化與云計(jì)算小組.虛擬化與云計(jì)算[M].北京:電子工業(yè)出版社,2009.[14]王鵬,呂爽,聶治,等.并行計(jì)算應(yīng)用及實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2009:6263.[15]J DUATO,A J PENA,F(xiàn) SILLA,et al.Enabling CUDA acceleration within virtual machines using rCUDA[C].In Proceedings of the 2011 18th International Conference on High Performance Computing,2011:110.[16]吳佳駿.多核多線程處理器上任務(wù)調(diào)度技術(shù)研究[D].北京:中國(guó)科學(xué)院計(jì)算技術(shù)研究所,2006.[17]金勝男.基于異構(gòu)的靜態(tài)任務(wù)調(diào)度策略研究[D].哈爾濱:哈爾濱工程大學(xué),2012.(責(zé)任編輯:杜能鋼)