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