基于OpenMP的近場動(dòng)力學(xué)模擬并行實(shí)現(xiàn)
發(fā)布時(shí)間:2021-01-02 05:11
針對(duì)近場動(dòng)力學(xué)模擬計(jì)算量大、計(jì)算效率低等問題,研究基于OpenMP的近場動(dòng)力學(xué)(peridynamic,PD)并行化方法,即在多核處理器計(jì)算機(jī)上利用OpenMP技術(shù)對(duì)PD程序中耗時(shí)占比大的構(gòu)建鄰接節(jié)點(diǎn)域、計(jì)算物質(zhì)點(diǎn)表面修正系數(shù)、時(shí)間積分3個(gè)模塊進(jìn)行并行化處理,實(shí)現(xiàn)PD模擬的多線程并行化。通過對(duì)二維各向同性板的2種鍵型PD模型(準(zhǔn)靜態(tài)模擬PD模型和動(dòng)態(tài)裂紋擴(kuò)展模擬PD模型)測試,得出不同線程數(shù)下并行計(jì)算時(shí)間。結(jié)果表明,采用OpenMP并行技術(shù)可有效提高近場動(dòng)力學(xué)模擬運(yùn)算中的計(jì)算效率,相比于串行計(jì)算,并行計(jì)算獲得了2.0~4.0倍的加速比。
【文章來源】:河南理工大學(xué)學(xué)報(bào)(自然科學(xué)版). 2020年05期 北大核心
【文章頁數(shù)】:9 頁
【部分圖文】:
PD程序結(jié)構(gòu)圖
OpenMP是一種面向共享內(nèi)存以及分布式共享內(nèi)存的、多處理器多線程并行語言。其編程模型是以線程為基礎(chǔ),通過編譯制導(dǎo)語句在原來串行程序的基礎(chǔ)上顯示進(jìn)行并行化處理[10]。對(duì)原有串行程序的改動(dòng)較小,具有操作簡便、開發(fā)效率高等優(yōu)點(diǎn)。OpenMP采用的執(zhí)行模式是串行→并行→串行→并行→串行……,如圖2所示。這種執(zhí)行模式的核心在于并行區(qū)域中線程的派生/縮并(Fork/Join)[11-12]。3 基于OpenMP的PD并行算法
整個(gè)Neighbor模塊將由兩個(gè)大的循環(huán)體構(gòu)成。第一個(gè)循環(huán)體是二重嵌套循環(huán),主要完成以下過程:搜索每個(gè)物質(zhì)點(diǎn)的鄰域內(nèi)節(jié)點(diǎn),構(gòu)建鄰接節(jié)點(diǎn)域;確定每個(gè)物質(zhì)點(diǎn)的鄰域內(nèi)節(jié)點(diǎn)個(gè)數(shù)并存放到數(shù)組2中。由于第一個(gè)循環(huán)體沒有循環(huán)依賴,每個(gè)物質(zhì)點(diǎn)可以獨(dú)立運(yùn)行,因而可以進(jìn)行并行化,并行化主要過程如圖3所示。第二個(gè)循環(huán)體構(gòu)建了上述的數(shù)組1和數(shù)組3,由于數(shù)組1和數(shù)組3中數(shù)據(jù)的存放需要按照物質(zhì)點(diǎn)排列順序,即循環(huán)指標(biāo)的先后次序,排隊(duì)執(zhí)行,因而無法進(jìn)行并行化,只能依照原有的串行方式執(zhí)行。好在第二個(gè)循環(huán)體的運(yùn)行時(shí)間相比第一個(gè)循環(huán)體要小得多,一般只有零點(diǎn)幾秒,所以并沒有影響到整個(gè)Neighbor模塊的并行優(yōu)化效果,這一模塊的部分并行代碼段如圖4所示。private()括號(hào)內(nèi)為聲明的私有變量列表,需填上循環(huán)體內(nèi)的私有變量(特別是進(jìn)行寫操作的變量),確保每個(gè)物質(zhì)點(diǎn)在程序執(zhí)行過程中互不干擾,避免出現(xiàn)數(shù)據(jù)競爭現(xiàn)象。并行語句for指令后不帶schedule子句,系統(tǒng)會(huì)默認(rèn)采用靜態(tài)調(diào)度方式(調(diào)度過程見圖5),即如果將循環(huán)迭代的總次數(shù)設(shè)為n,并行區(qū)域內(nèi)線程總數(shù)為p,那么分配給每個(gè)線程約n/p次連續(xù)的迭代[13]。因此不同處理器在對(duì)共享數(shù)組(例如數(shù)組2)進(jìn)行寫操作時(shí),操作的是數(shù)組中相隔比較遠(yuǎn)的元素,從而避免了偽共享[13]的問題。圖4 并行代碼段1(構(gòu)建物質(zhì)點(diǎn)鄰接節(jié)點(diǎn)域)
【參考文獻(xiàn)】:
期刊論文
[1]基于鍵型近場動(dòng)力學(xué)的含裂紋板損傷模擬[J]. 石春香,王遠(yuǎn)洋. 應(yīng)用技術(shù)學(xué)報(bào). 2018(02)
[2]近場動(dòng)力學(xué)研究進(jìn)展[J]. 喬丕忠,張勇,張恒,張律文. 力學(xué)季刊. 2017(01)
[3]基于GPU的近場動(dòng)力學(xué)模擬的并行化方法[J]. 劉肅肅,胡祎樂,余音. 上海交通大學(xué)學(xué)報(bào). 2016(09)
[4]復(fù)材非線性及漸進(jìn)損傷的態(tài)型近場動(dòng)力學(xué)模擬[J]. 劉肅肅,余音. 浙江大學(xué)學(xué)報(bào)(工學(xué)版). 2016(05)
[5]基于OpenMP的分子動(dòng)力學(xué)并行算法的性能分析與優(yōu)化[J]. 白明澤,程麗,豆育升,孫世新. 計(jì)算機(jī)應(yīng)用. 2012(01)
[6]多核并行技術(shù)在分子動(dòng)力學(xué)模擬中的應(yīng)用[J]. 劉青昆,滕人達(dá),劉鳳,宮利東,張建強(qiáng). 計(jì)算機(jī)工程與設(shè)計(jì). 2011(10)
[7]近場動(dòng)力學(xué)方法及其應(yīng)用[J]. 黃丹,章青,喬丕忠,沈峰. 力學(xué)進(jìn)展. 2010(04)
本文編號(hào):2952720
【文章來源】:河南理工大學(xué)學(xué)報(bào)(自然科學(xué)版). 2020年05期 北大核心
【文章頁數(shù)】:9 頁
【部分圖文】:
PD程序結(jié)構(gòu)圖
OpenMP是一種面向共享內(nèi)存以及分布式共享內(nèi)存的、多處理器多線程并行語言。其編程模型是以線程為基礎(chǔ),通過編譯制導(dǎo)語句在原來串行程序的基礎(chǔ)上顯示進(jìn)行并行化處理[10]。對(duì)原有串行程序的改動(dòng)較小,具有操作簡便、開發(fā)效率高等優(yōu)點(diǎn)。OpenMP采用的執(zhí)行模式是串行→并行→串行→并行→串行……,如圖2所示。這種執(zhí)行模式的核心在于并行區(qū)域中線程的派生/縮并(Fork/Join)[11-12]。3 基于OpenMP的PD并行算法
整個(gè)Neighbor模塊將由兩個(gè)大的循環(huán)體構(gòu)成。第一個(gè)循環(huán)體是二重嵌套循環(huán),主要完成以下過程:搜索每個(gè)物質(zhì)點(diǎn)的鄰域內(nèi)節(jié)點(diǎn),構(gòu)建鄰接節(jié)點(diǎn)域;確定每個(gè)物質(zhì)點(diǎn)的鄰域內(nèi)節(jié)點(diǎn)個(gè)數(shù)并存放到數(shù)組2中。由于第一個(gè)循環(huán)體沒有循環(huán)依賴,每個(gè)物質(zhì)點(diǎn)可以獨(dú)立運(yùn)行,因而可以進(jìn)行并行化,并行化主要過程如圖3所示。第二個(gè)循環(huán)體構(gòu)建了上述的數(shù)組1和數(shù)組3,由于數(shù)組1和數(shù)組3中數(shù)據(jù)的存放需要按照物質(zhì)點(diǎn)排列順序,即循環(huán)指標(biāo)的先后次序,排隊(duì)執(zhí)行,因而無法進(jìn)行并行化,只能依照原有的串行方式執(zhí)行。好在第二個(gè)循環(huán)體的運(yùn)行時(shí)間相比第一個(gè)循環(huán)體要小得多,一般只有零點(diǎn)幾秒,所以并沒有影響到整個(gè)Neighbor模塊的并行優(yōu)化效果,這一模塊的部分并行代碼段如圖4所示。private()括號(hào)內(nèi)為聲明的私有變量列表,需填上循環(huán)體內(nèi)的私有變量(特別是進(jìn)行寫操作的變量),確保每個(gè)物質(zhì)點(diǎn)在程序執(zhí)行過程中互不干擾,避免出現(xiàn)數(shù)據(jù)競爭現(xiàn)象。并行語句for指令后不帶schedule子句,系統(tǒng)會(huì)默認(rèn)采用靜態(tài)調(diào)度方式(調(diào)度過程見圖5),即如果將循環(huán)迭代的總次數(shù)設(shè)為n,并行區(qū)域內(nèi)線程總數(shù)為p,那么分配給每個(gè)線程約n/p次連續(xù)的迭代[13]。因此不同處理器在對(duì)共享數(shù)組(例如數(shù)組2)進(jìn)行寫操作時(shí),操作的是數(shù)組中相隔比較遠(yuǎn)的元素,從而避免了偽共享[13]的問題。圖4 并行代碼段1(構(gòu)建物質(zhì)點(diǎn)鄰接節(jié)點(diǎn)域)
【參考文獻(xiàn)】:
期刊論文
[1]基于鍵型近場動(dòng)力學(xué)的含裂紋板損傷模擬[J]. 石春香,王遠(yuǎn)洋. 應(yīng)用技術(shù)學(xué)報(bào). 2018(02)
[2]近場動(dòng)力學(xué)研究進(jìn)展[J]. 喬丕忠,張勇,張恒,張律文. 力學(xué)季刊. 2017(01)
[3]基于GPU的近場動(dòng)力學(xué)模擬的并行化方法[J]. 劉肅肅,胡祎樂,余音. 上海交通大學(xué)學(xué)報(bào). 2016(09)
[4]復(fù)材非線性及漸進(jìn)損傷的態(tài)型近場動(dòng)力學(xué)模擬[J]. 劉肅肅,余音. 浙江大學(xué)學(xué)報(bào)(工學(xué)版). 2016(05)
[5]基于OpenMP的分子動(dòng)力學(xué)并行算法的性能分析與優(yōu)化[J]. 白明澤,程麗,豆育升,孫世新. 計(jì)算機(jī)應(yīng)用. 2012(01)
[6]多核并行技術(shù)在分子動(dòng)力學(xué)模擬中的應(yīng)用[J]. 劉青昆,滕人達(dá),劉鳳,宮利東,張建強(qiáng). 計(jì)算機(jī)工程與設(shè)計(jì). 2011(10)
[7]近場動(dòng)力學(xué)方法及其應(yīng)用[J]. 黃丹,章青,喬丕忠,沈峰. 力學(xué)進(jìn)展. 2010(04)
本文編號(hào):2952720
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2952720.html
最近更新
教材專著