開源CFD軟件OpenFOAM在神威太湖之光上的移植與優(yōu)化
發(fā)布時(shí)間:2020-09-10 14:43
神威太湖之光是目前Top500榜單上排名第一的超級(jí)計(jì)算機(jī),整機(jī)Linpack性能達(dá)到93 PFlops,以國(guó)內(nèi)自主研發(fā)的SW26010眾核處理器為主要的計(jì)算節(jié)點(diǎn)。OpenFOAM(Open Source Field Operation and Manipulation)是計(jì)算流體力學(xué)領(lǐng)域使用最廣泛的開源軟件包,OpenFOAM基于C++語言設(shè)計(jì)開發(fā),而SW26010的從核編譯器不支持C++,使得OpenFOAM無法直接在該架構(gòu)上有效運(yùn)行。本文基于SW26010的主核/從核的體系架構(gòu)移植了OpenFOAM的核心計(jì)算代碼,并采用混合語言編程實(shí)現(xiàn)的方式解決編譯不兼容的問題。此外,本文在從核上實(shí)現(xiàn)不同的稀疏矩陣存儲(chǔ)格式和預(yù)處理方法,并通過向量化,寄存器通信和動(dòng)態(tài)任務(wù)劃分等方法進(jìn)一步優(yōu)化,單核組的性能較編譯器優(yōu)化代碼提高了10倍左右,與Intel(R)Xeon(R)CPU E5-2695 v3串行執(zhí)行性能相當(dāng)。同時(shí)本文通過MPI和加速線程庫(kù)的混合模型將OpenFOAM的從核實(shí)現(xiàn)擴(kuò)展到了多核組集群上,并取得了較好的擴(kuò)展性。本文主要有三點(diǎn)貢獻(xiàn):(1)將OpenFOAM移植到SW26010處理器上,解決編譯器不兼容問題,并將核心算法從C++轉(zhuǎn)換為C語言;(2)在SW26010處理器眾核結(jié)構(gòu)上實(shí)現(xiàn)不同的稀疏矩陣存儲(chǔ)格式和預(yù)處理方法,并使用MPI與加速線程庫(kù)的混合模型將從核代碼擴(kuò)展到多個(gè)核組;(3)結(jié)合SW26010處理器的體系架構(gòu),使用向量化、寄存器通信和動(dòng)態(tài)任務(wù)劃分等方法對(duì)求解器性能進(jìn)行優(yōu)化,顯著提高了OpenFOAM求解器的運(yùn)行速度。
【學(xué)位單位】:上海交通大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位年份】:2018
【中圖分類】:TP338
【部分圖文】:
立方體的上邊界是一個(gè)沿 x 方向移動(dòng)的面,其他均是靜止的面,Cavity 算例下使用icoFOAM 求解器瞬態(tài)求解不可壓縮牛頓流體層流,算例網(wǎng)格由 OpenFOAM 自帶的網(wǎng)格生成工具 blockMesh 生成,可以在 xyz 三個(gè)方向進(jìn)行切分,如圖6 1所示,默認(rèn)的算例規(guī)模為 400,單核組并行效率測(cè)試和多核組弱擴(kuò)展性測(cè)試的規(guī)模為 160000,多核組強(qiáng)擴(kuò)展性測(cè)試的規(guī)模為 2560000。圖 6 1 Cavity 算例Fig 6 1 Cavity test case— 43 —
PitzDaily 算例下使用 simpleFOAM 求解器瞬態(tài)求解后向的不可壓縮湍流,算例網(wǎng)格由 OpenFOAM 自帶的網(wǎng)格生成工具 blockMesh 生成,可以在 xy 兩個(gè)方向進(jìn)行切分,如圖6 2所示,默認(rèn)的算例規(guī)模為 12225,單核組并行效率測(cè)試和多核組強(qiáng)弱擴(kuò)展性測(cè)試的規(guī)模均為 305625。圖 6 2 PitzDaily 算例Fig 6 2 PitzDaily test case測(cè)試算例 sWing 對(duì)應(yīng)的物理模型是長(zhǎng)寬為 7000,高為 3500 的立方體,sWing 算例下使用 simpleFOAM 求解器瞬態(tài)求解不可壓縮湍流,算例網(wǎng)格由 OpenFOAM 自帶的網(wǎng)格生成工具 blockMesh 生成,可以在 xyz 三個(gè)方向進(jìn)行切分,如圖6 3所示
PitzDaily 算例下使用 simpleFOAM 求解器瞬態(tài)求解后向的不可壓縮湍流,算例網(wǎng)格由 OpenFOAM 自帶的網(wǎng)格生成工具 blockMesh 生成,可以在 xy 兩個(gè)方向進(jìn)行切分,如圖6 2所示,默認(rèn)的算例規(guī)模為 12225,單核組并行效率測(cè)試和多核組強(qiáng)弱擴(kuò)展性測(cè)試的規(guī)模均為 305625。圖 6 2 PitzDaily 算例Fig 6 2 PitzDaily test case測(cè)試算例 sWing 對(duì)應(yīng)的物理模型是長(zhǎng)寬為 7000,高為 3500 的立方體,sWing 算例下使用 simpleFOAM 求解器瞬態(tài)求解不可壓縮湍流,算例網(wǎng)格由 OpenFOAM 自帶的網(wǎng)格生成工具 blockMesh 生成,可以在 xyz 三個(gè)方向進(jìn)行切分,如圖6 3所示
本文編號(hào):2815943
【學(xué)位單位】:上海交通大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位年份】:2018
【中圖分類】:TP338
【部分圖文】:
立方體的上邊界是一個(gè)沿 x 方向移動(dòng)的面,其他均是靜止的面,Cavity 算例下使用icoFOAM 求解器瞬態(tài)求解不可壓縮牛頓流體層流,算例網(wǎng)格由 OpenFOAM 自帶的網(wǎng)格生成工具 blockMesh 生成,可以在 xyz 三個(gè)方向進(jìn)行切分,如圖6 1所示,默認(rèn)的算例規(guī)模為 400,單核組并行效率測(cè)試和多核組弱擴(kuò)展性測(cè)試的規(guī)模為 160000,多核組強(qiáng)擴(kuò)展性測(cè)試的規(guī)模為 2560000。圖 6 1 Cavity 算例Fig 6 1 Cavity test case— 43 —
PitzDaily 算例下使用 simpleFOAM 求解器瞬態(tài)求解后向的不可壓縮湍流,算例網(wǎng)格由 OpenFOAM 自帶的網(wǎng)格生成工具 blockMesh 生成,可以在 xy 兩個(gè)方向進(jìn)行切分,如圖6 2所示,默認(rèn)的算例規(guī)模為 12225,單核組并行效率測(cè)試和多核組強(qiáng)弱擴(kuò)展性測(cè)試的規(guī)模均為 305625。圖 6 2 PitzDaily 算例Fig 6 2 PitzDaily test case測(cè)試算例 sWing 對(duì)應(yīng)的物理模型是長(zhǎng)寬為 7000,高為 3500 的立方體,sWing 算例下使用 simpleFOAM 求解器瞬態(tài)求解不可壓縮湍流,算例網(wǎng)格由 OpenFOAM 自帶的網(wǎng)格生成工具 blockMesh 生成,可以在 xyz 三個(gè)方向進(jìn)行切分,如圖6 3所示
PitzDaily 算例下使用 simpleFOAM 求解器瞬態(tài)求解后向的不可壓縮湍流,算例網(wǎng)格由 OpenFOAM 自帶的網(wǎng)格生成工具 blockMesh 生成,可以在 xy 兩個(gè)方向進(jìn)行切分,如圖6 2所示,默認(rèn)的算例規(guī)模為 12225,單核組并行效率測(cè)試和多核組強(qiáng)弱擴(kuò)展性測(cè)試的規(guī)模均為 305625。圖 6 2 PitzDaily 算例Fig 6 2 PitzDaily test case測(cè)試算例 sWing 對(duì)應(yīng)的物理模型是長(zhǎng)寬為 7000,高為 3500 的立方體,sWing 算例下使用 simpleFOAM 求解器瞬態(tài)求解不可壓縮湍流,算例網(wǎng)格由 OpenFOAM 自帶的網(wǎng)格生成工具 blockMesh 生成,可以在 xyz 三個(gè)方向進(jìn)行切分,如圖6 3所示
【參考文獻(xiàn)】
相關(guān)期刊論文 前1條
1 袁娥;張?jiān)迫?孫相征;;RAM(h)模型下SpMV存儲(chǔ)訪問復(fù)雜度的分析[J];計(jì)算機(jī)工程與設(shè)計(jì);2009年03期
相關(guān)碩士學(xué)位論文 前1條
1 應(yīng)智;基于GPU的OpenFOAM并行加速研究[D];上海交通大學(xué);2012年
本文編號(hào):2815943
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2815943.html
最近更新
教材專著