一種面向異構(gòu)計(jì)算的分布式大數(shù)據(jù)系統(tǒng)的硬件架構(gòu)的制作方法
【專利摘要】本發(fā)明涉及一種面向異構(gòu)計(jì)算的分布式大數(shù)據(jù)系統(tǒng)的集群硬件架構(gòu)。本發(fā)明主要包括:通過存儲(chǔ)節(jié)點(diǎn)構(gòu)建分布式文件系統(tǒng)對(duì)數(shù)據(jù)I/O操作進(jìn)行專門處理,提供高達(dá)18TB的磁盤陣列進(jìn)行冗余數(shù)據(jù)存儲(chǔ),提高數(shù)據(jù)安全和系統(tǒng)穩(wěn)定性;通過管理節(jié)點(diǎn)處理用戶提交的數(shù)據(jù)和計(jì)算任務(wù),并均衡分配給計(jì)算節(jié)點(diǎn)上的各計(jì)算設(shè)備進(jìn)行處理,通過CUDA或OpenGL異構(gòu)編程模型充分利用GPU的高浮點(diǎn)運(yùn)算能力;采用專用高速網(wǎng)絡(luò)InfiniBand連接各節(jié)點(diǎn),并通過CUDA-awareMPI和GPUDirect技術(shù)根據(jù)網(wǎng)絡(luò)通信條件,智能化地利用優(yōu)化的數(shù)據(jù)通信路徑進(jìn)行消息的發(fā)送和接收;通過集群渲染節(jié)點(diǎn)規(guī)約各節(jié)點(diǎn)的結(jié)果,并形成最終的結(jié)果通過OpenGL進(jìn)行繪制形成可視化輸出。通過將異構(gòu)計(jì)算、分布式計(jì)算以及數(shù)據(jù)可視化結(jié)合在一起,充分利用GPU的計(jì)算能力和圖形處理能力,構(gòu)建了一種面向異構(gòu)計(jì)算的分布式大數(shù)據(jù)系統(tǒng)的集群硬件架構(gòu)。
【專利說明】一種面向異構(gòu)計(jì)算的分布式大數(shù)據(jù)系統(tǒng)的硬件架構(gòu)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式計(jì)算領(lǐng)域,更確切地說,涉及使用分布式異構(gòu)計(jì)算對(duì)大數(shù)據(jù)進(jìn)行處理和進(jìn)行可視化的系統(tǒng)平臺(tái)。
【背景技術(shù)】
[0002]分布式異構(gòu)計(jì)算模式推動(dòng)了頂級(jí)的超級(jí)計(jì)算機(jī)的發(fā)展,使用MPI (事實(shí)上的分布式計(jì)算標(biāo)準(zhǔn))使CUDA異構(gòu)計(jì)算擴(kuò)展至使用上千個(gè)節(jié)點(diǎn)。分布式異構(gòu)計(jì)算所帶來的性能優(yōu)勢(shì)非常明顯,但也依賴于分布式通信設(shè)備的帶寬和延遲特性。為了使CPU和GPU在分布式環(huán)境中被高效利用,開發(fā)人員必須使開發(fā)的程序和使用的算法能夠擴(kuò)展移植到相應(yīng)的計(jì)算設(shè)備和通信網(wǎng)絡(luò)限制條件下。
[0003]隨著大數(shù)據(jù)技術(shù)的成熟,伴隨著數(shù)據(jù)量的增加,對(duì)數(shù)據(jù)挖掘和可視化的要求變得越來越高。當(dāng)前具備CUDA異構(gòu)計(jì)算能力的GPU可以以每秒數(shù)百幀的速度完成復(fù)雜數(shù)據(jù)計(jì)算和渲染等任務(wù),混合使用CUDA和可視化支持庫(如OpenGL)為可視化軟件以及科學(xué)計(jì)算應(yīng)用帶來了極大的機(jī)遇。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是為了克服現(xiàn)有技術(shù)中分布式節(jié)點(diǎn)間通信代價(jià)過高、可擴(kuò)展性差的缺點(diǎn),而提供一種低廉、可擴(kuò)展性強(qiáng)的分布式異構(gòu)計(jì)算和可視化系統(tǒng)架構(gòu)。該系統(tǒng)架構(gòu)的分布式文件系統(tǒng)能滿足海量數(shù)據(jù)存儲(chǔ)和處理的要求,并通過專用高速網(wǎng)絡(luò)(InfiniBand)連接到渲染節(jié)點(diǎn)進(jìn)行可視化操作。
[0005]為了達(dá)到上述所說的目的,本發(fā)明所述的分布式異構(gòu)系統(tǒng)架構(gòu)由多個(gè)分布節(jié)點(diǎn)和消息交換機(jī)組成。各分布節(jié)點(diǎn)包括管理節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)、大數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)以及渲染節(jié)點(diǎn),各節(jié)點(diǎn)各司其職,協(xié)同工作。消息交換機(jī)包括以太網(wǎng)交換機(jī)和InfiniBand交換機(jī),并有多協(xié)議通訊單元、消息交換協(xié)議單元和消息交換單元組成,支持GPUDirect和RDMA。
[0006]分布節(jié)點(diǎn)啟動(dòng)時(shí),該分布節(jié)點(diǎn)的消息交換協(xié)議單元向消息交換機(jī)注冊(cè),節(jié)點(diǎn)通過MPI利用優(yōu)化的數(shù)據(jù)通信路徑進(jìn)行消息的發(fā)送和接收,最小化數(shù)據(jù)移動(dòng)量。
[0007]為了達(dá)到所述發(fā)明目的,本發(fā)明提出一種面向異構(gòu)計(jì)算的分布式大數(shù)據(jù)系統(tǒng)的硬件架構(gòu),參加圖1示意圖,該架構(gòu)包括以下部分:
(1)海量數(shù)據(jù)存儲(chǔ)。通過存儲(chǔ)節(jié)點(diǎn)構(gòu)建分布式文件系統(tǒng)對(duì)數(shù)據(jù)I/o操作進(jìn)行專門處理,提供高達(dá)18TB的磁盤陣列進(jìn)行冗余數(shù)據(jù)存儲(chǔ),提高數(shù)據(jù)安全和系統(tǒng)穩(wěn)定性;
(2)異構(gòu)協(xié)同計(jì)算。通過管理節(jié)點(diǎn)處理用戶提交的數(shù)據(jù)和計(jì)算任務(wù),并均衡分配給計(jì)算節(jié)點(diǎn)上的各計(jì)算設(shè)備進(jìn)行處理,通過CUDA或OpenGL異構(gòu)編程模型充分利用GPU的高浮點(diǎn)運(yùn)算能力;
(3)高速網(wǎng)絡(luò)互連。采用專用高速網(wǎng)絡(luò)InfiniBand連接各節(jié)點(diǎn),并通過CUDA-awareMPI和GPUDirect技術(shù)根據(jù)網(wǎng)絡(luò)通信條件,智能化地利用優(yōu)化的數(shù)據(jù)通信路徑進(jìn)行消息的發(fā)送和接收; (4)可視化渲染與顯示。通過集群渲染節(jié)點(diǎn)規(guī)約各節(jié)點(diǎn)的結(jié)果,并形成最終的結(jié)果通過OpenGL進(jìn)行繪制形成可視化輸出。
[0008]為了達(dá)到所述發(fā)明目的,本發(fā)明還提出了一種可擴(kuò)展的MPI大規(guī)模數(shù)據(jù)級(jí)加載方法,包括以下步驟:
(1)通過數(shù)據(jù)采集層將用戶上載的待處理的輸入數(shù)據(jù)以數(shù)據(jù)塊的形式存儲(chǔ)在大數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上,分布式文件系統(tǒng)接收用戶提交的并行計(jì)算任務(wù);
(2)令各計(jì)算任務(wù)從分布式文件系統(tǒng)的文件中讀取各自的數(shù)據(jù),為每個(gè)任務(wù)提供包含數(shù)據(jù)的數(shù)據(jù)文件名;
(3)各計(jì)算任務(wù)打開文件后,可根據(jù)需要進(jìn)行數(shù)據(jù)查找和其他I/O操作以訪問并加載數(shù)據(jù)。
[0009]本發(fā)明還提供一種分布式異構(gòu)計(jì)算數(shù)據(jù)操作的方法,包括以下步驟:
(1)采用輸入和輸出同時(shí)劃分的方式進(jìn)行數(shù)據(jù)劃分,并使用最優(yōu)選擇數(shù)據(jù)塊分批劃分的方法來進(jìn)行優(yōu)化;
(2)考慮該架構(gòu)的通信帶寬以及CPU和GPU的計(jì)算能力(通過Linpack測(cè)試來獲得),將數(shù)據(jù)按比例劃分為不同大小的數(shù)據(jù)塊,并分批交給計(jì)算設(shè)備執(zhí)行,以滿足所有的計(jì)算任務(wù)負(fù)載均衡;
(3)通過異步拷貝,重疊通信與計(jì)算的時(shí)間,提高該集群整體效率;
(4)所有的計(jì)算設(shè)備內(nèi)的線程進(jìn)行并行計(jì)算后,每個(gè)設(shè)備都有一份局部的計(jì)算結(jié)果,所有設(shè)備都計(jì)算完畢之后,利用MPI對(duì)所有設(shè)備的計(jì)算結(jié)果進(jìn)行規(guī)約,規(guī)約最后的結(jié)果即是最終的結(jié)果。
[0010]本發(fā)明的有益效果在于:通過將異構(gòu)計(jì)算、分布式計(jì)算以及數(shù)據(jù)可視化結(jié)合在一起,充分利用GPU的計(jì)算能力和圖形處理能力,構(gòu)建了一種面向異構(gòu)計(jì)算的分布式大數(shù)據(jù)系統(tǒng)架構(gòu)。架構(gòu)設(shè)計(jì)合理,具有廣泛的應(yīng)用性。
【專利附圖】
【附圖說明】
[0011]圖1,本發(fā)明一種面向異構(gòu)計(jì)算的分布式大數(shù)據(jù)系統(tǒng)硬件架構(gòu)示意圖;
圖2,本發(fā)明可擴(kuò)展的MPI大規(guī)模數(shù)據(jù)集加載流程示意圖。
【具體實(shí)施方式】
[0012]下面結(jié)合附圖及具體實(shí)例對(duì)本發(fā)明做進(jìn)一步的描述。
[0013]本發(fā)明提供一種可擴(kuò)展的MPI大規(guī)模數(shù)據(jù)級(jí)加載方法,參加圖2示意圖,采用該I/O模型,依賴現(xiàn)代分布式文件系統(tǒng)的多線程并發(fā)訪問時(shí)高帶寬性能,可提供數(shù)百GB的存儲(chǔ)帶寬。
[0014]本發(fā)明提供一種高效能分布式異構(gòu)計(jì)算系統(tǒng),通用實(shí)施步驟如下:
(I)程序的O號(hào)進(jìn)程被默認(rèn)為傳統(tǒng)的主從模式中的主進(jìn)程,主進(jìn)程具有如下任務(wù):
a)主進(jìn)程進(jìn)行初始化MPI環(huán)境以及進(jìn)行數(shù)據(jù)加載;
b)主進(jìn)程運(yùn)行優(yōu)化處理并指揮從進(jìn)程,將任務(wù)量劃分成η個(gè)可并行化的部分;為了更好地利用有效資源,主進(jìn)程和從進(jìn)程都進(jìn)行目標(biāo)函數(shù)的計(jì)算;
c)在目標(biāo)函數(shù)的每次計(jì)算中,主進(jìn)程使用MPI_Bcast()向所有從進(jìn)程廣播參數(shù); d)每個(gè)進(jìn)程(包括主進(jìn)程和從進(jìn)程)計(jì)算目標(biāo)函數(shù)的部分結(jié)果,這一過程不需要任何進(jìn)程間的通信;
e)所有進(jìn)程完成目標(biāo)函數(shù)中各自的局部計(jì)算后,主進(jìn)程調(diào)用MPI_RedUCe()取回所有部分結(jié)果的總和,對(duì)數(shù)據(jù)進(jìn)行規(guī)約,該操作被高度優(yōu)化,具有良好的擴(kuò)展復(fù)雜度;
(2)從進(jìn)程在主進(jìn)程開始工作的同時(shí)需要完成如下工作:
a)從進(jìn)程進(jìn)行初始化數(shù)據(jù)加載;
b)從進(jìn)程從主進(jìn)程讀取運(yùn)行參數(shù),計(jì)算目標(biāo)函數(shù)的部分結(jié)果,在收到請(qǐng)求時(shí),向主進(jìn)程發(fā)送計(jì)算出的部分結(jié)果;從進(jìn)程保持上述操作的循環(huán)直到主進(jìn)程通知其推出程序。
[0015]依照上述實(shí)施步驟獲得最終的計(jì)算結(jié)果后,集群渲染結(jié)果對(duì)各節(jié)點(diǎn)的局部計(jì)算結(jié)果進(jìn)行規(guī)約,規(guī)約后根據(jù)可視化的要求進(jìn)行繪制,為提高繪制效率,具體實(shí)施步驟如下:
(1)使用OpenGL在高端圖形卡上創(chuàng)建緩沖區(qū)對(duì)象;
(2)通過CUDAKernel將該緩沖區(qū)對(duì)象映射入CUDA內(nèi)存空間,以實(shí)現(xiàn)CUDA和OpenGL的互操作;
(3)為利用基元重啟提升系統(tǒng)的圖形處理性能,在使用OpenGL進(jìn)行繪制過程中,首先設(shè)置TAG值作為基元重啟的標(biāo)記,之后通知OpenGL狀態(tài)機(jī)使用基元重啟開始執(zhí)行,然后繪制圖元進(jìn)行可視化輸出。
[0016]實(shí)驗(yàn)結(jié)果
本異構(gòu)集群已進(jìn)行Linpack測(cè)試。通過將HPL(High Performance Linpack)測(cè)試工程移植到CPU/GPU異構(gòu)集群上,充分利用GPU的高浮點(diǎn)運(yùn)算能力,取得了 1.5Tflops的雙精度浮點(diǎn)運(yùn)算性能,效率值高達(dá)60%,超過天河一號(hào)50%的效率值。本架構(gòu)還應(yīng)用到分布式粒子系統(tǒng)上,通過將粒子系統(tǒng)數(shù)值模擬算法高效的擴(kuò)展到分布式集群上,得到了近似線性的可擴(kuò)展性。
【權(quán)利要求】
1.一種面向異構(gòu)計(jì)算的分布式大數(shù)據(jù)系統(tǒng)的硬件架構(gòu),其特征在于: 該硬件架構(gòu)包括5臺(tái)服務(wù)器、磁盤陣列存儲(chǔ)器、千兆以太網(wǎng)交換機(jī)以及InfiniBand網(wǎng)絡(luò)交換機(jī),如圖1所示;其中服務(wù)器I作為該架構(gòu)的管理節(jié)點(diǎn),服務(wù)器2和服務(wù)器3為兩臺(tái)高性能計(jì)算節(jié)點(diǎn),服務(wù)器4為集群渲染節(jié)點(diǎn),服務(wù)器5作為該架構(gòu)的存儲(chǔ)節(jié)點(diǎn);消息交換協(xié)議單元包括以太網(wǎng)交換機(jī)和InfiniBand交換機(jī),并有多協(xié)議通訊單元、消息交換協(xié)議單元和消息交換單元組成,支持GPUDirect和RDMA ; 每個(gè)分布節(jié)點(diǎn)啟動(dòng)時(shí),該分布節(jié)點(diǎn)的消息交換協(xié)議單元向消息交換機(jī)注冊(cè),節(jié)點(diǎn)通過MPI利用優(yōu)化的數(shù)據(jù)通信路徑進(jìn)行消息的發(fā)送和接收,最小化數(shù)據(jù)移動(dòng)量。
2.根據(jù)權(quán)利要求1所述的集群架構(gòu),其特征在于:管理節(jié)點(diǎn)將用戶上載的待處理輸入數(shù)據(jù)以數(shù)據(jù)塊的形式冗余地存儲(chǔ)在異構(gòu)集群的大數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上,分布式文件系統(tǒng)接收用戶提交的并行計(jì)算任務(wù);令各計(jì)算進(jìn)程從分布式文件系統(tǒng)的文件中讀取各自的數(shù)據(jù),為每個(gè)進(jìn)程提供包含數(shù)據(jù)的數(shù)據(jù)文件名;各進(jìn)程打開文件后,可根據(jù)需要進(jìn)行數(shù)據(jù)查找和其他I/O操作以訪問并加載數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的集群架構(gòu),其特征在于:異構(gòu)環(huán)境中的負(fù)載均衡策略是,根據(jù)各計(jì)算設(shè)備在集群LINPACK測(cè)試所顯現(xiàn)的實(shí)際浮點(diǎn)運(yùn)算性能,在任務(wù)平衡分配時(shí),均衡的分配計(jì)算任務(wù)給各個(gè)計(jì)算節(jié)點(diǎn),提高該集群架構(gòu)平衡率。
4.根據(jù)權(quán)利要求1所述的集群架構(gòu),其特征在于:各計(jì)算節(jié)點(diǎn)使用CPU+GPU的異構(gòu)架構(gòu),支持CUDA異構(gòu)計(jì)算,接收用戶提交的并行計(jì)算任務(wù)后,充分利用GPU的高浮點(diǎn)運(yùn)算能力,加速計(jì)算過程;根據(jù)權(quán)利要求1所述的集群架構(gòu),其特征在于:不同的數(shù)據(jù)塊作為不同的計(jì)算任務(wù)運(yùn)行,數(shù)據(jù)塊冗余地存儲(chǔ)在異構(gòu)集群的大數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)上;各節(jié)點(diǎn)上各CPU/GPU計(jì)算設(shè)備之間的數(shù)據(jù)傳輸使用CUDA-aware MPI和GPUDirect技術(shù)根據(jù)網(wǎng)絡(luò)通信硬件,利用優(yōu)化的數(shù)據(jù)通信路徑進(jìn)行消息的發(fā)送和接收,最小化數(shù)據(jù)移動(dòng)量,提高分布式程序的性能。
5.根據(jù)權(quán)利要求1所述的集群架構(gòu),其特征在于:通過緩存共享的方式在CUDA和OpenGL間共享數(shù)據(jù),并使用基元重啟以減少PCI總線上的數(shù)據(jù)傳輸,使在圖像需要非規(guī)則網(wǎng)格的情況下也能高效完成圖形渲染。
【文檔編號(hào)】H04L29/08GK104023062SQ201410255149
【公開日】2014年9月3日 申請(qǐng)日期:2014年6月10日 優(yōu)先權(quán)日:2014年6月10日
【發(fā)明者】王旭智, 余小清, 李翔飛, 萬旺根, 諸亮飛 申請(qǐng)人:上海大學(xué)