?
柴油機燃燒過程并行計算
郭曉平,隆武強
(大連理工大學內燃機研究所,大連116023)
摘要用具有大量控制單元的多維CFD模型耦合詳細反應動力學模型,來模擬發(fā)動機燃燒過程,所需計算時間長,目前已超出可被人們接受的程度。采用并行計算可以縮短計算時間。本文提出了柴油機燃燒過程“分區(qū)化學反應分布式并行算法”和“神經網絡在線學習分布式并行算法”。在Windows XP操作系統(tǒng)下,基于MPI并行編程環(huán)境,用Fortran語言開發(fā)了并行計算程序,并在6臺同方AMD 3200+計算機系統(tǒng)上調試成功,且通過驗證計算,獲得了較理想的并行效率。
關鍵詞:柴油機化學動力學并行計算人工神經網絡
來稿日期:2014-12-29
文章[1]分析了柴油機燃燒化學動力學計算量龐大的原因,如果不考慮組分質量遷移對計算量的影響,反應溫度和計算單元數可以表示成在多項式時間內可以完成的P類問題。但實際運行需要有超性能的計算機,于是人們自然想到了并行計算技術。采用多計算機和多處理器同時計算,以縮短計算時間。如何將原來串行計算改造成并行計算,使計算時間降到可以接受的程度,是目前高性能計算應用研究的一個焦點。
人類在求解復雜問題方面,遠遠勝過采用經典算法的編程計算。因此,將人類求解問題的方法移植到計算模型是一個很好的想法。這就是人工神經網絡。人工神經網絡在復雜系統(tǒng)中的應用已得到長足發(fā)展,在發(fā)動機燃燒計算中也已有文獻報導[2-4],是解決發(fā)動機燃燒計算量的好措施。因此,在燃燒計算的同時并行進行化學動力學神經網絡的建立與調用是很有必要的。
本文主要討論柴油機燃燒過程計算的并行算法。在Windows XP操作系統(tǒng)下,基于MPI的并行編程環(huán)境,使用Fortran語言實現(xiàn)“分區(qū)化學反應分布式并行算法”和“神經網絡在線學習分布式并行算法”。所提算法在多PC機系統(tǒng)上實現(xiàn),并使用LLNL正庚烷氧化機理對柴油機燃燒過程進行了仿真計算,結果驗證了所提算法的正確性和有效性。
大多數并行機可分為2類:共享存儲并行機和分布存儲并行機。共享存儲并行機是所有處理機共享一個單一地址空間。分布存儲并行機是每個處理機有私有存儲空間,不同處理機之間的數據傳輸通過通信來實現(xiàn)。
2.1共享存儲
共享存儲并行機是由多個處理器組成的共享存儲系統(tǒng),圖1示例是由4個處理器組成的系統(tǒng)。其中每個處理機由專用緩存器(Cache)通過一條系統(tǒng)總線連接到一個全局共享存儲器上,這是典型的對稱多處理機(SMP)結構[5]。
圖1 一種具有一致性訪問共享存儲的體系結構
在對稱多處理機中,每個處理機可以使用標準的加載操作訪問全局存儲器中的任意單元。在共享存儲系統(tǒng)中,對共享數據的同步訪問是一個主要問題。編程時必須確保多個處理機在一個共享數據結構上的操作正確無誤,即確保該數據結構始終保持一致性狀態(tài)。共享存儲的主要問題是它的處理機數量難以擴展到很大。
2.2分布存儲
分布存儲結構如圖2所示,處理機通過通信網絡訪問存儲器。如果使用可擴展的通信網絡,那么這種系統(tǒng)是可擴展的。
圖2 分布存儲體系結構
分布存儲系統(tǒng)的優(yōu)勢在于訪問本地存儲器的速度相當快,而訪問遠端存儲器的速度則非常慢。大多數分布存儲系統(tǒng)支持消息傳遞編程模式。在這種模式中,擁有某數據的處理機將數據發(fā)送給其他需要該數據的處理機。雖然這種“發(fā)送─接收”通信啟動后通信帶寬高,但通常啟動時間長。因此,在消息傳遞系統(tǒng)中,一般應該減少發(fā)送次數,而提高一次發(fā)送的數據量。
要實現(xiàn)并行程序,必須處理4個主要問題。首先,將那些能并行處理的計算部分表示出來;其次,將程序分解成多個并行部分;然后,建立模型和界面來編寫并行程序;最后,選擇一種實現(xiàn)方式,能有效實現(xiàn)并行程序并體現(xiàn)計算模型。
3.1程序并行性識別
實現(xiàn)并行計算的第1步是識別程序中的哪些部分可以并行處理。如果多個計算無共享數據,那么這些計算可以并行執(zhí)行。多個計算同時讀取同一存儲單元中的數據時,是不會產生沖突的,不影響并行化。
在柴油機燃燒計算中,大約99%的計算時間消耗在化學反應動力學計算上,因此不考慮對流動過程作并行計算。在每個化學計算迭代步長駐t中,各基元反應計算是互相獨立的,且都從共同的組分質量存儲器中讀取數據進行計算。因此具備將串行計算直接改造成并行計算的條件。但對反應動力學進行并行化改造,將涉及到同步協(xié)調與數據讀寫環(huán)節(jié),所需時間會在很大程度上抵消并行計算所節(jié)省的時間。因此,分解化學反應模型來進行并行計算獲利不大。
燃燒化學計算之所以計算量大,是因為化學迭代計算的步長太小所致,而確定步長的計算很簡單,毋需使用并行計算。
柴油機缸內燃燒計算是各控制單元執(zhí)行程序代碼相同、而輸入數據不同的計算。因此,各控制單元之間可以實行化學反應并行計算。
使用神經網絡來構造燃燒過程組分質量變化函數,供后繼控制單元的動力學計算使用。為了提高神經網絡函數的精度,最好是在線形成神經網絡,同時不斷完善神經網絡。顯然,神經網絡的建立和完善與化學反應迭代計算可以并行進行。
3.2分解策略
實現(xiàn)并行計算的第2步是選擇分解策略,通常有2種方法。一種是“任務并行”,即把程序分解為多個任務,標識出它們之間的依賴關系,并進行任務調度,使得并行執(zhí)行的任務互不干擾,不同的處理機執(zhí)行不同的功能。另一種是“數據并行”,即把問題的數據空間分解為多個區(qū)域,并分配給不同的處理機,每個處理機負責計算各個區(qū)域的結果。
在燃燒過程計算中,一方面要進行化學反應動力學計算,另一方面要建立和完善神經網絡。因此,本文使用“任務并行”與“數據并行”相結合的并行計算策略:有關神經網絡計算采用“任務并行”,化學動力學計算采用“數據并行”,而“數據并行”采用按區(qū)分網并行計算的思路。在硬件配置上,指定某一臺計算機作為主控機,主控機負責對各子機進行協(xié)調和交互,以完成缸內化學反應計算。
3.3編程模型
編程模型的選擇就是對編程語言和庫的選擇。通常有下面2種選擇:共享存儲編程模型和消息傳遞編程模型。
3.3.1共享存儲編程模型
數據存儲于一個共享存儲器中,所有處理機均可訪問該共享存儲器。這就意味著每個處理機可以獨立地對存儲器中的任一單元進行讀或寫操作。這種模型的特點就是用同步保證共享數據結構的完整性。
一旦神經網絡建立以后,就可以通過神經網絡函數模擬計算單元中的化學反應。因此,神經網絡結果應該放在共享存儲器中。其同步條件是,神經網絡建立完畢與神經網絡調用同步。
同理,化學反應迭代計算的新結果也放在共享存儲器中,通過不斷積累,當滿足神經網絡所需樣本數時,啟動神經網絡的創(chuàng)建或完善計算。其同步條件是,樣本數量滿足要求。
3.3.2消息傳遞編程模型
數據分別存儲在多個處理機的本地存儲器中,需要通過通信方式來訪問遠程數據。通常,要通信的2個處理機之間必須顯式地進行發(fā)送/接受操作。
缸內流動計算采用串行方式,流動計算完成后確定出新時刻控制單元的壓力p、溫度T和組分質量,然后啟動各子機進行化學反應迭代計算?;瘜W反應計算結束后再將計算結果匯總,以便進行下一時刻缸內流動計算。因此,這種并行計算采用消息傳遞編程模型。
3.4實現(xiàn)模式
3.4.1燃燒并行算法的實現(xiàn)
化學反應動力學并行計算的實現(xiàn)方法是,采用數據并行策略,在分布存儲系統(tǒng)上采用單程序多數據(SPMD)模式,所有的處理機均執(zhí)行相同的程序,但是使用不同的數據。設有n臺子機,則將需進行化學計算的控制單元數分成n份,分別發(fā)送到各子機進行計算,然后接收各子機的計算結果。這種算法,數據交互次數不多,但每次交互的數據量較大。需要注意的是,所實現(xiàn)算法為同步算法。因此各子機的負載均衡問題可能會影響算法的性能,即網絡劃分不均時,或者網格的參數差別較大時,各子機間存在相互等待的現(xiàn)象。
3.4.2神經網絡并行算法的實現(xiàn)
如上所述,關于神經網絡的計算,采用共享存儲器方式,關鍵是建立同步控制策略。其同步約束條件為:(1)根據神經網絡范圍對樣本進行分類;(2)只有收集到足夠數量的樣本,啟動1臺子機進行神經網絡學習;(3)只有當子神經網絡建立后,才可以使用神經網絡替代化學迭代計算。
在每臺子機上,均安裝了chemkin子程序和神經網絡訓練子程序。實際運行中,子機是做化學反應計算還是網絡訓練計算,均由主機控制。以網絡訓練的優(yōu)先級最高,即,一旦訓練數據滿足要求,主機就指定1臺子機進行網絡訓練。如果已經有一臺子機在進行網絡訓練,則主機指定另1臺子機進行訓練,剩下的子機做chemkin迭代計算。如果所有子機均作神經網絡訓練,則僅由主機進行chemkin迭代計算。
基于以上分析,柴油機燃燒過程并行算法的實現(xiàn)流程如圖3所示。其中,左邊為串行算法流程圖,右邊為各子機和主機之間的交互任務。可以看出,所實現(xiàn)的并行算法在原串行算法基礎上改動不大,主機和子機之間交互次數也不多。
在Windows XP操作系統(tǒng)下,基于MPI的并行編程環(huán)境,根據圖3并行算法對kiva程序進行并行計算改造。硬件平臺由6臺同方PC機構成,CPU為AMD 3200+,內存2GB,硬盤容量160GB。改造后的kiva程序在上述硬件平臺上運行,且進行了測試。測試算例采用4氣門直噴式四沖程壓縮燃燒柴油機[1],化學反應模型采用美國國家重點實驗室研發(fā)的正庚烷氧化詳細機理。
除了建立神經網絡及未解決的問題外,并行計算系統(tǒng)已調試成功,運行正常。比較噴油期缸內燃燒過程計算結果、并行計算和原kiva串行計算,控制單元中內能和組分計算結果誤差小于10%,計算加速比大于50。
圖3 柴油機燃燒并行計算流程
用具有大量控制單元的多維CFD模型耦合詳細反應動力學模型,來模擬柴油機燃燒過程,所需計算時間長,目前已超過可被接受的范圍。采用并行計算可以縮短計算時間。本文提出了柴油機燃燒過程“分區(qū)化學反應分布式并行算法”和“神經網絡在線學習分布式并行算法”。在Windows XP操作系統(tǒng)下,基于MPI并行編程環(huán)境,用Fortran語言開發(fā)了并行計算程序,并在由6臺同方AMD 3200+PC機組成的系統(tǒng)上調試成功,且運行正常,獲得了較理想的加速比和并行效率。通過實際柴油機工作過程計算,驗證了本文所提并行算法的正確性和有效性。為進一步開展柴油機燃燒動力學高性能計算研究奠定基礎。
參考文獻
[1]郭曉平,王占杰.柴油機燃燒計算量研究[C].中國工程熱物理學會燃燒分會學術論文,西安2008.
[2] Grondin O, Stobart R, Chafouk H et al. Modelling the Compression Ignition Engine for Control: Review and Future Trends[C]. SAE 2004-01-0423.
[3] He Y, Rutland C J. Application of Artificial Neural Networks in Engine Modelling [J]. International Journal of Engine Research, 2003, 5(4): 281-296.
[4] Choi Y, Chen J Y. Fast Prediction of Start-of-Combustion in HCCI with Combined Artificial Neural Networks and Ignition Delay Model [J]. Proceedings of the Combustion Institute, 2005, 30(1): 2711-2718.
[5]都志輝.高性能計算并行編程技術[M].北京:清華大學出版社,2001.
Parallel Computing of Diesel Combustion Process
Guo Xiaoping, Long Wuqiang
(Internal Combustion Engine Institute of Dalian University of Technology, Dalian 116023, China)
Abstract:The multi-dimension al CFD model with a large number of control units coupled with detailed kinetic model to calculate the engine combustion process is of time consuming and not accepted. Parallel computing can reduce computation time. This paper presents "partition chemical reaction distributed parallel algorithm" and "parallel distributed online learning neural network algorithm". In the Windows XP operating system and based on MPI parallel programming environment, the Fortran parallel computing program is developed and successful commissioning in AMD 3200+ computer system on 6 computers is achieved. By verifying the calculation, a more ideal parallel efficiency is obtained.
Key words:diesel engine, chemical kinetics, parallel computing, artificial neural networks
作者簡介:郭曉平(1955-),女,副教授,主要研究方向為內燃機工作過程數值仿真與有害物排放控制。
doi:10.3969/j.issn.1671-0614.2015.01.001