關鍵詞:格子玻爾茲曼方法 并行計算 性能優(yōu)化 高性能python 多相流模擬
摘要:Python由于具有豐富的第三方庫、開發(fā)高效等優(yōu)點,已成為數(shù)據(jù)科學、智能科學等應用領域最流行的編程語言之一。Python強調了對科學與工程計算的支持,目前已積累了豐富的科學與工程計算庫和工具。例如,SciPy和NumPy等數(shù)學庫提供了高效的多維數(shù)組操作及豐富的數(shù)值計算功能。以往,Python主要作為腳本語言,起到連接數(shù)值模擬前處理、求解器和后處理的“膠水”功能,以提升數(shù)值模擬的自動化處理水平。近年來,國外已有學者嘗試采用Python代碼實現(xiàn)求解計算功能,并在高性能計算機上開展了超大規(guī)模并行計算研究,取得了不錯的效果。由于自身特點,高效大規(guī)模Python數(shù)值模擬的實現(xiàn)和性能優(yōu)化與傳統(tǒng)基于C/C++和Fortran的數(shù)值模擬等具有很大的不同。文中實現(xiàn)了國際上首個完全基于Python的大規(guī)模并行三維格子玻爾茲曼多相流模擬代碼PyLBMFlow,探索了Python大規(guī)模高性能計算和性能優(yōu)化方法。首先,利用NumPy多維數(shù)組和通用函數(shù)設計實現(xiàn)了LBM流場數(shù)據(jù)結構和典型計算內核,通過一系列性能優(yōu)化并對LBM邊界處理算法進行重構,大幅提升了Python的計算效率,相對于基準實現(xiàn),優(yōu)化后的串行性能提升了兩個量級。在此基礎上,采用三維流場區(qū)域分解方法,基于mpi4py和Cython實現(xiàn)了MPI+OpenMP混合并行;在天河二號超級計算機上成功模擬了基于D3Q19離散方法和Shan-Chen BGK碰撞模型的氣液兩相流,算例規(guī)模達百億網格,并行規(guī)模達1024個結點,并行效率超過90%。
計算機科學雜志要求:
{1}正文公式的序號一律靠右空兩格,用(1)、(2)、(3)等表示。
{2}請勿一稿多投,三個月沒有得到用稿通知,可自行處理。
{3}來稿一律文責自負。依照《著作權法》有關規(guī)定,本刊可對來稿做文字修改、刪節(jié)及圖像處理。凡有涉及原意的修改,則征求作者意見。修改稿逾3個月不寄回者,視作自動撤稿。
{4}標題序號按照“一”、“(一)”、“1”、“第一”或“首先”順序排列,一般不用“①”號。根據(jù)文章具體內容,序號可適當減少,但不可反順序使用。
{5}文末注明聯(lián)系電話、詳細單位地址郵編。
注:因版權方要求,不能公開全文,如需全文,請咨詢雜志社