專利名稱:一種基于任務(wù)調(diào)度的分布式gpu計(jì)算機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng)。
背景技術(shù):
目前,單核CPU的發(fā)展已經(jīng)遇到了瓶頸,傳統(tǒng)CPU架構(gòu)也不利于多核心效率的提高。而圖形處理器(Graphics Processing Unit,GPU)因?yàn)橛猛静煌?其架構(gòu)從一開(kāi)始就是專為大量并行運(yùn)算核心優(yōu)化設(shè)計(jì)的,所以同時(shí)期GPU效能與核心數(shù)量保持了成正比的增長(zhǎng)勢(shì)頭。另外,圖形處理器(GPU)和CPU —樣普遍存在于計(jì)算機(jī)系統(tǒng)中,隨著GPU計(jì)算能力的不斷提高和通用技術(shù)應(yīng)用的快速發(fā)展,如何利用互聯(lián)網(wǎng)上的計(jì)算機(jī)系統(tǒng)中的GPU計(jì)算資源也成為另一個(gè)需要解決的問(wèn)題。早期的計(jì)算機(jī)系統(tǒng)都是進(jìn)行獨(dú)立計(jì)算工作的,隨著網(wǎng)絡(luò)的出現(xiàn),特別是基于TCP/IP協(xié)議的互聯(lián)網(wǎng)的出現(xiàn),將這些連接到互聯(lián)網(wǎng)中的獨(dú)立計(jì)算機(jī)協(xié)同起來(lái)共同完成應(yīng)用計(jì)算 任務(wù)和問(wèn)題,從而形成了分布式計(jì)算。通過(guò)分布式計(jì)算,用戶不必投資于一臺(tái)功能強(qiáng)大的計(jì)算機(jī),而是使用多臺(tái)功能一般,價(jià)格便宜的計(jì)算機(jī)完成相同的任務(wù)。如今,分布式計(jì)算已經(jīng)發(fā)展成為計(jì)算機(jī)領(lǐng)域中的一門(mén)高性能計(jì)算科學(xué),它研究如何把一個(gè)需要非常巨大的計(jì)算能力才能解決的問(wèn)題分成許多小的部分然后把這些部分分配給許多計(jì)算機(jī)進(jìn)行處理,最后把這些計(jì)算結(jié)果綜合起來(lái)得到最終的結(jié)果。最初計(jì)算機(jī)圖形處理器(GPU)主要用于圖像處理和輸出顯示。近年來(lái),GPU得到極大的發(fā)展,并且開(kāi)始應(yīng)用于圖形學(xué)之外的通用計(jì)算領(lǐng)域。GPU用于通用計(jì)算的研究也開(kāi)始成為熱點(diǎn)。特別是2006年推出的新的GPU采用了統(tǒng)一渲染架構(gòu)(Unified Shader, US)以取代傳統(tǒng)的分離式渲染架構(gòu)。在統(tǒng)一渲染架構(gòu)中,PS單元和VS單元都被通用的US單元所取。這種US單元既可以處理頂點(diǎn)數(shù)據(jù),又可以處理像素?cái)?shù)據(jù)。因此,GPU可以根據(jù)實(shí)際處理需求進(jìn)行靈活的分配,這樣便有效地解決了傳統(tǒng)分離式架構(gòu)中VS和PS工作量不均的問(wèn)題,從而提高了資源利用率?;谠摷軜?gòu)的GPU產(chǎn)品包括NVIDIA的GeForce 8000系列和ATI的Radeon X2000系列。此外,NVIDIA還推出專業(yè)的高性能計(jì)算GPU產(chǎn)品,包括Tesla8 系列 GPU (如 Tesla C870/D870/S870)、和 Tesla 10 系列 GPU (如 Tesla C1060/S1070)和Tesla 20 系列 GPU (如 TeslaC2050/C2070/C2075)。其中,單核 Tesla C870 GPU 擁有 128個(gè)流處理單元,單精度浮點(diǎn)計(jì)算性能可達(dá)350 GFLOPS ;第二代的單核Tesla C1060 GPU擁有240個(gè)流處理單元,單精度浮點(diǎn)計(jì)算性能可達(dá)933 GFLOPS ;而基于新一代Fermi CUDA架構(gòu)的Tesla C2075 GPU更是擁有448個(gè)流處理單元,單精度浮點(diǎn)計(jì)算性能可達(dá)1030 GFLOPS,雙精度浮點(diǎn)計(jì)算性能可達(dá)515 GFLOPS0上述基于GPU的計(jì)算機(jī)集群,通過(guò)專用網(wǎng)絡(luò)設(shè)備和通信接口互聯(lián)實(shí)現(xiàn)集群計(jì)算,但是其存在諸多問(wèn)題,如系統(tǒng)設(shè)計(jì)復(fù)雜,擴(kuò)展性差,很難做到動(dòng)態(tài)加載計(jì)算節(jié)點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明設(shè)計(jì)開(kāi)發(fā)了一種基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng)。系統(tǒng)內(nèi)的GPU處理單元來(lái)自于網(wǎng)絡(luò),在與中央處理單元建立通信之前,可能正處于運(yùn)算狀態(tài),利用任務(wù)調(diào)度模塊根據(jù)計(jì)算機(jī)系統(tǒng)內(nèi)的各GPU處理單元的當(dāng)前處理能力對(duì)任務(wù)塊進(jìn)行分配,根據(jù)各GPU處理單元的性能分配工作,保證對(duì)資源的高效率利用;同時(shí),實(shí)時(shí)計(jì)算GPU處理單元的利用率,以便及時(shí)將系統(tǒng)內(nèi)多余的GPU處理單元轉(zhuǎn)入待機(jī)狀態(tài)或者在系統(tǒng)內(nèi)GPU處理單元處理能力不足時(shí),激活GPU處理單元以滿足系統(tǒng)需要,也可以保證充分利用GPU處理單元的資源。本發(fā)明所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),利用GPU的大規(guī)模并行計(jì)算能力,解決現(xiàn)有傳統(tǒng)的CPU計(jì)算存在的計(jì)算能力不足的問(wèn)題,大大提高計(jì)算能力。系統(tǒng)設(shè)計(jì)簡(jiǎn)單,具有良好的擴(kuò)展性。本發(fā)明提供的技術(shù)方案為一種基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),包括GPU處理單元,所述GPU處理單元用于處理任務(wù)塊; 中央處理單元,所述GPU處理單元與所述中央處理單元通信,其包括任務(wù)分解模塊和任務(wù)調(diào)度模塊,所述中央處理單元監(jiān)測(cè)當(dāng)前與所述中央處理單元通信的GPU處理單元的個(gè)數(shù)N以及N個(gè)GPU處理單元中的各GPU處理單元的當(dāng)前處理能力Wi,并計(jì)算各GPU處理單元的當(dāng)前處理能力在N個(gè)GPU處理單元的當(dāng)前處理能力的總和的權(quán)重i,其中i =Wi/ Σ Wi,所述任務(wù)分解模塊將當(dāng)前任務(wù)均分為M個(gè)任務(wù)塊,所述任務(wù)調(diào)度模塊依據(jù)各GPU處理單元的當(dāng)前處理能力在所有GPU處理單元的當(dāng)前處理能力的總和的權(quán)重i,向各GPU處理單元分配η個(gè)任務(wù)塊,其中n = i XM,所述任務(wù)調(diào)度模塊向各中央處理單元分配任務(wù)塊時(shí),所述中央處理單元建立有一任務(wù)隊(duì)列響應(yīng)程序,其中所述任務(wù)隊(duì)列響應(yīng)程序中包括有一任務(wù)隊(duì)列文件,且所述任務(wù)隊(duì)列文件中記錄有η個(gè)任務(wù)塊以及處理所述η個(gè)任務(wù)塊的GPU處理單元,當(dāng)所述GPU處理單元完成對(duì)一個(gè)任務(wù)塊的處理,所述GPU處理單元首先將處理完成的一個(gè)任務(wù)塊的任務(wù)數(shù)據(jù)發(fā)送到所述中央處理單元,并響應(yīng)所述任務(wù)隊(duì)列響應(yīng)程序,所述中央處理單元將已經(jīng)被響應(yīng)的任務(wù)塊從所述任務(wù)隊(duì)列文件中刪除,并且計(jì)算所述N個(gè)GPU處理單元中各GPU處理單元的利用率,向所述N個(gè)GPU處理單元中利用率低于30 %的GPU處理單元發(fā)出待機(jī)命令,則由所述任務(wù)調(diào)度模塊將其當(dāng)前處理的任務(wù)塊遷移至剩余GPU處理單元中利用率最低的GPU處理單元,所述中央處理單元修改所述任務(wù)隊(duì)列文件,當(dāng)位于所述任務(wù)隊(duì)列文件中的GPU處理單元的利用率均高于80%時(shí),所述中央處理單元向當(dāng)前處于待機(jī)狀態(tài)的GPU處理單元發(fā)出激活命令,由所述任務(wù)調(diào)度模塊將當(dāng)前利用率最高的GPU處理單元的當(dāng)前處理的任務(wù)塊遷移至被激活的GPU處理單元,所述中央處理單元修改所述任務(wù)隊(duì)列文件,直至所述任務(wù)隊(duì)列文件中的GPU處理單元的平均利用率達(dá)到70%。優(yōu)選的是,所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng)中,所述中央處理單元設(shè)置在一管理節(jié)點(diǎn)服務(wù)器內(nèi);所述N個(gè)GPU處理單元分別設(shè)置在N個(gè)GPU計(jì)算節(jié)點(diǎn)客戶端內(nèi);其中所述管理節(jié)點(diǎn)服務(wù)器與所述N個(gè)GPU計(jì)算節(jié)點(diǎn)客戶端通信連接。優(yōu)選的是,所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng)中,所述通信連接為通過(guò)網(wǎng)絡(luò)連接。優(yōu)選的是,所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng)中,所述中央處理單元還包括有GPU計(jì)算節(jié)點(diǎn)認(rèn)證模塊,所述GPU處理單元也包括有GPU計(jì)算節(jié)點(diǎn)登錄模塊,所述GPU計(jì)算節(jié)點(diǎn)登錄模塊向所述GPU計(jì)算節(jié)點(diǎn)認(rèn)證模塊提出登錄請(qǐng)求,以實(shí)現(xiàn)所述GPU處理單元與所述中央處理單元的通信。優(yōu)選的是,所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng)中,所述N個(gè)GPU處理單元中各GPU處理單元依據(jù)其被所述任務(wù)調(diào)度模塊所分配的任務(wù)塊建立本地任務(wù)隊(duì)列文件,并依據(jù)本地任務(wù)隊(duì)列文件順序處理任務(wù)塊。本發(fā)明所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),系統(tǒng)內(nèi)的GPU處理單元來(lái)自于網(wǎng)絡(luò),在與中央處理單元建立通信之前,可能正處于運(yùn)算狀態(tài),利用任務(wù)調(diào)度模塊根據(jù)計(jì)算機(jī)系統(tǒng)內(nèi)的各GPU處理單元的當(dāng)前處理能力對(duì)任務(wù)塊進(jìn)行分配,根據(jù)各GPU處理單元的性能分配工作,保證對(duì)資源的高效率利用;同時(shí),實(shí)時(shí)計(jì)算GPU處理單元的利用率,以便及時(shí)將系統(tǒng)內(nèi)多余的GPU處理單元轉(zhuǎn)入待機(jī)狀態(tài)或者在系統(tǒng)內(nèi)GPU處理單元處理能力不足時(shí),激活GPU處理單元以滿足系統(tǒng)需要,也可以保證充分利用GPU處理單元的資源。本發(fā)明所述的基于任務(wù)分解與調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),利用GPU的大規(guī)模并行計(jì)算能力,解決現(xiàn)有傳統(tǒng)的CPU計(jì)算存在的計(jì)算能力不足的問(wèn)題,大大提高計(jì)算能力。系統(tǒng)設(shè)計(jì)簡(jiǎn)單,具 有良好的擴(kuò)展性。
圖I為本發(fā)明所述的基于任務(wù)調(diào)度的分布式計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明所述的基于任務(wù)調(diào)度的分布式計(jì)算機(jī)系統(tǒng)的中央處理單元的結(jié)構(gòu)示意圖;圖3為本發(fā)明所述的基于任務(wù)調(diào)度的分布式計(jì)算機(jī)系統(tǒng)的GPU處理單元的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的詳細(xì)說(shuō)明,以令本領(lǐng)域技術(shù)人員參照說(shuō)明書(shū)文字能夠據(jù)以實(shí)施。如圖I所示,本發(fā)明提供一種基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),包括GPU處理單元,所述GPU處理單元用于處理任務(wù)塊;中央處理單元,所述GPU處理單元與所述中央處理單元通信,其包括任務(wù)分解模塊和任務(wù)調(diào)度模塊,所述中央處理單元監(jiān)測(cè)當(dāng)前與所述中央處理單元通信的GPU處理單元的個(gè)數(shù)N以及N個(gè)GPU處理單元中的各GPU處理單元的當(dāng)前處理能力Wi,并計(jì)算各GPU處理單元的當(dāng)前處理能力在N個(gè)GPU處理單元的當(dāng)前處理能力的總和的權(quán)重i,其中i = Wi/ Σ Wi,所述任務(wù)分解模塊將當(dāng)前任務(wù)均分為M個(gè)任務(wù)塊,所述任務(wù)調(diào)度模塊依據(jù)各GPU處理單元的當(dāng)前處理能力在所有GPU處理單元的當(dāng)前處理能力的總和的權(quán)重i,向各GPU處理單元分配η個(gè)任務(wù)塊,其中n = i ΧΜ,所述任務(wù)調(diào)度模塊向各中央處理單元分配任務(wù)塊時(shí),所述中央處理單元建立有一任務(wù)隊(duì)列響應(yīng)程序,其中所述任務(wù)隊(duì)列響應(yīng)程序中包括有一任務(wù)隊(duì)列文件,且所述任務(wù)隊(duì)列文件中記錄有η個(gè)任務(wù)塊以及處理所述η個(gè)任務(wù)塊的GPU處理單元,當(dāng)所述GPU處理單元完成對(duì)一個(gè)任務(wù)塊的處理,所述GPU處理單元首先將處理完成的一個(gè)任務(wù)塊的任務(wù)數(shù)據(jù)發(fā)送到所述中央處理單元,并響應(yīng)所述任務(wù)隊(duì)列響應(yīng)程序,所述中央處理單元將已經(jīng)被響應(yīng)的任務(wù)塊從所述任務(wù)隊(duì)列文件中刪除,并且計(jì)算所述N個(gè)GPU處理單元中各GPU處理單元的利用率,向所述N個(gè)GPU處理單元中利用率低于30%的GPU處理單元發(fā)出待機(jī)命令,則由所述任務(wù)調(diào)度模塊將其當(dāng)前處理的任務(wù)塊遷移至剩余GPU處理單元中利用率最低的GPU處理單元,所述中央處理單元修改所述任務(wù)隊(duì)列文件,當(dāng)位于所述任務(wù)隊(duì)列文件中的GPU處理單元的利用率均高于80%時(shí),所述中央處理單元向當(dāng)前處于待機(jī)狀態(tài)的GPU處理單元發(fā)出激活命令,由所述任務(wù)調(diào)度模塊將當(dāng)前利用率最高的GPU處理單元的當(dāng)前處理的任務(wù)塊遷移至被激活的GPU處理單元,所述中央處理單元修改所述任務(wù)隊(duì)列文件,直至所述任務(wù)隊(duì)列文件中的GPU處理單元的平均利用率達(dá)到70%。所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng)中,所述中央處理單元設(shè)置在一管理節(jié)點(diǎn)服務(wù)器內(nèi);所述N個(gè)GPU處理單元分別設(shè)置在N個(gè)GPU計(jì)算節(jié)點(diǎn)客戶端內(nèi);其中所述管理節(jié)點(diǎn)服務(wù)器與所述N個(gè)GPU計(jì)算節(jié)點(diǎn)客戶端通信連接。 所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng)中,所述通信連接為通過(guò)網(wǎng)絡(luò)連接。所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng)中,所述中央處理單元還包括有GPU計(jì)算節(jié)點(diǎn)認(rèn)證模塊,所述GPU處理單元也包括有GPU計(jì)算節(jié)點(diǎn)登錄模塊,所述GPU計(jì)算節(jié)點(diǎn)登錄模塊向所述GPU計(jì)算節(jié)點(diǎn)認(rèn)證模塊提出登錄請(qǐng)求,以實(shí)現(xiàn)所述GPU處理單元與所述中央處理單元的通信。所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng)中,所述N個(gè)GPU處理單元中各GPU處理單元依據(jù)其被所述任務(wù)調(diào)度模塊所分配的任務(wù)塊建立本地任務(wù)隊(duì)列文件,并依據(jù)本地任務(wù)隊(duì)列文件順序處理任務(wù)塊。本發(fā)明根據(jù)網(wǎng)絡(luò)上的GPU處理單元各自的處理能力來(lái)進(jìn)行任務(wù)的分配,這里的處理能力可能產(chǎn)生于GPU硬件或者軟件編程上的差異。為了保證充分利用GPU處理單元的資源,通過(guò)實(shí)時(shí)監(jiān)測(cè)利用率來(lái)進(jìn)行任務(wù)的動(dòng)態(tài)分配,這是因?yàn)?,?dāng)GPU處理單元的利用率比較低,也需要中央處理單元協(xié)調(diào)管理,這樣會(huì)造成運(yùn)算資源的浪費(fèi)。利用率是指對(duì)一個(gè)任務(wù)塊處理的時(shí)間/GPU最大運(yùn)算水平。本發(fā)明的基于任務(wù)調(diào)度的分布式GPU計(jì)算系統(tǒng),包括管理節(jié)點(diǎn)服務(wù)器(簡(jiǎn)稱管理節(jié)點(diǎn))、GPU計(jì)算節(jié)點(diǎn)客戶端(簡(jiǎn)稱計(jì)算節(jié)點(diǎn))、通信節(jié)點(diǎn)和通信鏈路,GPU計(jì)算節(jié)點(diǎn)通過(guò)通信節(jié)點(diǎn)和通信鏈路與管理節(jié)點(diǎn)通信。管理節(jié)點(diǎn)服務(wù)器內(nèi)部設(shè)置了中央處理單元,GPU計(jì)算節(jié)點(diǎn)客戶端內(nèi)部設(shè)置了 GPU處理單元。每一個(gè)GPU計(jì)算節(jié)點(diǎn)客戶端都對(duì)應(yīng)一臺(tái)分布于網(wǎng)絡(luò)上的計(jì)算機(jī),并通過(guò)網(wǎng)絡(luò)與管理節(jié)點(diǎn)服務(wù)器通信,從而形成了一個(gè)分布式的計(jì)算機(jī)系統(tǒng)。圖I為本發(fā)明所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算系統(tǒng)的框架結(jié)構(gòu)圖。從圖I中,我們可以看出分布式GPU計(jì)算系統(tǒng)由管理節(jié)點(diǎn)(服務(wù)器)和分布在網(wǎng)絡(luò)上的多個(gè)GPU計(jì)算節(jié)點(diǎn)(客戶端)組成。在管理節(jié)點(diǎn)上,首先將一項(xiàng)大型的計(jì)算任務(wù)分解為一組小型的工作單元,然后通過(guò)網(wǎng)絡(luò)將小工作單元分配給連接到該管理節(jié)點(diǎn)服務(wù)器上的多個(gè)GPU計(jì)算節(jié)點(diǎn)客戶端進(jìn)行處理。當(dāng)GPU計(jì)算節(jié)點(diǎn)客戶端完成小工作單元的處理之后,立即將得到的子結(jié)果通過(guò)網(wǎng)絡(luò)反饋給管理節(jié)點(diǎn)服務(wù)器。管理節(jié)點(diǎn)服務(wù)器收集到所有GPU計(jì)算節(jié)點(diǎn)客戶端反饋的小工作單元的處理結(jié)果后,再將所有的子結(jié)果綜合起來(lái)得到最終的結(jié)果。圖2中給出了中央處理單元的結(jié)構(gòu)圖(中央處理單元建立在管理節(jié)點(diǎn)服務(wù)器上,因此,也可看作是圖I中的管理節(jié)點(diǎn)的結(jié)構(gòu)圖)。中央處理單元包含有網(wǎng)絡(luò)接口單元、控制單元、任務(wù)管理單元、GPU計(jì)算節(jié)點(diǎn)管理單元、結(jié)果管理單元。其中,任務(wù)管理單元又包括任務(wù)分解模塊、任務(wù)調(diào)度模塊和數(shù)據(jù)中心模塊;GPU計(jì)算節(jié)點(diǎn)管理單元包括GPU計(jì)算節(jié)點(diǎn)認(rèn)證模塊和GPU計(jì)算節(jié)點(diǎn)管理模塊;結(jié)果管理單元包括結(jié)果處理模塊和結(jié)果顯示模塊。控制單元是中央處理單元的核心單元,它負(fù)責(zé)中央處理單元的其它單元的操作。中央處理單元的控制單元是系統(tǒng)任務(wù)調(diào)度和資源分配的核心模塊,它可以由支持X86架構(gòu)的Intel或AMD CPU等組件構(gòu)成,也可以有ARM架構(gòu)的嵌入式MCU等組件構(gòu)成,但不限于此??刂茊卧饕?fù)責(zé)控制客戶端的登錄認(rèn)證與管理、分析任務(wù)的生成和分割、任務(wù)塊的分發(fā)調(diào)度,以及分析結(jié)果的處理等。任務(wù)管理單元通過(guò)任務(wù)分解模塊將數(shù)據(jù)中心模塊的需要計(jì)算的任務(wù)數(shù)據(jù)根據(jù)GPU計(jì)算節(jié)點(diǎn)管理模塊中GPU計(jì)算節(jié)點(diǎn)的計(jì)算資源進(jìn)行任務(wù)分解,并由任務(wù)調(diào)度模塊通過(guò)控制單元和網(wǎng)絡(luò)接口單元將分解后的任務(wù)塊發(fā)送到各個(gè)GPU計(jì)算節(jié)點(diǎn)。網(wǎng)絡(luò)接口單元包括支持802. X系列的以太網(wǎng)接口,它負(fù)責(zé)向注冊(cè)的GPU計(jì)算節(jié)點(diǎn)發(fā)送中央處理單元的計(jì)算任務(wù),并接收來(lái)自GPU計(jì)算節(jié)點(diǎn)注冊(cè)請(qǐng)求信息及注冊(cè)GPU計(jì)算節(jié)點(diǎn)的計(jì)算結(jié)果信息。結(jié)果管理單元中的結(jié)果處理模塊根據(jù)GPU計(jì)算節(jié)點(diǎn)客戶端完成當(dāng)前任務(wù)塊后向其發(fā)送的通知消息,決定是否繼續(xù)工作,即向空閑GPU計(jì)算節(jié)點(diǎn)繼續(xù)分配計(jì)算任務(wù),或終止當(dāng)前正在工作的GPU計(jì)算節(jié)點(diǎn)的計(jì)算任務(wù),同時(shí)將處理結(jié)果輸出到數(shù)據(jù)中心模塊或結(jié)果顯示模塊中。結(jié)果顯示模塊的信息窗口中顯示計(jì)算任務(wù)的進(jìn)度和最終結(jié)果。GPU計(jì)算節(jié)點(diǎn)管 理單元中的GPU計(jì)算節(jié)點(diǎn)管理模塊主要負(fù)責(zé)保存GPU計(jì)算節(jié)點(diǎn)的通信IP地址信息、GPU計(jì)算資源信息(可用于評(píng)價(jià)各GPU處理單元的當(dāng)前處理能力)和維護(hù)GPU計(jì)算節(jié)點(diǎn)的任務(wù)隊(duì)列(這個(gè)任務(wù)隊(duì)列中包括任務(wù)隊(duì)列響應(yīng)程序和任務(wù)隊(duì)列文件)。GPU計(jì)算節(jié)點(diǎn)認(rèn)證模塊主要負(fù)責(zé)對(duì)GPU計(jì)算節(jié)點(diǎn)的合法身份的認(rèn)證,采用的認(rèn)證方法包括基于用戶名/ 口令的身份認(rèn)證、基于指紋的身份認(rèn)證等,但不限于此。圖3給出了 GPU處理單元的結(jié)構(gòu)圖。GPU處理單元包含了網(wǎng)絡(luò)接口單元、控制單元、計(jì)算單元和GPU計(jì)算節(jié)點(diǎn)登錄模塊。計(jì)算單元由GPU計(jì)算部件和存儲(chǔ)器部件構(gòu)成。GPU處理單元的控制單元和中央處理單元的控制單元類(lèi)似,負(fù)責(zé)管理節(jié)點(diǎn)其它單元的操作??刂茊卧饕?fù)責(zé)GPU處理單元的登錄、響應(yīng)中央處理單元的任務(wù)分配請(qǐng)求、調(diào)用計(jì)算單元對(duì)收到的任務(wù)塊進(jìn)行分析計(jì)算、向管理節(jié)點(diǎn)提交任務(wù)計(jì)算結(jié)果等。網(wǎng)絡(luò)接口單元代表GPU處理單元和中央處理單元進(jìn)行交互,負(fù)責(zé)向管理節(jié)點(diǎn)發(fā)送登錄請(qǐng)求,或接收合法管理節(jié)點(diǎn)的計(jì)算任務(wù)。計(jì)算單元是系統(tǒng)的核心單元,它對(duì)中央處理單元所分配的任務(wù)塊進(jìn)行任務(wù)計(jì)算,對(duì)任務(wù)的計(jì)算工作主要由該模塊來(lái)完成。其中GPU計(jì)算器進(jìn)行數(shù)據(jù)運(yùn)算操作,它可以采用支持統(tǒng)一設(shè)備架構(gòu)的NVIDIA或AMD的GPU芯片,軟件開(kāi)發(fā)平臺(tái)使用CUDA或OpenCL,但不限于此。存儲(chǔ)器用于數(shù)據(jù)的存儲(chǔ)和交互。計(jì)算單元在對(duì)任務(wù)塊的計(jì)算過(guò)程中,如果獲得計(jì)算結(jié)果,將及時(shí)向管理節(jié)點(diǎn)進(jìn)行匯報(bào)。如果在當(dāng)前任務(wù)塊都計(jì)算完成之后仍未有計(jì)算結(jié)果,GPU處理單元將向管理節(jié)點(diǎn)匯報(bào)當(dāng)前任務(wù)計(jì)算的進(jìn)度,然后從本地任務(wù)隊(duì)列中取出下一個(gè)子任務(wù)塊繼續(xù)進(jìn)行計(jì)算。通信節(jié)點(diǎn)可以是局域網(wǎng)的交換機(jī)部件組成,也可以是由城域網(wǎng)、互聯(lián)網(wǎng)的交換機(jī)、路由器等部件組成。本發(fā)明不但比傳統(tǒng)的CPU運(yùn)算系統(tǒng)相比具有更強(qiáng)的運(yùn)算能力,而且能充分利用互聯(lián)網(wǎng)上的GPU計(jì)算資源,大大提高系統(tǒng)的運(yùn)算能力,具有很高的性價(jià)比。盡管本發(fā)明的實(shí)施方案已公開(kāi)如上,但其并不僅僅限于說(shuō)明書(shū)和實(shí)施方式中所列運(yùn)用,它完全可以被適用于各種適合本發(fā)明的領(lǐng)域,對(duì)于熟悉本領(lǐng)域的人員而言,可容易地實(shí)現(xiàn)另外的修改,因此在不背離權(quán)利要求及等同范圍所限定的一般概念下,本發(fā)明并不限于特定的細(xì)節(jié)和這里示出與描述的圖 例。
權(quán)利要求
1.一種基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),其特征在于,包括 GPU處理單元,所述GPU處理單元用于處理任務(wù)塊; 中央處理單元,所述GPU處理單元與所述中央處理單元通信,其包括任務(wù)分解模塊和任務(wù)調(diào)度模塊,所述中央處理單元監(jiān)測(cè)當(dāng)前與所述中央處理單元通信的GPU處理單元的個(gè)數(shù)N以及N個(gè)GPU處理單元中的各GPU處理單元的當(dāng)前處理能力Wi,并計(jì)算各GPU處理單元的當(dāng)前處理能力在N個(gè)GPU處理單元的當(dāng)前處理能力的總和的權(quán)重i,其中i =Wi/ Σ Wi,所述任務(wù)分解模塊將當(dāng)前任務(wù)均分為M個(gè)任務(wù)塊,所述任務(wù)調(diào)度模塊依據(jù)各GPU處理單元的當(dāng)前處理能力在所有GPU處理單元的當(dāng)前處理能力的總和的權(quán)重i,向各GPU處理單元分配η個(gè)任務(wù)塊,其中n = i XM, 所述任務(wù)調(diào)度模塊向各中央處理單元分配任務(wù)塊時(shí),所述中央處理單元建立有一任務(wù)隊(duì)列響應(yīng)程序,其中所述任務(wù)隊(duì)列響應(yīng)程序中包括有一任務(wù)隊(duì)列文件,且所述任務(wù)隊(duì)列文件中記錄有η個(gè)任務(wù)塊以及處理所述η個(gè)任務(wù)塊的GPU處理單元,當(dāng)所述GPU處理單元完成對(duì)一個(gè)任務(wù)塊的處理,所述GPU處理單元首先將處理完成的一個(gè)任務(wù)塊的任務(wù)數(shù)據(jù)發(fā)送到所述中央處理單元,并響應(yīng)所述任務(wù)隊(duì)列響應(yīng)程序,所述中央處理單元將已經(jīng)被響應(yīng)的任務(wù)塊從所述任務(wù)隊(duì)列文件中刪除,并且計(jì)算所述N個(gè)GPU處理單元中各GPU處理單元的利用率,向所述N個(gè)GPU處理單元中利用率低于30 %的GPU處理單元發(fā)出待機(jī)命令,則由所述任務(wù)調(diào)度模塊將其當(dāng)前處理的任務(wù)塊遷移至剩余GPU處理單元中利用率最低的GPU處理單元,所述中央處理單元修改所述任務(wù)隊(duì)列文件,當(dāng)位于所述任務(wù)隊(duì)列文件中的GPU處理單元的利用率均高于80%時(shí),所述中央處理單元向當(dāng)前處于待機(jī)狀態(tài)的GPU處理單元發(fā)出激活命令,由所述任務(wù)調(diào)度模塊將當(dāng)前利用率最高的GPU處理單元的當(dāng)前處理的任務(wù)塊遷移至被激活的GPU處理單元,所述中央處理單元修改所述任務(wù)隊(duì)列文件,直至所述任務(wù)隊(duì)列文件中的GPU處理單元的平均利用率達(dá)到70%。
2.如權(quán)利要求I所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),其特征在于,所述中央處理單元設(shè)置在一管理節(jié)點(diǎn)服務(wù)器內(nèi);所述N個(gè)GPU處理單元分別設(shè)置在N個(gè)GPU計(jì)算節(jié)點(diǎn)客戶端內(nèi);其中所述管理節(jié)點(diǎn)服務(wù)器與所述N個(gè)GPU計(jì)算節(jié)點(diǎn)客戶端通信連接。
3.如權(quán)利要求2所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),其特征在于,所述通信連接為通過(guò)網(wǎng)絡(luò)連接。
4.如權(quán)利要求2所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),其特征在于,所述中央處理單元還包括有GPU計(jì)算節(jié)點(diǎn)認(rèn)證模塊,所述GPU處理單元也包括有GPU計(jì)算節(jié)點(diǎn)登錄模塊,所述GPU計(jì)算節(jié)點(diǎn)登錄模塊向所述GPU計(jì)算節(jié)點(diǎn)認(rèn)證模塊提出登錄請(qǐng)求,以實(shí)現(xiàn)所述GPU處理單元與所述中央處理單元的通信。
5.如權(quán)利要求I所述的基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),其特征在于,所述N個(gè)GPU處理單元中各GPU處理單元依據(jù)其被所述任務(wù)調(diào)度模塊所分配的任務(wù)塊建立本地任務(wù)隊(duì)列文件,并依據(jù)本地任務(wù)隊(duì)列文件順序處理任務(wù)塊。
全文摘要
本發(fā)明公開(kāi)了一種基于任務(wù)調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),系統(tǒng)內(nèi)的GPU處理單元來(lái)自于網(wǎng)絡(luò),在與中央處理單元建立通信之前,可能正處于運(yùn)算狀態(tài),利用任務(wù)調(diào)度模塊根據(jù)計(jì)算機(jī)系統(tǒng)內(nèi)的各GPU處理單元的當(dāng)前處理能力對(duì)任務(wù)塊進(jìn)行分配,根據(jù)各GPU處理單元的性能分配工作,保證對(duì)資源的高效率利用;同時(shí),實(shí)時(shí)計(jì)算GPU處理單元的利用率,以便及時(shí)將系統(tǒng)內(nèi)多余的GPU處理單元轉(zhuǎn)入待機(jī)狀態(tài)或者在系統(tǒng)內(nèi)GPU處理單元處理能力不足時(shí),激活GPU處理單元以滿足系統(tǒng)需要,也可以保證充分利用GPU處理單元的資源。本發(fā)明所述的基于任務(wù)分解與調(diào)度的分布式GPU計(jì)算機(jī)系統(tǒng),解決現(xiàn)有傳統(tǒng)的CPU計(jì)算存在的計(jì)算能力不足的問(wèn)題,大大提高計(jì)算能力。系統(tǒng)設(shè)計(jì)簡(jiǎn)單,具有良好的擴(kuò)展性。
文檔編號(hào)G06F9/50GK102929718SQ20121034432
公開(kāi)日2013年2月13日 申請(qǐng)日期2012年9月17日 優(yōu)先權(quán)日2012年9月17日
發(fā)明者謝小軒, 樂(lè)德廣, 胡永祿 申請(qǐng)人:江蘇九章計(jì)算機(jī)科技有限公司