亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于并行框架的內(nèi)流數(shù)值仿真代碼重構(gòu)技術(shù)

        2021-04-26 06:47:28田曉沛南希宋紅超項(xiàng)洋龍星宇付磊周亦成邵飛中國(guó)航發(fā)研究院
        航空動(dòng)力 2021年2期
        關(guān)鍵詞:數(shù)理存量代碼

        ■ 田曉沛 南希 宋紅超 項(xiàng)洋 龍星宇 付磊 周亦成 邵飛 / 中國(guó)航發(fā)研究院

        具備大規(guī)模并行計(jì)算能力的全三維內(nèi)流數(shù)值仿真軟件可充分發(fā)揮超算潛能,實(shí)現(xiàn)航空發(fā)動(dòng)機(jī)內(nèi)流的高精度仿真。但理論起點(diǎn)高且可靠穩(wěn)定的大規(guī)模并行全三維內(nèi)流數(shù)值仿真軟件的開發(fā),屬于典型的多學(xué)科交叉課題,難度很大。而基于并行框架的代碼重構(gòu)是一種合理可行的軟件研發(fā)技術(shù)路徑。

        目前,基于個(gè)人工作站小規(guī)模并行計(jì)算的全三維定常流/非定常流數(shù)值仿真,已經(jīng)被廣泛用于壓氣機(jī)氣動(dòng)性能評(píng)估,成為壓氣機(jī)氣動(dòng)設(shè)計(jì)不可或缺的核心要素[1-2]。但現(xiàn)階段數(shù)值仿真的網(wǎng)格規(guī)模及其時(shí)間步長(zhǎng)嚴(yán)重受限于個(gè)人工作站的計(jì)算能力,產(chǎn)生一定離散誤差;同時(shí),數(shù)理模型也不可避免地產(chǎn)生不可忽略的誤差。數(shù)值仿真精度并不高,會(huì)隨算例及工況的不同出現(xiàn)波動(dòng),使壓氣機(jī)性能評(píng)估存在較大不確定性[1,3]。

        提高流場(chǎng)數(shù)值模擬精度,一方面可通過理論突破,減少數(shù)理模型固有偏差;另一方面,可通過增加網(wǎng)格規(guī)模,提高時(shí)空分辨率,減小離散偏差。事實(shí)上,前者的實(shí)現(xiàn)相對(duì)困難[4],較為現(xiàn)實(shí)的解決方案是通過大量試驗(yàn)數(shù)據(jù),對(duì)數(shù)理模型進(jìn)行校正,需要消耗大量的人力、物力和時(shí)間;而后者則可通過基于超算的大規(guī)模并行計(jì)算實(shí)現(xiàn),相對(duì)容易。同時(shí),航空發(fā)動(dòng)機(jī)精細(xì)化設(shè)計(jì)需求,牽引著跨學(xué)科優(yōu)化設(shè)計(jì)、多學(xué)科耦合設(shè)計(jì)、整機(jī)仿真、數(shù)字孿生[5]等技術(shù)不斷發(fā)展,而支撐這些技術(shù)發(fā)展最基本、不可或缺的工具就是具備大規(guī)模并行計(jì)算能力的全三維內(nèi)流數(shù)值仿真軟件。

        綜上,發(fā)展大規(guī)模并行全三維內(nèi)流仿真軟件的需求重要且緊迫。但是,理論起點(diǎn)高且可靠穩(wěn)定的大規(guī)模并行全三維內(nèi)流數(shù)值仿真軟件開發(fā)屬于典型的多學(xué)科交叉課題,集成了物理、數(shù)學(xué)和計(jì)算機(jī)專業(yè)知識(shí),難度很大。相對(duì)而言,基于并行框架的代碼重構(gòu),能夠集成國(guó)內(nèi)外各專業(yè)優(yōu)勢(shì)資源,實(shí)現(xiàn)高水平大規(guī)模并行軟件開發(fā),是一種合理可行的軟件研發(fā)技術(shù)路徑。

        并行框架基本概念及存量代碼現(xiàn)狀

        框架(framework)是整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實(shí)例間交互的方法,即針對(duì)特定應(yīng)用領(lǐng)域的、可復(fù)用的軟件架構(gòu)解決方案。并行框架是按框架特定應(yīng)用領(lǐng)域角度劃分的一類框架的泛稱,所針對(duì)的應(yīng)用領(lǐng)域?yàn)橛善⒎址匠探M描述的大規(guī)模并行科學(xué)計(jì)算問題。并行框架通過封裝高性能的數(shù)據(jù)結(jié)構(gòu)、成熟的并行算法,屏蔽大規(guī)模并行計(jì)算技術(shù),使用戶只需按照框架提供的軟件架構(gòu)方案,就能夠開發(fā)出高效運(yùn)行于現(xiàn)代高性能超算上的、實(shí)施大規(guī)模數(shù)值仿真的并行程序。

        目前,國(guó)內(nèi)航空發(fā)動(dòng)機(jī)主機(jī)所普遍使用的全三維內(nèi)流仿真軟件仍為國(guó)外商業(yè)軟件,如Fine/Turbo、CFX、Fluent等,但國(guó)內(nèi)多所高校都開發(fā)了具有自主知識(shí)產(chǎn)權(quán)的全三維內(nèi)流數(shù)值仿真軟件,部分軟件具備并行計(jì)算能力。特別是北京航空航天大學(xué)寧方飛教授開發(fā)的MAP等內(nèi)流仿真軟件,已在各航空發(fā)動(dòng)機(jī)主機(jī)所試用多年,在模擬精度、計(jì)算速度、并行效率、工程實(shí)用性等方面均有較好表現(xiàn),獲得了業(yè)內(nèi)普遍認(rèn)可。同時(shí),國(guó)內(nèi)高校研發(fā)的全三維內(nèi)流數(shù)值仿真軟件的開發(fā)主體的專業(yè)領(lǐng)域幾乎無一例外為流體動(dòng)力學(xué),計(jì)算機(jī)專業(yè)知識(shí)相對(duì)欠缺,所編制的程序面向過程,缺少封裝和規(guī)范,程序?qū)哟尾粔蚯逦鷩?yán)謹(jǐn),可維護(hù)性不好,大規(guī)模并行計(jì)算方案缺少深度優(yōu)化。因此,直接將國(guó)內(nèi)高校研發(fā)的全三維內(nèi)流數(shù)值仿真軟件用于大規(guī)模并行計(jì)算,從長(zhǎng)遠(yuǎn)看并非最佳選擇。

        存量代碼重構(gòu)

        圖1 多塊分區(qū)與多patch分區(qū)

        存量代碼重構(gòu)的核心優(yōu)勢(shì)在于能夠集成各方優(yōu)勢(shì)資源,讓最專業(yè)的人做最擅長(zhǎng)的事。而存量代碼重構(gòu)并非存量代碼的簡(jiǎn)單翻譯或復(fù)用,有各種問題需要解決和規(guī)范?;诳蚣艿拇媪看a重構(gòu),則需要按框架規(guī)定的架構(gòu)重構(gòu)存量代碼??蚣艿淖饔檬羌軜?gòu)搭建、內(nèi)存管理、流程控制、并行管理等,存量代碼負(fù)責(zé)在并行計(jì)算單元補(bǔ)?。╬atch)上求解數(shù)理模型,主要包括架構(gòu)重構(gòu)、變量重構(gòu)和流程重構(gòu)等3個(gè)環(huán)節(jié)。本文以針對(duì)葉輪機(jī)的全三維定常流場(chǎng)數(shù)值仿真程序(簡(jiǎn)稱為存量代碼,其部分特征如圖1所示)的重構(gòu)為例,簡(jiǎn)單歸納存量代碼的重構(gòu)環(huán)節(jié)和重構(gòu)方案。

        架構(gòu)重構(gòu)

        由于存量代碼是面向過程編制的,所以沒有嚴(yán)格意義的架構(gòu)設(shè)計(jì)。并行框架則基于邦元(federate)、網(wǎng)格層和網(wǎng)格片,設(shè)計(jì)了逐層調(diào)用的架構(gòu)模型。

        就葉輪機(jī)內(nèi)流求解問題而言,葉輪機(jī)定常流場(chǎng)求解以葉排為單位,具有當(dāng)?shù)匦?;同時(shí),流體域控制方程與轉(zhuǎn)靜交界面控制方程是完全不同的兩類方程,求解方法不同,求解相互獨(dú)立。因此,在架構(gòu)設(shè)計(jì)時(shí)引入了邦元的概念,即將流體域求解與轉(zhuǎn)靜交界面求解封裝在不同邦元內(nèi),通過聯(lián)邦(federation)構(gòu)件,實(shí)現(xiàn)流體域與轉(zhuǎn)靜交界面之間的、由轉(zhuǎn)靜交界面隔開的不同流體域之間的通信;邦元內(nèi)的通信則由網(wǎng)格層數(shù)值構(gòu)件實(shí)現(xiàn)。從理論上看,邦元層的引入,對(duì)葉輪機(jī)內(nèi)流的大規(guī)模并行計(jì)算和軟件的擴(kuò)展維護(hù)等方面,都會(huì)產(chǎn)生積極效果。具體而言,包括流場(chǎng)求解與轉(zhuǎn)靜交界面求解相互獨(dú)立、互不影響,可有效減小協(xié)調(diào)拼接、非協(xié)調(diào)拼接單元搜索范圍,提高運(yùn)算速度;由于多數(shù)并行通信只需在邦元內(nèi)進(jìn)行,所以可有效減小并行通信規(guī)模。

        圖2 葉輪機(jī)內(nèi)流并行方案

        圖3 4層調(diào)用架構(gòu)

        重構(gòu)后程序的分層調(diào)用架構(gòu)如圖2、圖3所示。對(duì)于數(shù)理模型求解,建議通過匹配接口,直接將存量代碼接入重構(gòu)后程序,也就是盡量復(fù)用存量代碼。這樣,不僅能夠有效提高重構(gòu)工作效率,而且在很大程度上能夠避免數(shù)理模型模塊重構(gòu)出現(xiàn)錯(cuò)誤。

        變量重構(gòu)

        變量按類型分為場(chǎng)變量和非場(chǎng)變量,由于是多核分區(qū)并行,所以場(chǎng)變量要參與分區(qū)并行計(jì)算,非場(chǎng)變量一般用于流程控制和邊界條件存儲(chǔ)等。變量按作用域分為全局變量和局部變量。局部變量按作用域一般分為類私有變量,只在某個(gè)函數(shù)/子程序內(nèi)定義的局部變量。變量重構(gòu)的要點(diǎn)是甄別變量的類型和作用域。

        針對(duì)存量代碼的變量定義方式,可采用如下的變量重構(gòu)方案。

        一是通過Module定義的全局變量。若為場(chǎng)變量,則必須按框架提供的變量定義、內(nèi)存開辟、調(diào)用策略,在主流程中統(tǒng)一定義、開辟內(nèi)存,在功能模塊patch層取用。

        二是通過Module定義的非場(chǎng)變量。目前的實(shí)踐是,用結(jié)構(gòu)體在主流程中定義、開辟內(nèi)存,可以在任意需要的地方調(diào)用。從形式上看,Module和結(jié)構(gòu)體的變量定義方式非常相似,通過指針關(guān)聯(lián),可以將主流程中定義的結(jié)構(gòu)體變量與存量代碼中定義的Module量對(duì)接,從而在存量代碼中可以沿用變量的Module定義方式及使用習(xí)慣。

        三是用save標(biāo)記局部變量。所標(biāo)記局部變量在子程序退出時(shí)不被釋放,從而在下次使用時(shí),仍為前次退出值。事實(shí)上,現(xiàn)代編譯器對(duì)于局部變量,在調(diào)用后釋放內(nèi)存,失去取值是正常的,所以重構(gòu)程序不保留save屬性,也就是將用save標(biāo)記的變量,按作用域升級(jí)為類私有變量或全局變量。

        流程重構(gòu)

        流程重構(gòu)是指在已經(jīng)給定的程序架構(gòu)下,填充主計(jì)算流程及各功能模塊計(jì)算流程。

        主計(jì)算流程主要包括時(shí)間推進(jìn)求解流程、求解前數(shù)據(jù)準(zhǔn)備和求解后數(shù)據(jù)處理等。主計(jì)算流程重構(gòu),主要是將存量代碼的主計(jì)算流程重構(gòu)至程序架構(gòu)相應(yīng)位置,即主函數(shù)層與聯(lián)邦層(federal level)。主流程重構(gòu)是流程控制邏輯的重構(gòu),存量代碼不能直接復(fù)用。在重構(gòu)時(shí),還需要在聯(lián)邦層調(diào)用邦元并行構(gòu)件,完成邦元間并行通信。

        在主計(jì)算流程重構(gòu)時(shí),要特別注意梳理、優(yōu)化、準(zhǔn)確把握主計(jì)算流程控制邏輯,否則容易形成混亂、隱藏問題,為軟件調(diào)試、使用、維護(hù)和發(fā)展留下隱患。

        功能模塊計(jì)算流程重構(gòu),主要是將存量代碼各功能模塊的計(jì)算流程重構(gòu)至程序架構(gòu)相應(yīng)位置,即功能模塊Level層。與主流程重構(gòu)類似,功能模塊流程重構(gòu)也是流程控制邏輯的重構(gòu),主要通過邦元內(nèi)并行構(gòu)件的搭建實(shí)現(xiàn),存量代碼同樣不能直接復(fù)用。另外,注意到邦元遍歷等價(jià)于葉排遍歷,故而在計(jì)算流程重構(gòu)時(shí),可以利用該特點(diǎn)進(jìn)行流程簡(jiǎn)化。

        與主計(jì)算流程不同的是,功能模塊計(jì)算流程要簡(jiǎn)單得多,其重構(gòu)重點(diǎn)不是流程控制邏輯,而是并行重構(gòu)。這是由于存量代碼是面向過程編制,并行通信位置靈活多樣,但重構(gòu)程序必須在架構(gòu)規(guī)定的層級(jí),用規(guī)定的通信構(gòu)件完成并行通信。因此,存量代碼涉及并行通信的部分,往往需要按照存量代碼的通信變量/長(zhǎng)度、通信類型、通信目的、與前后續(xù)計(jì)算的關(guān)系等重新組織。例如,存量代碼往往將并行通信置于涵道/葉排/通道的循環(huán)體內(nèi),重構(gòu)時(shí)需要把并行通信置于循環(huán)體外,通過調(diào)用規(guī)約構(gòu)件實(shí)現(xiàn)。

        顯而易見,存量代碼并行重構(gòu)后,對(duì)于并行通信,特別是涵道/葉排/通道遍歷通信問題,由于需要多次遍歷,可能會(huì)犧牲一些運(yùn)算效率。但毋庸置疑,重構(gòu)后程序的層次更為嚴(yán)謹(jǐn),具備更好的可維護(hù)性。

        存量代碼重構(gòu)結(jié)果

        數(shù)理模型匯總

        中國(guó)航發(fā)研究院氣動(dòng)仿真軟件研發(fā)團(tuán)隊(duì)是一個(gè)跨專業(yè)的、以內(nèi)流數(shù)值仿真技術(shù)應(yīng)用研究和代碼編制、測(cè)試與維護(hù)為主要工作的年輕團(tuán)隊(duì)。團(tuán)隊(duì)基于框架、針對(duì)葉輪機(jī)內(nèi)流重構(gòu)的仿真程序采用的主要數(shù)理模型見表1。由于數(shù)理模型源自存量代碼,所以數(shù)理模型的精度、穩(wěn)定性、跨聲內(nèi)流求解適用性等均屬于主流水平。特別是由于程序采用了隱式時(shí)間推進(jìn)求解,并引入了葉輪機(jī)初場(chǎng)求解模板,使得該程序具備了與商業(yè)軟件同量級(jí)的內(nèi)流求解收斂速度、較商業(yè)軟件更強(qiáng)的葉輪機(jī)逆壓流場(chǎng)綜合求解能力的特點(diǎn)。

        圖4 單級(jí)風(fēng)扇

        表1 氣動(dòng)仿真模塊數(shù)理模型列表

        表2 跨聲單級(jí)風(fēng)扇設(shè)計(jì)指標(biāo)

        單級(jí)風(fēng)扇校驗(yàn)

        以單級(jí)跨聲速風(fēng)扇為例,其基于重構(gòu)前存量代碼與重構(gòu)后并行程序的流程求解結(jié)果如圖4所示,重構(gòu)前后的流場(chǎng)計(jì)算除轉(zhuǎn)靜交界面模型不同外,網(wǎng)格劃分與計(jì)算設(shè)置方法包括邊界條件、并行計(jì)算設(shè)置、初場(chǎng)條件等(見表2)保持完全一致。

        圖5 近壁面相對(duì)馬赫數(shù)計(jì)算結(jié)果

        圖6 風(fēng)扇總體性能特性圖

        圖7 氣動(dòng)仿真模塊計(jì)算內(nèi)核耗時(shí)對(duì)比

        重構(gòu)前后風(fēng)扇流場(chǎng)計(jì)算的結(jié)果對(duì)比如圖5、圖6所示。表3列出100%轉(zhuǎn)速設(shè)計(jì)點(diǎn)總體性能計(jì)算結(jié)果的詳細(xì)對(duì)比??梢姡貥?gòu)前后的葉輪機(jī)內(nèi)流求解基本一致,重構(gòu)偏差處于較低水平。事實(shí)上,即便存量代碼完全復(fù)用,由于計(jì)算機(jī)截?cái)嗾`差、非線性函數(shù)使用、流場(chǎng)求解駐渦、脫落渦等固有非穩(wěn)定結(jié)構(gòu)等,重構(gòu)過程也不可避免地會(huì)引入重構(gòu)偏差。另外,就本文算例而言,不同的轉(zhuǎn)靜交界面也是不可忽略的偏差源。

        重構(gòu)前后程序及其與主流商業(yè)軟件并行計(jì)算耗時(shí)的定性比較如圖7所示。有必要說明,一方面,存量代碼關(guān)于轉(zhuǎn)靜交界面的計(jì)算量大于重構(gòu)后程序,所以重構(gòu)前后程序計(jì)算耗時(shí)對(duì)比并不嚴(yán)謹(jǐn);另一方面,重構(gòu)程序并行方案是否較優(yōu)需要基于超算的大規(guī)模并行計(jì)算進(jìn)行評(píng)估。此處的耗時(shí)比較只是為了對(duì)重構(gòu)代碼的計(jì)算速度有初步感性認(rèn)識(shí)。

        結(jié)束語

        隨著計(jì)算機(jī)軟硬件不斷發(fā)展和數(shù)值仿真技術(shù)不斷成熟,內(nèi)流數(shù)值仿真技術(shù)被逐漸引入航空發(fā)動(dòng)機(jī)通流部件氣動(dòng)設(shè)計(jì)、性能評(píng)估等諸多方面并發(fā)揮著越來越重要的作用。與此同時(shí),發(fā)展大規(guī)模并行全三維內(nèi)流仿真軟件的必要性也日益凸顯。綜合考慮目前條件,并通過實(shí)踐驗(yàn)證,基于并行框架的代碼重構(gòu)不失為一種合理可行的大規(guī)模并行軟件研發(fā)技術(shù)路徑,可為航空發(fā)動(dòng)機(jī)的研發(fā)提供助力。

        猜你喜歡
        數(shù)理存量代碼
        踐行“德融數(shù)理” 打造“行知樂園”
        存量時(shí)代下,房企如何把握舊改成本?
        數(shù)理:多少人吃飯
        孩子(2019年9期)2019-11-07 01:35:49
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        最天然呆筆記 誰說數(shù)理就一定枯燥艱深?
        吉林存量收費(fèi)公路的PPP改造
        腐敗存量
        東西南北(2015年9期)2015-09-10 07:22:44
        一本一道波多野结衣av中文| 中文字幕熟女激情50路| 亚洲av网站在线观看一页| 中文字幕乱码熟妇五十中出| 丰满人妻妇伦又伦精品国产| 国产国拍亚洲精品永久69| 精品一区二区三区牛牛| 亚洲成a∨人片在线观看无码| 久久精品娱乐亚洲领先| 国产精品午夜波多野结衣性色| 一区二区三区国产大片| 国产午夜激无码AV毛片不卡| 少妇人妻av一区二区三区| 人妻av中文字幕久久| 四川老熟女下面又黑又肥| 91精品久久久久含羞草| 亚洲免费一区二区av| 免费又黄又爽又色的视频| 最近中文字幕视频高清| 精品亚洲一区二区99| 内射爆草少妇精品视频| 内射人妻视频国内| 亚洲欲色欲香天天综合网| 亚洲人成伊人成综合网中文 | 日本丰满熟妇hd| 午夜视频网址| 日本一级三级在线观看| 真实国产乱子伦精品视频| 久热在线播放中文字幕| 中文字幕日本熟妇少妇 | 粗一硬一长一进一爽一a视频| 天堂一区二区三区在线观看视频| 男女性高爱潮免费网站| 91青草久久久久久清纯| 少妇被啪出水在线视频| 国产精品中文久久久久久久| 国产高中生在线| 日本熟妇裸体视频在线| 久久精品国产99国产精品亚洲| 欧美午夜精品久久久久久浪潮| 亚洲一区二区三区在线|