康 雷,張樹本,楊 堅
(中國科學技術大學自動化系,合肥 230027)
基于B/S模式的GPU集群管理系統設計
康 雷,張樹本,楊 堅
(中國科學技術大學自動化系,合肥 230027)
普通PC機上搭載的GPU顯卡存在功耗低、性能差的問題,不能滿足大規模統一計算設備架構(CUDA)并行計算的需求。為此,將計算密集型任務轉移到GPU集群中完成,設計并實現基于B/S模式的GPU集群管理系統,用戶通過網頁提交CUDA代碼即可得到GPU集群計算后的結果。測試結果表明,該系統可使用戶在任何能使用瀏覽器的電子設備上完成基于CUDA的計算密集型任務,不僅方便用戶使用,而且能加速程序的運行過程,提高工作效率。
GPU集群;統一計算設備架構;B/S模式;資源管理;任務調度
DO I:10.3969/j.issn.1000-3428.2015.10.002
GPU在并行計算處理能力上大大超過了CPU,而且隨著NVIDIA公司的統一計算設備架構(Compute Unified Device Architecture,CUDA)[1]的推廣也使得GPU逐漸走向成熟。然而,普通PC機上搭載的顯卡功耗低、性能差,往往不能滿足大規模CUDA并行計算的需求。隨著多核技術的發展和集群計算的應用,GPU集群系統針對計算密集型任務在速度上有更大優勢。
當前大多數作業管理系統都是針對CPU核進行調度的[2-3]。對于計算密集型任務,CPU核的服務器和 GPU核的服務器相比,功耗更大、熱量更多,計算效率反而更低。因此,出現了單CPU+單GPU的資源調度系統[4]和單結點 GPU和多核CPU協同計算的系統[5],而GPU集群服務系統的研究目前還比較少。文獻[6]研究了 3D建模在GPU集群上的應用,體現出GPU集群處理計算密集型任務的優勢。文獻[7]提出了GPU集群調度管理系統,但該系統采用的是C/S模式,不方便用戶在各種不同的系統平臺上高效執行并行計算任務。文獻[8]擴展了資源管理系統TORQUE,使其
可以應用于GPU集群的管理中,但主要偏重于研究GPU集群資源的動態申請、分配與銷毀,較少涉及任務調度策略。文獻[9]提出了面向 GPU集群的任務自動分配系統,但其所設計的任務分配策略并沒有考慮當前GPU集群的運行狀態。本文針對GPU集群系統提出一種基于優先級調度策略的任務隊列管理方案,同時考慮集群當前運行狀態,從而提高任務調度的效率。
基于B/S模式的GPU集群管理系統設計框圖如圖1所示。該系統主要由W eb門戶、集群管理系統和GPU集群三部分組成。其中,Web門戶接收用戶任務請求,并提交給集群管理系統;集群管理系統調度用戶提交的任務,同時維護GPU集群狀態,該系統由任務隊列、GPU集群資源管理模塊、任務調度模塊和GPU狀態采集模塊四部分組成;GPU集群執行任務請求并向用戶返回結果。

圖1 GPU集群管理系統整體設計框圖
2.1 任務隊列管理模塊
任務隊列管理模塊的作用是把用戶提交的CUDA任務作業根據優先級調度策略放入到任務隊列中。本文系統采用的優先級調度策略根據用戶申請的優先級、提交任務的時間和用戶提交任務的頻率把用戶提交的CUDA任務作業進行排序并放入任務隊列中。
本文系統分別給用戶提供普通權限和優先級權限。新用戶注冊默認是普通權限,優先級權限需要和管理員申請,而且比例不能超過1%。
為了防止優先級用戶使用頻率過高使得整體用戶使用性能降低的問題,提出了任務日志記錄的方案,把當天(0:00-24:00)每個執行完的任務都記錄在任務日志中(如圖2所示),包括用戶ID、作業ID和使用時間。用戶ID是提交該任務的用戶的ID,作業ID是任務隊列管理模塊在把用戶提交的任務放入任務隊列的時候分配給任務的 ID號,使用時間是該任務在GPU中運行的時間,即使用的GPU時間。

圖2 任務日志
如果一個任務被分配給某個GPU,運行過程中GPU內存占用不斷增大并使得GPU內存資源的95%被占用時,為了確保其他程序可以得到正確的結果,會暫時把這個任務停止掉,然后,把這個任務排放在任務隊列的首位,重新分配GPU資源占用最少的GPU去執行。
2.2 GPU狀態采集模塊
GPU狀態采集模塊周期性獲取GPU集群上所有GPU的狀態信息(例如GPU使用率等),保存到GPU設備狀態表中(如圖3所示),并通知任務調度模塊讀取GPU設備狀態表信息。狀態采集可以通過nvidia-sm i命令實現。
管理系統根據GPU設備狀態表查找出空閑的GPU設備予以分配。由于采集GPU狀態的過程也是要消耗計算資源的,因此GPU狀態采集模塊采取的策略是:當任務調度模塊從任務隊列中取出一個任務的時候,GPU狀態采集模塊執行一次采集任務,將采集到的所有GPU信息傳遞給任務調度模塊。
2.3 任務調度模塊
任務調度模塊從任務隊列中取出一個任務,根據GPU集群資源管理模塊給出的策略,選定目標GPU,并將任務分配到這個目標GPU中運行,并更新任務狀態表(如圖4所示),綁定用戶 ID、使用的GPU設備ID和任務編號。

圖4 任務狀態表
2.4 GPU集群資源管理模塊
GPU集群資源管理模塊根據GPU狀態采集模塊周期性采集的數據,選出當前使用率最低的GPU,并將該GPU設備ID傳給任務調度模塊,使任務調
度模塊優化調度,達到公平和高效的目的。
2.5 GPU計算單元
GPU是圖形處理單元,適合于大規模數值并行計算,但必須和CPU配合工作使用。在CPU+GPU體系結構中,CPU負責邏輯處理,GPU負責計算密集型的數值處理,也就是說,CPU負責把需要GPU處理的任務和數據傳遞給GPU,GPU處理后把結果返回給CPU進程。
GPU卡有4種工作模式:默認模式,進程獨占模式,線程獨占模式,禁用模式。默認模式是共享模式,即允許多個進程使用同一個GPU設備。本文設定GPU卡工作模式為共享模式。
3.1 任務隊列管理模塊
任務隊列資源調度流程如圖5所示。

圖5 資源調度流程
下面的checkUser函數檢查用戶在當下是否具有高級用戶權限,返回值0表示是普通用戶權限,返回值1表示是優先級用戶權限。


log列表是任務日志(如圖2所示),保存的是當天(0:00-24:00)用戶提交任務和任務運行情況。這里主要針對優先級用戶,如果優先級用戶在單位時間內因運行CUDA代碼而使用的GPU時間超過一定閥值(本例中使用1/50),則認為該優先級用戶使用優先權限過于頻繁,為了公平原則,把該優先級用戶當作普通用戶對待,優先級用戶提交的任務放入任務隊列尾部。直到該優先級用戶使用GPU的時間小于設定的閾值的時候,才會恢復其優先權限。這樣,在最大程度上保護了所有用戶的公平,使整體效率最高。
3.2 GPU狀態采集模塊
本文基于nvidia-smi采用python3語法寫了一個GPU狀態監測模塊代碼checkGPUs.py,主要函數如下:

程序運行示例如圖6所示。

圖6 GPU狀態采集模塊代碼運行結果
3.3 CUDA程序執行
CUDA程序如下:


本文系統采用多線程方式運行CUDA程序,充分利用GPU資源并且防止程序阻塞。task列表是待執行的任務隊列,每個元素包括用戶ID、作業ID和作業使用的GPU設備編號;resultTable列表是執行完畢后保存任務結果的隊列,每個元素包括用戶ID、作業運行結果和使用的GPU設備編號。
本文系統的原型實驗系統采用5臺Intel i7-4770 CPU的服務器,每臺掛載2個NVIDIA Geforce GTX680顯卡,操作系統Ubuntu 12.04 64位,編譯環境CUDA 6.0。
本文注冊了10個模擬用戶,1個享有最高優先級,其余9個是默認優先級。因為網頁采用cookie方式[10]存儲用戶登錄信息,所以必須打開 3個不同的瀏覽器才能模擬3個用戶。根據文獻[11-13]提出的算法,寫出100×100矩陣乘法 CUDA代碼,并將其作為測試樣例代碼,測試界面如圖7所示,最上面的導航條是提供用戶登錄操作的,登錄進來后可以在線上傳CUDA代碼在GPU集群中運行。

圖7 用戶提交CUDA代碼并獲得結果的網頁界面
圖7左側上半部分是CUDA代碼填寫區域,左側下半部分是程序運行后的輸出區域,如果代碼出錯,錯誤信息也會顯示在這里。測試結果如表1所示。

表1 GPU集群服務器示例輸出信息
本文將計算密集型用戶任務轉移到GPU集群系統中完成,設計并實現了基于B/S模式的GPU集群管理系統。同時,針對集群系統管理提出了一種基于優先級調度策略的任務隊列管理方案,使得任務調度更加高效。下一步將對基于節能調度[14]的大規模GPU集群系統進行研究。
[1] Nickolls J,Buck I,Garland M,et al.Scalable Parallel Programming with CUDA[J].Queue,2008,6(2):40-53.
[2] Yoo A B,Jette M A,Grondona M.SLURM:Sim p le Linux Utility for Resource Management[C]//Proceedings of JSSPP’03.Berlin,Germany:Springer,2003:44-60.
[3] Staples G.TORQUE Resource Manager[C]//Proceedings of ACM/IEEE Conference on Supercomputing. New York,USA:ACM Press,2006:8.
[4] 張 繁,王章野,姚 建,等.應用GPU集群加速計算蛋白質分子場[J].計算機輔助設計與圖形學學報,2010,22(3):412-419.
[5] 沈 莉,陳 林.一種CPU+GPU資源調度系統的研究[J].高性能計算發展與應用,2011,(1):28-31.
[6] Newall M,Holm es V,Lunn P.GPU Cluster for Accelerated Processing and Visualisation of Scientific and Engineering Data[C]//Proceedings of Science and Information Conference.Washington D.C.,USA:IEEE Press,2014:140-145.
[7] 李文亮.GPU集群調度管理系統關鍵技術的研究[D].武漢:華中科技大學,2011.
[8] Prabhakaran S,Iqbal M,Rinke S,et al.A Dynamic Resource Management System for Network-attached Accelerator Clusters[C]//Proceedings of the 42nd International Conference on Parallel Processing. Washington D.C.,USA:IEEE Press,2013:773-782.
[9] 胡新明,盛沖沖,李佳佳,等.面向通用計算 GPU集群的任務自動分配系統[J].計算機工程,2014,40(3):103-107,119.
[10] 王小紅.基于Cookie的單點登錄認證機制實現[J].重慶工商大學學報:自然科學版,2014,31(8):73-78.
[11] 梁娟娟,任開新,郭利財,等.GPU上的矩陣乘法的設計與實現[J].計算機系統應用,2011,20(1):178-181.
[12] 劉進鋒,郭 雷.CPU與GPU上幾種矩陣乘法的比較與分析[J].計算機工程與應用,2011,47(19):9-11.
[13] 馬夢琦,劉 羽,曾勝田.基于CUDA架構矩陣乘法的研究[J].微型機與應用,2012,30(24):62-64.
[14] 李 新,賈智平,鞠 雷,等.一種面向同構集群系統的并行任務節能調度優化方法[J].計算機學報,2012,35(3):591-602.
編輯 金胡考
Design of GPU Cluster Management System Based on B/SM ode
KANG Lei,ZHANG Shuben,YANG Jian
(Department of Automation,University of Science and Technology of China,Hefei 230027,China)
Due to the low power and poor performance on an ordinary PC equipped with the graphics card,it can not meet the needs of large-scale Compute Unified Device Architecture(CUDA)parallel computing.Aiming at these problems,the compute-intensive user tasks are transferred to the GPU cluster system,the GPU cluster management system is designed and implemented based on B/S mode.The user submits the CUDA code through the web and gets results from the GPU cluster management system.Test result show s that the compute-intensive tasks can be done on any browserbased electronic devices.It brings convenience for the users,accelerates the process of running the program,saves the users’time and greatly improves the users’efficiency.
GPU cluster;Compute Unified Device Architecture(CUDA);B/S mode;resource management;task scheduling
康 雷,張樹本,楊 堅.基于B/S模式的GPU集群管理系統設計[J].計算機工程,2015,41(10):6-9.
英文引用格式:Kang Lei,Zhang Shuben,Yang Jian.Design of GPU Cluster Management System Based on B/S Mode[J].Computer Engineering,2015,41(10):6-9.
1000-3428(2015)10-0006-04
A
TP311
國家自然科學基金資助重點項目(61233003);國家自然科學基金資助面上項目(61174062);中央高校基本科研業務費專項基金資助項目(WK 2100100021)。
康 雷(1990-),男,碩士研究生,主研方向:多媒體計算;張樹本,博士研究生;楊 堅,副教授、博士生導師。
2014-10-19
2014-11-21E-m ail:kanglei@mail.ustc.edu.cn