《基于GPU集群的格子Boltzmann流體模擬并行計(jì)算的設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《基于GPU集群的格子Boltzmann流體模擬并行計(jì)算的設(shè)計(jì)與實(shí)現(xiàn)(26頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,作 者:,俸 毅 蘇智彬 徐楊,指導(dǎo)老師:,覃章榮,廣西師范大學(xué) 計(jì)算機(jī)科學(xué)與信息工程學(xué)院,基于GPU集群的格子Boltzmann流體模擬,并行算法的設(shè)計(jì)與實(shí)現(xiàn),目錄,作品簡(jiǎn)介,設(shè),設(shè)計(jì)方案,實(shí)驗(yàn)分析,創(chuàng)新特色,1,2,3,4,一 作品簡(jiǎn)介,2.但是目前在基于LBM流體模擬中,使用GPU集群并行計(jì)算方面的研究,很少,。單個(gè)計(jì)算機(jī)由于硬件資源的限制,不能用于大規(guī)模流場(chǎng)的計(jì)算。集群并行計(jì)算成為實(shí)現(xiàn)低成本,高性能計(jì)算的
2、重要途徑之一,1.基于,LBM,(Lattice,Boltzmann,Method),的現(xiàn)代計(jì)算流體力學(xué)在航空、氣象、化工等領(lǐng)域獲得了廣泛的應(yīng)用。目前利用,CUDA,技術(shù)在單,GPU,上進(jìn)行,LBM,加速計(jì)算的研究也,越來(lái)越多,通過(guò)對(duì)單機(jī),CPU,、多機(jī),CPU,、多機(jī),GPU,三種方案的計(jì)算結(jié)果和效率對(duì)比分析,驗(yàn)證其可行性及加速性能。為在普通計(jì)算機(jī)群上進(jìn)行大規(guī)模復(fù)雜計(jì)算,提供一種,低成本、高性能,的解決方案,本項(xiàng)目,使用MPI+CUDA技術(shù),在由,多GPU,組成的集群上,進(jìn)行LBM,流體模擬,并行計(jì)算,,,并以方腔,流為,算例,驗(yàn)證,在多,GPU,集群上進(jìn)行,LBM并行計(jì)算的可行性和加速性能
3、,一 項(xiàng)目簡(jiǎn)介,項(xiàng)目背景,項(xiàng)目目標(biāo),二 特色創(chuàng)新,格子玻爾,茲曼方法,使用配置有支持,CUDA,技術(shù),的,GPU,顯卡的普通計(jì)算機(jī)組成,集群,,并在集群上使用,MPI+CUDA,技術(shù)實(shí)現(xiàn)了基于,LBM,流體模擬的并行計(jì)算,實(shí)驗(yàn)驗(yàn)證了其可行性和加速性能,我們最高獲得,72.32,倍的加速比。該方案解決了目前基于單,GPU,計(jì)算機(jī)由于硬件資源限制而無(wú)法處理大規(guī)模計(jì)算流場(chǎng)的問(wèn)題,同時(shí)獲得非??捎^(guān)的加速性能。為在普通計(jì)算機(jī)群上進(jìn)行大規(guī)模復(fù)雜科學(xué)計(jì)算,提供一種,低成本、高性能,的解決方案。,三 設(shè)計(jì)方案,實(shí)現(xiàn)流程,(1),1,設(shè)計(jì)一個(gè)正確的,單CPU,程序,。用于實(shí)現(xiàn)單機(jī)計(jì),算方腔流算例,實(shí)現(xiàn)流,程如右
4、圖所示。,2,在,單CPU程序的基礎(chǔ)上,通過(guò)使用MPI技術(shù),擴(kuò)展到CPU集群上,實(shí)現(xiàn)基于,MPI,的多CPU程序,。,實(shí)現(xiàn)流程如右圖所示。,三 設(shè)計(jì)方案,實(shí)現(xiàn)流程,(2),3,在實(shí)現(xiàn)基于,MPI,的多,CPU程序的基礎(chǔ)上,通過(guò)使用,CUDA,技術(shù),擴(kuò)展到,G,PU集群上,實(shí)現(xiàn),MPI+GPU,集群程序,。,實(shí)現(xiàn)流程如右圖所示。,三 設(shè)計(jì)方案,實(shí)現(xiàn)流程,(3),三 設(shè)計(jì)方案,關(guān)鍵技術(shù),(1),集群中多機(jī)通信方案,交換機(jī),網(wǎng)卡,CPU,GPU,計(jì)算機(jī),1,網(wǎng)卡,CPU,GPU,計(jì)算機(jī),2,網(wǎng)卡,CPU,GPU,計(jì)算機(jī),3,網(wǎng)卡,CPU,GPU,計(jì)算機(jī),4,實(shí)驗(yàn)方案的集群構(gòu)成示例如下所示,集群中各計(jì)
5、算機(jī)之間的數(shù)據(jù)通信,我們采用目前流行的,MPI,(,Message Passing Interface,,消息傳遞接口)來(lái)實(shí)現(xiàn)。,三 設(shè)計(jì)方案,關(guān)鍵技術(shù),(2),計(jì)算流場(chǎng)網(wǎng)格子區(qū)塊劃分方案,對(duì)于,LBM,來(lái)說(shuō),計(jì)算流場(chǎng)網(wǎng)格子區(qū)塊的劃分通常包括縱向劃分、橫向劃分、棋盤(pán)劃分,3,種方案。棋盤(pán)劃分方案會(huì)造成邊界格點(diǎn)數(shù)據(jù)交換時(shí)通信量增多,增大了程序開(kāi)發(fā)難度,降低了計(jì)算效率。橫向和縱向劃分時(shí)邊界格點(diǎn)交換數(shù)據(jù)時(shí)通信量均較少,而縱向劃分比較符合常人的習(xí)慣,因此,我們選擇,縱向劃分方案,。,(,b,)橫向劃分,(,c,)棋盤(pán)劃分,(,a,)縱向劃分,三 設(shè)計(jì)方案,關(guān)鍵技術(shù),(3),集群中各子計(jì)算區(qū)塊邊界格點(diǎn)數(shù)
6、據(jù)交換方案,當(dāng)計(jì)算流場(chǎng)網(wǎng)格劃分為多個(gè)子區(qū)塊并分配到集群的各計(jì)算機(jī)中,在格點(diǎn)粒子分布函數(shù)流動(dòng)時(shí),各子區(qū)塊邊界格點(diǎn)的數(shù)據(jù)要交換到鄰居計(jì)算機(jī)的子區(qū)塊的邊界中。為了能夠計(jì)算方便,在每個(gè)子區(qū)塊兩側(cè)邊界處,各增加一層虛邊界,用來(lái)存放從從其他計(jì)算機(jī)遷移過(guò)來(lái)的數(shù)據(jù),這樣可以使得在每個(gè)計(jì)算機(jī)內(nèi)都可以完成子區(qū)塊數(shù)據(jù)的碰撞和流動(dòng),過(guò)程如下圖所示(圖中每個(gè)子區(qū)塊的藍(lán)色為實(shí)際邊界,白色為增加的虛邊界)。,三 設(shè)計(jì)方案,關(guān)鍵技術(shù),(4),基于CUDA的并行數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)方案,根據(jù),CUDA,的要求,為了高效地訪(fǎng)問(wèn),GPU,全局內(nèi)存,必須把要訪(fǎng)問(wèn)數(shù)據(jù)存儲(chǔ)在同一連續(xù)地址內(nèi),實(shí)現(xiàn)合并訪(fǎng)問(wèn)。我們的方案是在,GPU,的全局內(nèi)存中
7、創(chuàng)建一個(gè)一維數(shù)組用來(lái)存放全部,D2Q9,模型格子,9,個(gè)方向的粒子分布函數(shù)值,先順序存放所有格點(diǎn)的,0,方向的粒子分布函數(shù),f0,,接著是,1,方向的,f1,依次類(lèi)推一直到,f8(,如下圖所示,),,這樣可以實(shí)現(xiàn)合并訪(fǎng)問(wèn),提高效率,。,.,f0,f1,f8,所有格點(diǎn),f0,所有格點(diǎn),f1,f2f7,所有格點(diǎn),f8,D2Q9,模型,三 設(shè)計(jì)方案,關(guān)鍵技術(shù),(5),基于CUDA內(nèi)核函數(shù)的設(shè)計(jì)與實(shí)現(xiàn),CUDA,程序中在,GPU,上并行執(zhí)行的代碼,被組織成內(nèi)核(,Kernel,),內(nèi)核就是在,GPU,中被線(xiàn)程并行地執(zhí)行的函數(shù)。我們把程序中并行部分設(shè)計(jì)成,2,個(gè)內(nèi)核函數(shù):,碰撞內(nèi)核函數(shù)和流動(dòng)內(nèi)核函數(shù),,
8、將計(jì)算流場(chǎng)中每個(gè)格點(diǎn)映射到一個(gè),GPU,線(xiàn)程上,每個(gè)線(xiàn)程按照,LBM,中的碰撞和流動(dòng)公式同時(shí)并行地進(jìn)行演化計(jì)算。,實(shí)驗(yàn)環(huán)境介紹,實(shí)驗(yàn)環(huán)境,CPU,:,Intel Core i5-,2400,2.80GHz 4,核,GPU,:,NVIDIA GeForce GT 4,2,0,顯卡,顯存容量,1024MB,,,顯存頻率,800MHz,,流處理單元,48,個(gè),操作系統(tǒng),:,Windows,X,P,軟件平臺(tái),:,Visual Studio 2008,,,MPICH2,為了驗(yàn)證本程序的,可行性,與,計(jì)算性能,,選擇,二維頂蓋驅(qū)動(dòng)方腔,流,為實(shí)驗(yàn)算例,四 實(shí)驗(yàn)分析,4臺(tái)MPI+GPU集群程序運(yùn)行截圖,程序
9、開(kāi)始運(yùn)行截圖,程序結(jié)束運(yùn)行截圖,使用單,CPU,程序模擬,的頂蓋驅(qū)動(dòng)方腔流示意圖,4,臺(tái)集群,使用,MPI,程序模擬,的頂蓋驅(qū)動(dòng)方腔流示意圖,4臺(tái)集群,使用,MPI+,GPU,程序模擬,的頂蓋驅(qū)動(dòng)方腔流示意圖,四 實(shí)驗(yàn)分析,如圖4臺(tái)集群的三種方案計(jì)算,結(jié)果相,吻合,。同樣,2臺(tái)集群、,8臺(tái)集群的實(shí)驗(yàn)結(jié)果,亦相吻合,流場(chǎng)大小,256X256,運(yùn)行,10000,步時(shí)三種,方案結(jié)果對(duì)比,四 實(shí)驗(yàn)分析,使用,2臺(tái),計(jì)算機(jī)組成的集群運(yùn)行,10000,步的時(shí)間和加速比對(duì)比情況,流場(chǎng)大小,單CPU程序,MPI集群用,加速比,MPI+GPU集,加速比,64*64,19.219,14.61,1.31,18.47
10、8,1.04,128*128,78.062,52.390,1.49,56.160,1.39,256*256,131.235,85.774,1.53,60.058,2.19,512*512,532.750,245.51,2.17,100.708,5.29,640*640,850.5310,338.418,2.51,111.765,7.61,1152*1152,2763.790,576.99,4.79,205.639,13.44,1792*1792,6675.951,1306.49,5.11,379.747,17.58,四 實(shí)驗(yàn)分析,使用,2,臺(tái),計(jì)算機(jī)組成的集群運(yùn)行,10000,步的加速比折線(xiàn)圖
11、,四 實(shí)驗(yàn)分析,使用,4臺(tái),計(jì)算機(jī)組成的集群運(yùn)行,10000,步的時(shí)間和加速比對(duì)比情況,流場(chǎng)大小,單,CPU,程序,MPI,集群用,加速比,MPI+GPU,加速比,64*64,19.219,11.439,1.68,15.499,1.24,128*128,78.062,40.87,1.91,36.307,2.15,256*256,131.235,58.587,2.24,50.282,2.61,512*512,532.750,191.637,2.78,93.79,5.68,640*640,850.5310,224.414,3.79,106.936,7.95,1152*1152,2763.790,3
12、77.566,7.32,165.60,16.96,1792*1792,6675.951,507.600,13.152,285.541,23.38,四 實(shí)驗(yàn)分析,使用,4臺(tái),計(jì)算機(jī)組成的集群運(yùn)行,10000,步的加速比折線(xiàn)圖,四 實(shí)驗(yàn)分析,使用,8臺(tái),計(jì)算機(jī)組成的集群運(yùn)行,10000,步的時(shí)間和加速比 對(duì)比情況,流場(chǎng)大小,單CPU程序,MPI集群用,加速比,MPI+GPU,加速比,64*64,19.219,24.781,0.775,30.506,0.63,128*128,78.062,20.218,2.358,36.307,2.15,256*256,131.235,37.603,3.49,48.
13、072,8.06,512*512,532.750,67.097,7.94,91.853,13.78,640*640,850.5310,83.141,10.23,114.936,20.69,1152*1152,2763.790,111.849,24.71,245.452,43.12,1792*1792,6675.951,201.995,33.05,375.475,72.37,四 實(shí)驗(yàn)分析,使用,8臺(tái),計(jì)算機(jī)組成的集群運(yùn)行,10000,步的加速比折線(xiàn)圖,四 實(shí)驗(yàn)分析,使用,2臺(tái),、,4臺(tái),、,8臺(tái),計(jì)算機(jī)組成的集群運(yùn)行,10000,步的加速比,折線(xiàn)圖,四 實(shí)驗(yàn)分析,使用,2臺(tái),、,4臺(tái),、,8臺(tái),
14、計(jì)算機(jī)組成的集群運(yùn)行,10000,步的加速比,柱狀圖,總結(jié)分析,在流場(chǎng)比較小時(shí)(如64*64),MPI和MPI+,CUDA,方式加速優(yōu)勢(shì)并未能,體現(xiàn)。因?yàn)镸PI和MPI+CUDA方式的時(shí)間基本花費(fèi)在了通信上,當(dāng)流場(chǎng)128時(shí),MPI和MPI+,CUDA,方式的加速性能比CPU有明顯的,提升,而且加速比隨著計(jì)算流場(chǎng)規(guī)模的增大而增大,隨著集群中的,計(jì)算機(jī)的數(shù)量,增加,MPI和MPI+,CUDA,方式的加速比,也會(huì)明顯增加,結(jié)論,在,CUDA框架下,設(shè)計(jì)和實(shí)現(xiàn)了在多GPU上基于LBM的方腔流,模擬的并行算法。與單CPU、MPI對(duì)比結(jié)果表明在多個(gè)GPU,上基于LBM的流體模擬并行計(jì)算是,完全可行,的;使用多GPU,后,加速性能得到了大幅度的提高,展示了集群GPU在科學(xué),計(jì)算方面強(qiáng)大的計(jì)算能力,說(shuō)明了使用集群GPU并行計(jì)算,,可以極大地提高計(jì)算效率。采用我們的方案,低成本,,,高性能,敬請(qǐng)您批評(píng)指正 謝謝,!,