国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于HDF5文件格式的KYLIN-2軟件組件庫

2018-06-20 06:16馮晉濤柴曉明涂曉蘭陳定勇
計(jì)算機(jī)應(yīng)用 2018年4期
關(guān)鍵詞:堆芯中子群組

馮晉濤,蘆 韡,柴曉明,涂曉蘭,尹 強(qiáng),陳定勇,劉 遠(yuǎn)

0 引言

KYLIN-2是中國核動(dòng)力研究設(shè)計(jì)院自主研發(fā)的先進(jìn)中子學(xué)柵格(組件)計(jì)算軟件[1],采用特征線方法(Method Of Characteristics, MOC)求解器[2],支持任意幾何中子輸運(yùn)計(jì)算,并利用廣義粗網(wǎng)格有限差分加速方法(Generalized Coarse Mesh Finite Difference method,GCMFD)來加速中子輸運(yùn)求解流程[3],采用基于改進(jìn)預(yù)估修正臨界-燃耗迭代方法PPC(Projected Predictor-Corrector)的切比雪夫方法求解復(fù)雜燃耗鏈[4],可得到非常精細(xì)化的計(jì)算結(jié)果,因此,KYLIN-2軟件對(duì)海量數(shù)據(jù)的存儲(chǔ)和處理存在迫切的需求。

由于核反應(yīng)堆中子學(xué)計(jì)算領(lǐng)域的特殊性,核反應(yīng)堆中子學(xué)計(jì)算軟件均需支持再啟動(dòng)計(jì)算功能,使用戶能夠基于上一次計(jì)算結(jié)束時(shí)的狀態(tài)繼續(xù)進(jìn)行計(jì)算,KYLIN-2軟件也不例外。為實(shí)現(xiàn)再啟動(dòng)計(jì)算功能,需要將軟件核心數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)在計(jì)算結(jié)束時(shí)全部存儲(chǔ)到外部庫文件(組件庫)。同時(shí)KYLIN-2軟件需要向下游堆芯中子學(xué)計(jì)算軟件提供組件均勻化中子學(xué)參數(shù),這部分?jǐn)?shù)據(jù)也需存儲(chǔ)到組件庫中。

目前,主流的科學(xué)計(jì)算數(shù)據(jù)存儲(chǔ)形式和標(biāo)準(zhǔn)格式有:ASCII文件、二進(jìn)制文本文件、普適圖像傳輸系統(tǒng)(Flexible Image Transport System, FITS)[5]、網(wǎng)絡(luò)通用數(shù)據(jù)類型(Network Common Data Form, NetCDF)[6]、二進(jìn)制通用氣象數(shù)據(jù)表示格式(Binary Universal Form of the Representation of meteorological data, BUFR)[7]、分層數(shù)據(jù)存儲(chǔ)格式v5(Hierarchical Data Format v5, HDF5)[8]等。ASCII文件和二進(jìn)制文本文件在各領(lǐng)域均應(yīng)用較為廣泛,但其劣勢(shì)明顯;FITS是天文學(xué)標(biāo)準(zhǔn)的圖像傳輸格式;NetCDF和BUFR格式在大氣、氣象等領(lǐng)域得到深入應(yīng)用;HDF5格式的應(yīng)用領(lǐng)域則較多,包括航天、遙感、金融、能源等。

對(duì)于KYLIN-2軟件中數(shù)據(jù)存儲(chǔ)和處理的需求,例如數(shù)據(jù)大小超過4 GB、需支持并行I/O等,在上述數(shù)據(jù)格式中僅有HDF5文件格式能滿足。因此,本文設(shè)計(jì)實(shí)現(xiàn)了基于HDF5文件格式的組件庫KYMRES(KYlin-2 Main RESults databank),該庫采取分層數(shù)據(jù)存儲(chǔ),便于KYLIN-2軟件對(duì)數(shù)據(jù)進(jìn)行并行I/O和局部I/O。經(jīng)測(cè)試表明,該組件庫能夠適用于KYLIN-2軟件的數(shù)據(jù)存儲(chǔ)管理和高效I/O。

1 HDF5文件格式的特點(diǎn)及優(yōu)勢(shì)

HDF5分層數(shù)據(jù)格式是美國國家高級(jí)計(jì)算應(yīng)用中心(National Center for Supercomputing Applications, NCSA)為了滿足各領(lǐng)域研究需求而研制的一種能高效存儲(chǔ)和分發(fā)科學(xué)數(shù)據(jù)的新型數(shù)據(jù)格式[9]。目前HDF5文件格式在國內(nèi)外核反應(yīng)堆數(shù)值計(jì)算領(lǐng)域已有較為深入的應(yīng)用,如法國堆芯計(jì)算軟件ARTEMIS、美國堆芯計(jì)算軟件包APA等,均有HDF5庫的應(yīng)用。

HDF5文件是一個(gè)由兩種基本數(shù)據(jù)對(duì)象(分別為HDF5群組Groups與HDF5數(shù)據(jù)集Datasets)存放多種數(shù)據(jù)的容器,通過群組和數(shù)據(jù)集,可以存儲(chǔ)任意復(fù)雜的數(shù)據(jù)[10]。HDF5文件以層次式的方式,有效地建立了文件內(nèi)各個(gè)對(duì)象之間的組織方式和邏輯包含關(guān)系,如圖1所示。

圖1 HDF5數(shù)據(jù)模型結(jié)構(gòu)

HDF5文件采用二進(jìn)制格式存儲(chǔ)科學(xué)數(shù)據(jù),支持海量的數(shù)據(jù)對(duì)象和復(fù)雜多樣的數(shù)據(jù)結(jié)構(gòu),其文件格式具有自描述性、存儲(chǔ)規(guī)模無限性(大于4 GB)、數(shù)據(jù)模型通用、數(shù)據(jù)類型多樣靈活、支持并行I/O和局部I/O機(jī)制、跨平臺(tái)和可移植性等特點(diǎn)[11]。

2 KYLIN-2軟件對(duì)組件庫的需求

KYLIN-2軟件的計(jì)算規(guī)模和計(jì)算數(shù)據(jù)龐大,同時(shí)與下游核反應(yīng)堆堆芯中子學(xué)計(jì)算軟件存在數(shù)據(jù)接口,因此對(duì)于組件庫存在以下主要需求:

1)海量數(shù)據(jù)存儲(chǔ)需求。

KYLIN-2軟件采用MOC方法進(jìn)行復(fù)雜幾何中子輸運(yùn)計(jì)算,計(jì)算網(wǎng)格精細(xì)化程度高,相應(yīng)的計(jì)算數(shù)據(jù)將會(huì)達(dá)到數(shù)GB的規(guī)模,因此,組件庫需要實(shí)現(xiàn)數(shù)GB規(guī)模數(shù)據(jù)的流暢存儲(chǔ)及讀寫。

2)并行I/O需求。

由于反應(yīng)堆組件中子學(xué)計(jì)算規(guī)模龐大,KYLIN-2軟件實(shí)現(xiàn)了并行計(jì)算功能,這就需要組件庫能夠支持并行I/O機(jī)制;同時(shí),由于組件庫數(shù)據(jù)讀寫頻繁,需要提供局部I/O機(jī)制使軟件能夠精確地讀寫需要的數(shù)據(jù),提高數(shù)據(jù)訪問效率。

目前反應(yīng)堆中子學(xué)數(shù)值計(jì)算領(lǐng)域常用的組件庫組織形式為十進(jìn)制或二進(jìn)制文本文件。針對(duì)以上需求,常規(guī)文本文件已無法滿足要求,如KYLIN-2采用傳統(tǒng)文本格式組件庫,對(duì)KYLIN-2軟件功能與性能將造成較大影響,而HDF5文件對(duì)超過4 GB的數(shù)據(jù)能夠流暢存儲(chǔ)及讀寫,支持在不同的計(jì)算環(huán)境中訪問數(shù)據(jù),支持并行I/O和局部I/O,可以很好地滿足KYLIN-2軟件對(duì)組件庫的需求。

3 組件庫設(shè)計(jì)

根據(jù)KYLIN-2軟件對(duì)組件庫的需求,本文共設(shè)計(jì)了兩種類型的組件庫,分別是:用于自身再啟動(dòng)計(jì)算的組件再啟動(dòng)庫KYMRES_Restart和用于下游堆芯計(jì)算的組件多參數(shù)庫KYMRES_Core。

HDF5文件的優(yōu)勢(shì)之一是能對(duì)數(shù)據(jù)進(jìn)行分層分組的管理,組件庫KYMRES的設(shè)計(jì)正是基于這一思路開展。

同時(shí),為增強(qiáng)KYMRES庫的可用性,提高檢索效率,在設(shè)計(jì)時(shí)將軟件數(shù)據(jù)結(jié)構(gòu)直接映射到KYMRES庫的結(jié)構(gòu)中,同一軟件模塊的數(shù)據(jù)設(shè)計(jì)為一個(gè)群組,群組內(nèi)以結(jié)構(gòu)體為單位設(shè)計(jì)子群組,結(jié)構(gòu)體內(nèi)變量則設(shè)計(jì)為子群組內(nèi)的數(shù)據(jù)集。這樣設(shè)計(jì)的好處在于,可十分便捷高效地在軟件數(shù)據(jù)結(jié)構(gòu)和KYMRES庫之間交換數(shù)據(jù)。

3.1 組件再啟動(dòng)庫

根據(jù)上述設(shè)計(jì)思路,將再啟動(dòng)計(jì)算所需數(shù)據(jù)劃分為基礎(chǔ)數(shù)據(jù)和燃耗數(shù)據(jù),其中基礎(chǔ)數(shù)據(jù)可劃分為幾何數(shù)據(jù)、選項(xiàng)數(shù)據(jù)、截面庫數(shù)據(jù)和用于輸出的信息數(shù)據(jù),燃耗數(shù)據(jù)可劃分為材料相關(guān)數(shù)據(jù)和每個(gè)燃耗步相關(guān)數(shù)據(jù)。這樣繼續(xù)分層劃分,直到變量這一層形成數(shù)據(jù)集,KYMRES_Restart庫具體形式如圖2所示。以幾何數(shù)據(jù)為例,將幾何數(shù)據(jù)按照其對(duì)應(yīng)的結(jié)構(gòu)體劃分為問題邊界條件、粗網(wǎng)格、射線等群組,每個(gè)群組內(nèi)部再按各結(jié)構(gòu)體成員變量形成數(shù)據(jù)集。

由于組件再啟動(dòng)庫KYMRES_Restart對(duì)數(shù)據(jù)進(jìn)行了分層分組的管理和存儲(chǔ),KYLIN-2軟件能夠十分便捷地對(duì)指定的群組或數(shù)據(jù)集進(jìn)行存取,無需將組件庫整體讀入,節(jié)省了內(nèi)存開銷,并且軟件能夠同時(shí)對(duì)多個(gè)群組或數(shù)據(jù)集進(jìn)行存取操作。對(duì)局部I/O和并行I/O的支持使得組件庫I/O效率得到了大幅提升。

KYMRES_Restart庫包含了KYLIN-2軟件所有的計(jì)算輸出信息,由于HDF5文件提供了專用的文件查看工具,因此KYMRES_Restart庫也可作為KYLIN-2軟件的輸出文件提供給用戶使用。

3.2 組件多參數(shù)庫

組件多參數(shù)庫KYMRES_Core用于向下游堆芯計(jì)算軟件提供必要的數(shù)據(jù),根據(jù)下游堆芯計(jì)算軟件提出的數(shù)據(jù)需求,KYMRES_Core庫中包含了各分支計(jì)算數(shù)據(jù)和初始數(shù)據(jù),其中,初始數(shù)據(jù)包含了柵格數(shù)量、裂變反應(yīng)的核素?cái)?shù)量、能群數(shù)量等一系列計(jì)算初始信息,每個(gè)分支計(jì)算數(shù)據(jù)由各燃耗步計(jì)算數(shù)據(jù)和與燃耗計(jì)算無關(guān)的狀態(tài)參數(shù)組成,燃耗步計(jì)算數(shù)據(jù)則包含不連續(xù)因子、燃耗形狀因子、宏觀截面、微觀截面等一系列參數(shù)。KYMRES_Core庫具體結(jié)構(gòu)形式如圖3所示。

圖2 KYMRES_Restart庫結(jié)構(gòu)

圖3 KYMRES_Core庫結(jié)構(gòu)

4 組件庫的實(shí)現(xiàn)

HDF5函數(shù)庫(HDF5 Library)提供了一系列應(yīng)用程序接口(Application Programming Interface, API)[12]。這些API提供用于創(chuàng)建、存取、處理HDF5文件和對(duì)象的例程。HDF5函數(shù)庫是由C語言實(shí)現(xiàn),并提供了C++、Fortran等語言的調(diào)用接口。API列表如表1所示。

表1 HDF5函數(shù)庫API列表

HDF5函數(shù)庫的功能靈活、強(qiáng)大,但由于其內(nèi)部函數(shù)眾多、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)類型獨(dú)立、并且與HDF5文件結(jié)構(gòu)的結(jié)合程度緊密,因此對(duì)軟件開發(fā)人員提出了較高的要求,需要開發(fā)人員對(duì)HDF5文件結(jié)構(gòu)及各API的功能具有十分清晰的認(rèn)知,才能較好地使用HDF5函數(shù)庫實(shí)現(xiàn)需要的功能。

為了降低開發(fā)人員使用HDF5函數(shù)庫的難度,在實(shí)現(xiàn)KYLIN-2軟件組件庫的過程中,總結(jié)了核反應(yīng)堆計(jì)算軟件對(duì)HDF5文件常用的應(yīng)用需求,并根據(jù)需求對(duì)HDF5函數(shù)庫進(jìn)行了二次開發(fā),對(duì)函數(shù)庫的API進(jìn)行了重新組合和封裝,形成了一套HDF5文件讀寫工具,其主要的類和函數(shù)如表2所示。

表2 HDF5讀寫工具主要類和函數(shù)

HDF5讀寫工具使用的均為C++語言自身的數(shù)據(jù)類型,將HDF5函數(shù)庫定義的數(shù)據(jù)類型和結(jié)構(gòu)封裝在工具內(nèi)部,開發(fā)人員可十分便捷地使用HDF5讀寫工具完成HDF5文件的讀寫操作。

本文將HDF5讀寫工具成功應(yīng)用到了KYLIN-2軟件組件庫KYMRES的實(shí)現(xiàn)過程中,使用H5Out類完成了KYMRES庫的創(chuàng)建和寫入,使用H5In類完成了KYMRES庫的讀取操作。

5 組件庫讀寫性能測(cè)試

使用C++語言標(biāo)準(zhǔn)庫提供的典型文本文件存取方法fstream類與基于HDF5文件格式的組件庫KYMRES進(jìn)行讀寫性能對(duì)比測(cè)試。測(cè)試PC:CPU為Intel Core i5-2300 2.80 GHz四核處理器,內(nèi)存容量3 GB,操作系統(tǒng)為Windows XP SP3 32位。

測(cè)試對(duì)象為典型壓水堆17×17網(wǎng)格燃料組件,燃料富集度為1.8%,采用45群截面庫進(jìn)行計(jì)算,由于組件庫的數(shù)據(jù)大小與燃耗計(jì)算的步數(shù)直接相關(guān),因此對(duì)不同燃耗步數(shù)量下生成的KYMRES庫讀寫時(shí)間進(jìn)行測(cè)試,具體測(cè)試用例情況如表3所示。

表3 KYMRES庫讀寫測(cè)試用例

讀取數(shù)據(jù)時(shí)間包括文件打開、讀、關(guān)閉的時(shí)間,寫入數(shù)據(jù)時(shí)間包括打開、寫、關(guān)閉的時(shí)間,測(cè)試結(jié)果如表4~5所示。

表4 不同燃耗步數(shù)量的KYMRES庫寫入時(shí)間比較

表5 不同燃耗步數(shù)量的KYMRES庫讀取時(shí)間比較

測(cè)試結(jié)果表明,HDF5組件庫KYMRES在讀寫方面具有較高的性能,相對(duì)于C++fstream,其寫入效率平均提升到舊算法的4.5倍,讀取效率平均提升到舊算法的2.3倍,在引入并行I/O之后,其讀寫效率將得到進(jìn)一步提升。實(shí)際工程計(jì)算中,組件計(jì)算數(shù)據(jù)將達(dá)到數(shù)10 GB,使用KYMRES庫可以有效地解決核反應(yīng)堆組件計(jì)算軟件數(shù)據(jù)讀寫瓶頸問題。

6 結(jié)語

本文針對(duì)KYLIN-2軟件數(shù)據(jù)存儲(chǔ)和處理的需求,設(shè)計(jì)了基于HDF5文件格式的組件庫KYMRES,總結(jié)了對(duì)HDF5文件常用的應(yīng)用需求并開發(fā)了一套HDF5讀寫工具,應(yīng)用該工具實(shí)現(xiàn)了KYLIN-2軟件組件庫KYMRES。對(duì)不同燃耗步數(shù)量下的KYMRES庫進(jìn)行讀寫測(cè)試表明,KYMRES庫具有較高的I/O性能,能夠適用于KYLIN-2軟件的數(shù)據(jù)存儲(chǔ)管理和高效I/O。

目前,基于HDF5文件格式的計(jì)算數(shù)據(jù)存儲(chǔ)方案已成功推廣應(yīng)用到中國核動(dòng)力研究設(shè)計(jì)院自主研發(fā)的堆芯中子學(xué)計(jì)算軟件、堆芯熱工水力計(jì)算軟件、蒙特卡羅計(jì)算軟件中。同時(shí),由于該方案在海量數(shù)據(jù)存儲(chǔ)和處理方面具有明顯的優(yōu)勢(shì),能夠適用于科學(xué)計(jì)算領(lǐng)域大規(guī)模數(shù)據(jù)的存儲(chǔ)和管理。

參考文獻(xiàn)(References)

[1] 柴曉明, 涂曉蘭, 郭鳳晨, 等.先進(jìn)中子學(xué)柵格程序KYLIN-2的開發(fā)與初步驗(yàn)證[J]. 強(qiáng)激光與粒子束, 2017, 29(1): 94-100.(CHAI X M, TU X L, GUO F C, et al. Development and preliminary V & V for advanced neutron transport lattice code KYLIN-2[J]. High Power Laser and Particle Beams, 2017, 29(1): 94-100.)

[2] 柴曉明, 涂曉蘭, 蘆韡, 等.先進(jìn)中子學(xué)柵格程序KYLIN-2中特征線方法模塊的開發(fā)與驗(yàn)證[J]. 核動(dòng)力工程, 2016, 37(4): 154-159.(CHAI X M, TU X L, LU W, et al. Development and verification and validation of MOC module in advanced neutronics lattice code KYLIN-2[J]. Nuclear Power Engineering, 2016, 37(4): 154-159.)

[3] 蘆韡, 尹強(qiáng), 陳定勇, 等.KYLIN-Ⅱ軟件針對(duì)IAEA板元件基準(zhǔn)題的數(shù)值驗(yàn)證[J]. 核動(dòng)力工程, 2017, 38(4): 168-171.(LU W, YIN Q, CHEN D Y, et al. Numerical verification of KYLIN-Ⅱ code based on IAEA plate fuel benchmark[J]. Nuclear Power Engineering, 2017, 38(4): 168-171.)

[4] 涂曉蘭, 潘俊杰, 柴曉明, 等.中子學(xué)柵格程序KYLIN-Ⅱ可視化圖形建模方法研究和工具開發(fā)[J]. 核動(dòng)力工程, 2017, 38(3): 126-131.(TU X L, PAN J J, CHAI X M, et al. Research and development of visual graphic modeling for advanced neutron transport lattice code KYLIN-Ⅱ[J]. Nuclear Power Engineering, 2017, 38(3): 126-131.)

[5] 劉應(yīng)波, 王鋒, 季凱帆, 等.基于NoSQL的FITS文件頭元數(shù)據(jù)存儲(chǔ)和查詢研究[J]. 計(jì)算機(jī)應(yīng)用研究, 2015, 32(2): 461-465.(LIU Y B, WANG F, JI K F, et al. Research on metadata storage and querying of FITS file based on NoSQL[J]. Application Research of Computers, 2015, 32(2): 461-465.)

[6] 劉俊, 黃興友, 周紅根, 等.基于NetCDF的國產(chǎn)新型氣象雷達(dá)基數(shù)據(jù)通用編碼試驗(yàn)[J]. 氣象科技, 2016, 44(2): 171-176.(LIU J, HUANG X Y, ZHOU H G, et al. Unified coding for domestie new weather radar data based on NetCDF[J]. Meteorological Science and Technology, 2016, 44(2): 171-176.)

[7] 王素娟, 崔鵬, 鄭旭東, 等.氣象衛(wèi)星風(fēng)矢量BUFR編碼[J]. 氣象科技, 2011, 39(3): 339-343.(WANG S J, CUI P, ZHENG X D, et al. Representing atmospheric motion vectors of meteorological satellites in BUFR[J]. Meteorological Science and Technology, 2016, 44(2): 171-176.)

[8] 楊麗鵬, 車永剛.基于HDF5的結(jié)構(gòu)網(wǎng)格計(jì)算流體動(dòng)力學(xué)程序并行I/O技術(shù)[J]. 計(jì)算機(jī)應(yīng)用, 2013, 33(9): 2423-2427.(YANG L P, CHE Y G. HDF5 based parallel I/O technology for structure grid CFD applications[J]. Journal of Computer Applications, 2013, 33(9): 2423-2427.)

[9] 楊麗鵬, 車永剛. 基于HDF5實(shí)現(xiàn)多區(qū)結(jié)構(gòu)網(wǎng)格CFD程序的并行I/O[J]. 計(jì)算機(jī)研究與發(fā)展, 2015, 52(4): 861-868.(YANG L P, CHE Y G. HDF5 based parallel I/O techniques for multi-zone structured grids CFD applications[J]. Journal of Computer Research and Development, 2015, 52(4): 861-868.)

[10] Hierarchical Data Format(HDF) group. HDF5 user’s guide release 1.10.0[EB/OL].(2016- 03- 01) [2017- 03- 29]. https: //support.hdfgroup.org/HDF5/doc/UG/HDF5_Users_Guide.pdf.

[11] 蔡昭權(quán), 吳文忠, 盧慶武, 等.利用HDF5和Esper的高效外匯數(shù)據(jù)分析系統(tǒng)[J]. 計(jì)算機(jī)工程與科學(xué), 2011, 33(4): 159-163.(CAI Z Q, WU W Z, LU Q W, et al. An effective data analy sis system of foreign exchange using HDF5 and esper[J]. Computer Engineering & Science, 2011, 33(4): 159-163.)

[12] Hierarchical Data Format(HDF) group. HDF5 reference manual release 1.8.8[EB/OL].(2011- 11- 01) [2017- 03- 29]. https: //support.hdfgroup.org/HDF5/doc/PSandPDF/HDF5_RefManual.PDF.

This work is partially supported by the Core Ability Enhancement Project of “LongTeng 2020” Technology Innovation Programme of China National Nuclear Corporation (LTJH-NESTORII-1405001), the Fund of Science and Technology on Reactor System Design Technology Laboratory (ZDSY-ZSYX-14-12-001).

猜你喜歡
堆芯中子群組
VVER機(jī)組反應(yīng)堆壓力容器中子輸運(yùn)計(jì)算程序系統(tǒng)的驗(yàn)證
新型堆芯捕集器豎直冷卻管內(nèi)間歇沸騰現(xiàn)象研究
模塊式小型堆嚴(yán)重事故下堆芯應(yīng)急注水策略研究
(70~100)MeV準(zhǔn)單能中子參考輻射場(chǎng)設(shè)計(jì)
3D打印抗中子輻照鋼研究取得新進(jìn)展
Boids算法在Unity3D開發(fā)平臺(tái)中模擬生物群組行為中的應(yīng)用研究
物質(zhì)構(gòu)成中的“一定”與“不一定”