基於虛擬機的gpu集群管理系統的製作方法
2023-10-18 06:24:59
專利名稱:基於虛擬機的gpu集群管理系統的製作方法
技術領域:
本發明涉及集群管理的技術領域,更具體地涉及在虛擬桌面平臺下提供支持GPU 計算任務運行和多個GPU伺服器組成的GPU集群計算資源的調度和管理的系統。
背景技術:
當前遠程桌面技術受到人們的追捧,當某臺計算機開啟了遠程桌面連接功能後我們就可以在網絡的另一端控制這臺計算機了,通過遠程桌面功能我們可以實時的操作這臺計算機,在上面運行各種應用程式,所有的一切都好像是直接在該計算機上操作一樣。集群是使用多個計算機,如典型的個人計算機或伺服器,通過網絡互聯,來組成一個對用戶來說單一的高可用性的系統。集群計算能夠被用來實現負載均衡,當自己的計算機不滿足某計算作業的要求時,集群系統可以把作業提交到支持該作業的計算節點上,而對計算機的使用者透明。從而,對外界來說,集群就像是一個唯一的系統。當前高校和研究院都廣泛簡歷集群系統進行科學研究。但是目前沒有基於虛擬機的GPU集群系統,不僅使集群支持GPU計算,還滿足虛擬機用戶進行GPU計算的支持。同時傳統的集群調度算法使 GPU效率低下,不利於GPU充分發揮強勁的計算能力。
發明內容
本發明的目的在於提供一種基於虛擬機的GPU集群管理系統,該系統具有網絡透明性和可擴展性。如圖1和2所示,本發明系統包括一個集群管理節點和多個與其相接的GPU集群節點。GPU集群節點包括一個管理域和多個虛擬機。虛擬機提供用戶操作接口以接收用戶的CUDA作業,攔截任務中的特權指令,將其傳送給管理域。管理域通過GPU驅動操作GPU 執行特權指令,返回執行結果給對應的虛擬機。虛擬機包括GPU信息收集模塊1. 1、集群管理模塊2. 1和vCUDA庫攔截模塊3. 1。 GPU信息收集模塊1. 1,通過CUDA庫提供的API函數,獲取本集群節點的GPU參數信息,包括 GPU型號、GPU核數、共享內存大小、CUDA驅動版本以及GPU支持的計算能力信息,而後發送給集群管理模塊2. 1 ;集群管理模塊2. 1,提供接口給用戶提交CUDA作業信息,將其與GPU 參數信息、作業完成信息一起傳送給集群管理節點,並接收集群管理節點發送的CUDA作業調度指令,執行該指令指定的CUDA作業,將執行結果傳送給提交該作業的虛擬機;vCUDA庫攔截模塊3. 1,在集群管理模塊2. 1執行作業過程中,實時攔截GPU作業中的特權指令,將其傳送給管理域,並接收管理域返回的特權指令執行結果以協助集群管理模塊2. 1的CUDA作業運行。管理域包括vCUDA庫接收模塊4. 1。vCUDA庫接收模塊4. 1從vCUDA庫攔截模塊 3. 1接收特權指令,調用CUDA應用程式API,通過GPU驅動操作實際硬體GPU執行特權指令, 並將執行結果返回給對應的虛擬機的vCUDA庫攔截模塊3. 1。CUDA庫是NVIDIA推出的庫函數,用戶可以直接使用較為簡單的CUDAAPI實現對GPU的操作,取代了以前複雜的圖形操作。集群管理節點包括集群管理中心模塊5、GPU節點數據結構模塊6和GPU集群調度模塊7。集群管理中心模塊5接收各GPU集群節點的虛擬機的集群管理模塊2. 1發送過來的GPU參數信息、GUDA作業信息和虛擬機的作業完成信息,將GPU參數信息和完成作業信息傳送給GPU節點數據結構模塊6,將GUDA作業信息傳送給GPU集群調度模塊7,並依據來自 GPU集群調度模塊7的作業調度結果把作業分配給合適的集群計算節點運行;GPU節點數據結構模塊6,接收集群管理中心模塊5發送過來的節點GPU信息和虛擬機的作業完成信息, 將作業完成信息對應的虛擬機的作業次數減一,還從GPU集群調度模塊接收當前分配作業的虛擬機信息,將該虛擬機的作業計數加一。作業計數初始化為0,表示當前GPU空閒,當作業計數大於0時,表示該GPU處於忙碌狀態;GPU集群調度模塊7,根據集群管理中心模塊5 提供的作業信息和GPU節點數據結構模塊6的GPU參數信息以及虛擬機作業計數,根據調度算法為當前作業分配合適的計算虛擬機,將調度結果傳送給集群管理中心模塊,同時將當前被分配作業的虛擬機信息傳送給GPU節點數據結構模塊6。所述調度算法具體為查詢GPU參數信息,尋找滿足當前作業要求的虛擬機,從滿足要求的虛擬機中尋找作業計數最小者作為當前作業的執行虛擬機。本發明的技術效果體現在本發明的基於虛擬機的GPU集群系統提供了先進的集群架構,支持虛擬桌面用戶通過客戶端提交GPU任務。該就能架構符合一系列的功能要求,包括網絡透明性,易操作性和可擴展性。它利用通過的torque分布式集群管理軟體,把安裝有GPU的伺服器上的虛擬機組件成虛擬機集群,支持虛擬桌面用戶提交CPU以外的GPU作業,同時,本發明提供了有效的GPU調度算法,有效提高GPU效率。
圖1為基於虛擬機的GPU集群管理系統整體結構圖;圖2為集群節點詳細結構圖。
具體實施例方式下面舉例說明本系統實施過程中的配置情況。表1軟硬體相應配置清單
權利要求
1. 一種基於虛擬機的GPU集群管理系統,包括一個集群管理節點和多個與其相接的 GPU集群節點;所述GPU集群節點包括一個管理域和多個虛擬機;所述虛擬機包括GPU信息收集模塊(1. 1)、集群管理模塊(2. 1)和vCUDA庫攔截模塊 (3. 1) ;GPU信息收集模塊(1. 1),收集本集群節點的GPU參數信息,傳送給集群管理模塊 (2. 1);集群管理模塊(2. 1),提供接口給用戶提交CUDA作業信息,將其與GPU參數信息、作業完成信息信息一起傳送給集群管理節點,接收來自集群管理節點傳送的CUDA作業調度指令,運行該指令指定的CUDA作業,將該作業運行完成結果傳送給提交該作業的虛擬機; vCUDA庫攔截模塊(3. 1),在集群管理模塊(2. 1)執行作業過程中,實時攔截GPU作業中的特權指令,將其傳送給管理域,並接收管理域返回的特權指令運行結果以協助集群管理模塊(2. 1)的CUDA作業運行;所述管理域包括vCUDA庫接收模塊(4. 1) ;vCUDA庫接收模塊(4. 1),從vCUDA庫攔截模塊(3. 1)接收特權指令,調用CUDA應用程式API通過GPU驅動操作實際硬體GPU運行特權指令,並將特權指令運行結果返回給其對應的虛擬機的vCUDA庫攔截模塊(3. 1);所述集群管理節點包括集群管理中心模塊(5)、GPU節點數據結構模塊(6)和GPU集群調度模塊(7);集群管理中心模塊(5),接收來自虛擬機的集群管理模塊(2. 1)的GPU參數信息、GUDA作業信息和作業完成信息,將GPU參數信息和作業完成信息傳送給GPU節點數據結構模塊6,將GUDA作業信息傳送給GPU集群調度模塊(7),依據來自GPU集群調度模塊 (7)的作業調度結果產生CUDA作業調度指令;GPU節點數據結構模塊㈩),接收來自集群管理中心模塊(5)的GPU參數信息和作業完成信息,將作業完成信息所來源的虛擬機的作業計數減一,接收來自GPU集群調度模塊(7)的執行虛擬機信息,將該執行虛擬機的作業計數加一;GPU集群調度模塊(7),查詢GPU節點數據結構模塊(6)中的GPU參數信息,尋找滿足GUDA作業要求的虛擬機,從滿足要求的虛擬機中尋找作業計數最小者作為該作業的執行虛擬機,進而產生包含GUDA作業和該作業的執行虛擬機信息的作業調度結果,將作業調度結果傳送給集群管理中心模塊(5),同時將執行虛擬機信息傳送給GPU節點數據結構模塊(6)。
全文摘要
本發明提供了一種基於虛擬機的GPU集群管理系統,包括集群管理節點和多個GPU集群節點,GPU集群節點又包括一個管理域和多個虛擬機。各虛擬機接收用戶的CUDA作業,將其轉發給集群管理節點,集群管理節點根據CUDA作業要求、GPS的參數信息以及虛擬機的當前作業隊列信息指定合適的虛擬機運行作業;被指定的虛擬機運行作業過程中,攔截作業務中的特權指令,將其傳送給管理域,管理域通過GPU驅動操作GPU運行特權指令,返回運行結果給對應的虛擬機以協助虛擬機的GUDA作業運行。本發明提供了先進的集群架構,支持虛擬桌面用戶通過客戶端提交GPU任務。該就能架構符合一系列的功能要求,包括網絡透明性,易操作性和可擴展性。
文檔編號G06F9/455GK102521012SQ20111037898
公開日2012年6月27日 申請日期2011年11月24日 優先權日2011年11月24日
發明者廖小飛, 梁東, 金海 申請人:華中科技大學