徐藝峰,李 健,王 杰,范冰豐,王 鋼,3+
(1.中山大學 電子與信息工程學院,廣東 廣州 510000;2.中山大學 先進技術(shù)研究院,廣東 廣州 510275;3.中山大學 光電材料與技術(shù)國家重點實驗室,廣東 廣州 510275)
隨著計算機軟硬件的不斷優(yōu)化和升級,求解問題的規(guī)模也日益增大。由于單個計算機的計算和存儲能力有限,而大型并行計算機可以實現(xiàn)多個處理部件與設備間的高效互聯(lián),因此并行計算逐漸成為求解CFD問題的重要方法[3,4]。“天河二號”是我國自主研發(fā)的超級計算機平臺,坐落于中山大學的國家超級計算廣州中心[5,6],計算和存儲能力世界領先[7,8],是研究大規(guī)模并行計算的最佳選擇。
MOCVD(metal-organic chemical vapor deposition)生長過程復雜[9],包括湍流層流模型、質(zhì)量與熱傳輸、內(nèi)部化學反應、三大守恒、工藝參數(shù)的設置與薄膜生長條件等[10]。實際生長要對每個因素進行全面而系統(tǒng)的研究因而成本巨大,利用計算流體力學(CFD)通過建立仿真模型來進行數(shù)值計算就體現(xiàn)出強大的優(yōu)越性,并成為了國內(nèi)外的研究熱點[11,12]。通過計算機進行各參數(shù)數(shù)值的計算,能夠得到比較詳細的資料,省時省力。
本文通過在“天河二號”上測試Fluent 15.0對MOCVD腔體模型的并行計算能力,探究了網(wǎng)格無關性,得出了最佳并行規(guī)模組合,使計算效率大大提高。
2017年6月19日,最新的全球超級計算機500強榜單公布,來自中國的超級計算機“神威·太湖之光”和“天河二號”第三次攜手奪得前二。隨著行業(yè)和應用的需要,國家相關部門的重視,中國超級計算機正在飛速發(fā)展,在性能與應用上不斷邁步[13]。
位于無錫的“神威·太湖之光”由40個機柜、共160個超級節(jié)點組成,每個超級節(jié)點包含256個計算節(jié)點,每個節(jié)點裝有1個1.5 GHz、260核的SW26010眾核處理器和32GB DDR3內(nèi)存,全系統(tǒng)總Linpack峰值浮點計算能力為為125.4359PFlops[14]。
本次測試中的“天河二號”的硬件系統(tǒng)包含有計算陣列、服務陣列、存儲子系統(tǒng)、互聯(lián)通信子系統(tǒng)、監(jiān)控診斷子系統(tǒng)等,如圖1所示。計算陣列全系統(tǒng)包含125個計算機柜,每個計算機柜包含4個計算插框,每個計算插框包含16個計算刀片,每個計算刀片包含2個計算節(jié)點,因此計算陣列一共包含16 000個計算節(jié)點。每個計算節(jié)點包含:2個Intel(R)Xeon(R)CPU E5-2692 v2 @2.2 GHz 12核心處理器、3個Intel Xeon Phi 31S1P 57核心協(xié)處理計算卡、64 GB內(nèi)存、高速互聯(lián)接口、2個以太網(wǎng)接口。一個E5-2692處理器Linpack峰值浮點計算能力為0.2112TFlops,一個Phi 31S1P協(xié)處理計算卡Linpack峰值浮點計算能力為1.003TFlops,總的峰值性能為3.4314 TFlops。因此計算陣列Linpack峰值浮點計算能力為54902.4TFlops,也就是每秒鐘5.49億億次[15]。
圖1 天河二號結(jié)構(gòu)
軟件系統(tǒng)包含有系統(tǒng)操作、運行支撐等4種環(huán)境。當前操作系統(tǒng)版本為Red Hat Enterprise Linux Server release 6.2。應用開發(fā)環(huán)境包括串行編程語言、并行開發(fā)工具和并行編程模型。并行編程模型定義請參見文獻[16]。
在天河二號超級計算機上的測試采用的是由安世亞太公司(Ansys公司的中國代理商)提供的測試版Ansys15.0。Fluent軟件是一個應用于模擬和分析復雜幾何區(qū)域內(nèi)的流體流動與傳熱現(xiàn)象的專業(yè)軟件,該軟件是當今世界CFD仿真領域最為全面的軟件包之一[17]。
Fluent并行計算是用多處理器來計算大規(guī)模問題,計算可以在一臺機器上執(zhí)行,也可以同時在多個不同機器上執(zhí)行。并行處理主要目的是為了減少仿真時間,可以使用速度更快的機器,例如更快的CPU,內(nèi)存,緩存以及CPU和內(nèi)存之間的通信帶寬,也可以使用更快的互聯(lián),例如較小的延遲和更高的帶寬,還可以使用更好的負載均衡,例如載荷均勻分布以及CPU的運算過程中不會空轉(zhuǎn)。Fluent并行計算的基本原理,如圖2所示。Fluent并行處理包括一臺主機進程,一系列的計算進程(處理器)以及計算進程之間的相互作用。Cortex功能是處理Fluent的用戶界面和基本的圖形功能。主機進程不存儲任何網(wǎng)格和計算數(shù)據(jù),主要解釋來自cortex的命令,然后通過socket把這些命令發(fā)給計算進程0,計算進程0再將獲取的命令傳遞給其它計算進程。每個計算進程上都有一個MPI(message passing interface),計算進程之間相互交換數(shù)據(jù)信息通過MP庫實現(xiàn)[18]。
圖2 Fluent并行計算結(jié)構(gòu)原理
各計算進程計算之前,需要將整個三維流場區(qū)域分成多個計算區(qū)域。對網(wǎng)格進行分區(qū)域,需要選擇分區(qū)的方法,設置分區(qū)的數(shù)量,以及對網(wǎng)格分割的質(zhì)量進行最優(yōu)化。分區(qū)域的主要目的是為了平衡每個計算區(qū)域的網(wǎng)格單元數(shù)量、盡量減少各個計算區(qū)域邊界的表面積以及盡量減少計算區(qū)域的數(shù)量,確保每個處理器都有相同的負載以及各個計算區(qū)域之間數(shù)據(jù)交換能同時進行。本此測試采用METIS算法進行分區(qū)[19],這種分區(qū)方法對計算區(qū)域的數(shù)量沒有限制,該算法將根據(jù)實際處理器的數(shù)量自動生成相同數(shù)量的計算區(qū)域。然后分配給相應的各計算進程去計算,由主機進程調(diào)度各個處理器的計算,在每一次全區(qū)的掃描過程中,由各個處理器完成計算并在邊界完成數(shù)據(jù)交換。最后由主機進程根據(jù)收斂準則進行判別,若收斂則計算結(jié)束,不收斂則繼續(xù)迭代求解。
MOCVD的整個反應腔體為立式旋轉(zhuǎn)基座結(jié)構(gòu),如圖3所示。MOCVD的基本原理是以V族、Ⅵ族元素的氫化物和Ⅱ族、Ⅲ族元素的金屬有機化合物作為外延生長的源材料,經(jīng)過熱分解反應與化合反應等一系列化學反應后,在襯底表面沉積出各種Ⅲ-V族、Ⅱ-Ⅵ族化合物半導體薄膜材料[20]。MOCVD腔體原幾何模型非常復雜,對原幾何模型在不影響流場流動的情況下進行簡化,如圖4所示,原上蓋的兩層進氣結(jié)構(gòu)簡化為一層進氣入口,去掉了觀察窗等區(qū)域。
圖3 MOCVD反應腔體
圖4 MOCVD反應腔體簡化
本文選用SIMPLEC算法來求解控制方程組[12],根據(jù)實際流動狀態(tài)設置CFD邊界條件如下:
(1)MO源入口和O源入口均設置為Velocity Inlet(速度入口),O源混合氣體流量為1560 sccm,O2摩爾百分數(shù)為4.6%,MO摩爾百分數(shù)為0.22%,MFC1入口流量為147 sccm,MFC2入口流量為632 sccm,MFC3入口流量為747 sccm,MFC4入口流量為575 sccm,MFC5入口流量為173 sccm。
(2)出口設置為Pressure Outlet(壓力出口)為0 Pa,腔體內(nèi)部壓強為10torr。
(3)襯底的轉(zhuǎn)速和溫度分別為750 rpm和723 k,反應堆內(nèi)壁和外壁設置為絕熱和無滑移的。
從理論上來說,當網(wǎng)格數(shù)量越密時,模型越準確,但計算量也越大。由于目前的超級計算機是在Linux系統(tǒng)下操作,同時計算所保存的數(shù)據(jù)特別大,從超級計算機上傳和下載數(shù)據(jù)不便,因此有必要探索網(wǎng)格數(shù)量對結(jié)果的影響。網(wǎng)格無關性是指,當網(wǎng)格數(shù)量達到一定數(shù)量時,隨著網(wǎng)格數(shù)量再次增加,沉積率基本上變化不大的情況[21]。實驗中求沉積率的方法,如圖5所示,將轉(zhuǎn)盤表面放有硅片的區(qū)域沿著徑向分成9片圓環(huán),標記為9個點,對每片圓環(huán)沉積率求得的平均值即每個點上的沉積率[22]。
本文模型中通過對網(wǎng)格數(shù)量作均勻加密處理,計算得出每組Case的9個點的沉積率數(shù)值,并比較每組沉積率的相關系數(shù)和平均沉積率的誤差,以探索網(wǎng)格無關性,具體情況如表1及圖6所示。
圖5 轉(zhuǎn)盤表面分區(qū)
CaseCells對Case01加密倍數(shù)Case0117萬1倍Case0268萬4倍Case03136萬8倍Case04408萬24倍Case05680萬40倍Case06901萬53倍Case071020萬60倍
圖6 不同網(wǎng)格數(shù)量的網(wǎng)格
通過計算加密后的網(wǎng)格,得出每個Case對應每個點的沉積率數(shù)值,其中沉積率的單位是μm/h,結(jié)果見表2。比較每個Case與Case07之間的相關系數(shù)(correl),即可得出它們間變化趨勢的相似程度,而比較每個Case與Case07之間的誤差(error),即可得出它們間平均沉積率數(shù)值上的差異程度。從表2中可以看出,對于相關系數(shù),Case01到Case03,相關系數(shù)并沒有呈增加的趨勢,反而下降,表現(xiàn)出了一定的不穩(wěn)定性,而Case04到Case06,相關系數(shù)不斷穩(wěn)定接近于1,因此Case04到Case07的變化趨勢相似程度較高。對于誤差,Case01到Case03誤差較大,約為2%到3%,而Case04到Case06誤差縮小近一個數(shù)量級,達到約0.5%到0.7%,因此Case04到Case07的平均沉積率數(shù)值差異較小。綜合以上兩點說明,從Case04開始沉積率曲線已經(jīng)趨于穩(wěn)定,與Case07之間差異不大,可以認為此時已經(jīng)達到網(wǎng)格無關性,為了能快速的進行大規(guī)模計算,沒必要繼續(xù)做加密處理,因此在進行數(shù)值計算過程中選用case04進行計算,而對于沒有達到網(wǎng)格無關性的Case,如Case01,由于其誤差也小于5%,因此工程上也可以應用它來進行調(diào)機,以快速得到結(jié)果。
表2 加密網(wǎng)格的計算結(jié)果
測試選取的模型是上面提到的兩個不同數(shù)量級網(wǎng)格單元,并且均是實驗常用的MOCVD反應腔體的三維網(wǎng)格模型,具體情況見表3。
表3 MOCVD模型的基本情況
并行計算時間:算法在并行機上求解問題時,從第一個任務進程開始執(zhí)行到最后一個任務進程執(zhí)行完畢所需的時間。包含CPU計算、并行開銷和算法輸入輸出所需時間總和。本次測試中,對于問題規(guī)模大的情況,如單核計算網(wǎng)格數(shù)量大的情況,計算時間是估算值。所有的計算時間均是指從開始迭代到迭代結(jié)束為止所用的時間,不包括啟動軟件以及讀入Case的時間,因為啟動軟件以及讀入Case的時間相對比較小,可以忽略不計。
并行加速比: Sn=T1/Tn, 即問題規(guī)模不變的情況下并行規(guī)模n時的并行加速比,并行規(guī)模通常為處理器核數(shù),本次并行規(guī)模的核數(shù)選取依次為:1、2、4、8、12、16、32、64、128、160、240。
并行計算效率: En=Sn/n, 即問題規(guī)模不變的情況下,并行規(guī)模核數(shù)為n時的并行計算效率,假設單核迭代時,計算效率為1。
首先單獨考慮Case A的情況,即問題規(guī)模保持不變,如圖7所示,發(fā)現(xiàn)隨著并行規(guī)模核數(shù)的增加,加速比呈現(xiàn)先增加后減小的趨勢,在處理器核數(shù)為16時達到峰值,Case B也呈現(xiàn)出相同的趨勢,并且在處理器核數(shù)為128時達到峰值。加速比增加的原因是多核的并行計算,大大縮短了計算時間。加速比減小的原因是由于并行規(guī)模相對于問題規(guī)模較大,各個計算區(qū)域的信息數(shù)據(jù)交換非常消耗時間,進程之間數(shù)據(jù)交換的時間比進程計算的時間要長,從而導致整個并行計算時間相對增加,因此減少分界面以及計算區(qū)域的數(shù)量可以減少數(shù)據(jù)交換所需的時間。并且各個計算區(qū)域的信息數(shù)據(jù)交換方式還有待進一步的提高。
圖7 Case A的加速比曲線
對比Case A和Case B的加速比曲線,如圖8所示。當并行規(guī)模不變時,隨著問題規(guī)模的增加,加速比逐漸增加,因此對于問題規(guī)模比較大的情況,使用多核并行計算會大大縮短計算時間,從而降低數(shù)值模擬的周期。問題規(guī)模較小時,讀入Case的時間可以忽略不計,問題規(guī)模較大時,隨著并行規(guī)模加大,讀入Case的時間也相對的減少了。
圖8 Case B的加速比曲線
實驗結(jié)論:
(1)由于網(wǎng)格數(shù)量大小影響沉積率結(jié)果以及計算速度,因此在進行迭代計算之前,對于網(wǎng)格劃分時,要充分考慮到網(wǎng)格數(shù)量問題,實驗結(jié)果表明,對于MOCVD腔體模型,當網(wǎng)格數(shù)量達到408萬時,可以認為已經(jīng)達到網(wǎng)格無關性。
(2)當問題規(guī)模保持不變時,隨著并行規(guī)模的增加,并行計算的加速比呈現(xiàn)先增加后減小的趨勢,計算效率也逐漸降低。對于17萬個六面體單元的MOCVD腔體模型,處理器核數(shù)為16時計算效率達到最高,加速比達到9,對于408萬個六面體單元的MOCVD腔體模型,處理器核數(shù)為128時計算效率達到最高,加速比達到45。
本次測試在國家超級計算廣州中心的平臺上進行,利用天河二號超級計算機的計算資源,由安世亞太公司提供的測試版軟件Ansys 15.0。測試驗證了網(wǎng)格無關性,并選取了17萬個六面體單元和408萬個六面體單元的兩個MOCVD腔體模型,對MOCVD反應腔體的溫度場及流場進行數(shù)值模擬,結(jié)果表明,前者在處理器核數(shù)為16時,加速比達到最高值9,后者在處理器核數(shù)為128時,加速比達到最高值45。
通過本次測試可以看出,對于MOCVD腔體數(shù)值模擬的大規(guī)模計算問題,由于需要計算的工況很多,而且網(wǎng)格數(shù)目巨大,利用普通的計算機很難完成,因此超級計算機并行計算成為了理想選擇。Fluent在天河二號上的應用嘗試,大大提高了仿真實驗的計算效率,適用與大規(guī)模并行計算,結(jié)果可為后續(xù)計算提供參考。