APP下载

HDF5数据格式在核反应堆计算软件中的应用研究1)

2018-12-28冯晋涛潘俊杰

中国核电 2018年4期
关键词:数据格式数据类型堆芯

芦 韡,冯晋涛,潘俊杰

(中国核动力研究设计院 核反应堆系统设计技术重点实验室,四川 成都 610041)

拥有高质量的设计工具是开展科研、工程设计任务的前提条件。核反应堆专用科研、设计计算软件汇集了人们对核反应堆的理论方法、设计、建造和运行经验,它是核反应堆研发设计的必备工具。随着计算机技术与性能的发展和提升,各种高性能计算服务器的应用,核反应堆计算软件的计算规模不断增大,网格数量和精细度不断增加,计算数据也越发庞大,对核反应堆计算软件进行海量数据存储管理和输入/输出 (I/O)能力的需求急剧的增长,因此,对输入输出技术和数据存储管理技术就提出了新的要求。

HDF是用于存储和分发科学数据的一种自我描述、多对象文件格式,由美国国家高级计算应用中心NCSA(National Center f or Superco mputing Applications,NCSA)创建,以满足不同群体的科学家在不同工程项目领域的需要,其最新版本HDF5格式在气象、遥感等领域已有较为深入应用。本文针对反应堆堆芯数据管理、存储的需求,包括组件各项中子学参数、堆芯各项中子学参数以及堆芯各项热工水力参数等,通过对HDF5数据格式及其编程技术的研究,将其成功应用到中国核动力研究设计院自主研发的先进中子学栅格计算软件KYLIN-2、先进节块法堆芯三维少群中子学计算软件CORCA-3D、堆芯热工水力子通道分析软件CORT H中,为反应堆堆芯数值计算领域的数据存储管理和高效I/O问题提供解决方案。

1 HDF5数据格式特性

1.1 HDF5文件组织

HDF5文件是一个由两种基本数据对象 (分别为HDF5群组Groups与HDF5数据集Datasets)存放多种数据的容器,其中HDF5群组是包含0个或多个HDF5对象以及支持元数据(metadata)的一个群组结构,HDF5数据集是数据元素的一个多维数组以及支持元数据。

使用群组和数据集时在许多方面类似于使用UNIX的目录和文件。HDF5文件里的对象经常通过它的绝对路径来引用。通过群组和数据集,可以存储任意复杂的数据。HDF5文件以层次式的方式,有效地建立了文件内各个对象之间的组织方式和逻辑包含关系,如图1所示。

图1 HDF5数据模型结构Fig.1 Data model of HDF5

在创建HDF5数据格式文件时,需创建 “群组+数据集”,创建群组时需在应用程序中指明群组的位置、名称,而创建数据集时则需指明数据集的位置、名称、数据类型、数据空间以及创建特性列表等信息。

1)数据类型:HDF5数据集包含两种数据类型,元数据类型 (ato mic)和复合数据类型(co mposite)。元数据类型在API层面上不能分解称更小的数据类型单位,它包括整型(integer),浮点型 (float),日期和时间 (date and ti me),字符串 (string),比特域 (bitfield),非透明 (opaque)等数据类型。复合数据类型是一个或多个元数据类型 (和/或这些数据类型的数组)的集合。如图2所示。

图2 HDF5数据类型Fig.2 Data type of HDF5

2)数据空间:HDF5数据空间描述了数据数组的维度。数据空间或者是数据点的有规则的N维数组 (称为简单数据空间),或者是由其他方式组成的更加通用的数据集合 (称为复杂数据空间)。数据集的维数可以是固定的,也可以是可扩展的。数据空间也可以描述一个数据集的一部分,这就使得对选取的数据集进行局部I/O操作成为可能。

3)创建特性列表:创建数据集时,HDF5允许用户指定原始数据在磁盘上如何组织和压缩。这个信息存放在数据集创建特性列表中,并传递给数据集接口。磁盘上的这个原始数据集能被连续存放 (与内存管理中的线性方式相同)、分成大块 (chunks)存放、外部存放等。

1.2 HDF5文件针对反应堆数值计算领域的适用性分析

反应堆数值计算领域常用的计算数据文件组织形式为十进制或二进制文本文件。与传统的数据存储方式比较,HDF5文件能较好地解决了计算数据存储管理中存在的众多问题,HDF5文件在反应堆数值计算领域的主要优势如下。

(1)数据存储规模无限性

除去硬件条件的限制,HDF5数据格式不限制单个HDF5文件大小,常规数据文件一般不能超过2 GB,而HDF5对超过4 GB的数据仍然能够流畅存储。随着反应堆数值计算精细化程度的不断提高,相应的计算数据可能达到数GB的规模,HDF5文件能有效的解决反应堆堆芯计算数据的存储规模问题。

(2)跨平台和可移植性

目前主流的核反应堆计算软件的编程语言包括C、C++、Fortran和Java等,运行平台包括UNIX、Linux和Windows等。HDF5文件具有C、C++、Java和Fortran90程序接口,支持跨平台在不同的计算环境中访问数据,很好地适用于不同编程语言及不同运行平台的核反应堆计算软件。

(3)并行I/O和局部I/O机制

反应堆堆芯计算数据规模较为庞大,I/O时间开销较大。HDF5文件实现了一个虚拟文件层,提供了多I/O机制,HDF5并行I/O驱动器支持并行的将数据写到HDF5文件中,局部I/O机制则能使开发者和用户精确地读写需要的数据,从而提高数据访问效率。

此外,HDF5文件还具有自我描述性、数据模型通用性、数据存储机制的灵活性等特点,丰富的层次结构为用户表达数据结构提供了极大的灵活性。

1.3 HDF5文件编程实现

HDF5函数库 (HDF5 Librar y)提供了一系列应用程序接口 (API)。这些API提供用于创建、存取、处理HDF5文件和对象的例程。HDF5函数库是由C语言实现的,也包括使用Fortran90和Java编写的外壳函数,可通过以上3种编程语言在反应堆数值计算软件中进行HDF5库文件的读写操作。

使用HDF5函数库进行数据写入的流程如图3所示。

HDF5中用来存放数据与定位数据的结构分别是DataSet与hyperslab,使用方式如下:

1)定义数据集之前,需指定数据类型、数据空间、存储布局、未初始化数据的默认值等。数据集具有可扩展性,可以根据需要实时扩展数据空间的大小,从而改变数据集的容量。

2)读或写数据都需要先定位到数据空间中将要读写的位置,然后调用write或者read函数进行存取。

在层次数据结构中,访问HDF5文件内容类似Windows文件夹的访问:首先指定文件名,然后以 “/”来表示层次。例如/Data/FEMData表示某文件内名称为Data的群组下面的一个名为FEMData的群组或者数据集。HDF5支持部分I/O,可以有选择性的读写数据集中的一部分数据,这个机制是通过Hyperslab来实现的。部分I/O避免多余的内存数据拷贝,保证数据存储效率。

图3 HDF5文件数据写入流程Fig.3 Write flow of HDF5

2 HDF5数据格式的应用

针对反应堆组件中子学、堆芯中子学、堆芯热工水力数据的特点,设计并实现了基于HDF5数据格式的组件中子学参数库KYMRES(KYlin-2 Main RESults databank)、堆芯中子学参数库COMRES(COrca-3D Main RESults databank)和堆芯热工水力参数库THMRES(Ther mal-Hydraulic subchannel Main RESults databank)。

HDF5文件的优势之一是能对数据进行分层分组的管理,上述参数库的设计正是基于这一思路开展。

2.1 采用HDF5数据格式的组件中子学参数库

组件中子学参数库KY MRES包含基础数据和状态点 (分支)数据,其中基础数据可划分为几何数据、选项数据等,状态点数据则包括二维分布场:中子通量、功率、截面、核密度等。KYMRES库具体形式如图4所示。KYMRES库成功应用于先进中子学栅格 (组件)计算软件KYLIN-2中,可用于软件自身再启动计算和下游堆芯计算。同时,KYMRES库包含了KYLIN-2软件所有的计算输出信息,由于HDF5文件提供了专用的文件查看工具,因此KYMRES库也可作为KYLIN-2软件的输出文件提供给用户使用。

2.2 采用HDF5数据格式的堆芯中子学参数库

堆芯中子学参数库COMRES是具备主要信息的堆芯三维数据库,提供给堆芯后续计算使用,如首循环装载计算、换料循环装载计算提供给堆芯燃耗计算的堆芯数据库、历史循环的燃耗计算提供给换料循环装载计算的堆芯数据库。

COMRES库包含基础数据和燃耗步数据,其中基础数据包括不随燃耗或堆芯状态变化的堆芯几何模型、燃料组件装载等信息,燃耗步数据则包括随燃耗或堆芯状态变化的堆芯总体、组件、节块、燃料棒等不同尺度下的各类参数,如中子通量、功率、截面、核密度等参数的三维分布场。

COMRES库具体结构形式如图5所示,COMRES库已成功应用于先进节块法堆芯三维少群中子学计算软件CORCA-3D中。

2.3 采用HDF5数据格式的堆芯热工水力参数库

T H MRES库用于存储堆芯各项热工水力参数,依次按照时间步、子通道号、轴向节块号的层次进行数据的存储,存储的数据主要包括流体物性 (流体密度、比焓、导热率),堆芯热工水力参数 (温度、压力、流量),本构关系式参数(摩擦系数、空泡份额、含气率、换热系数),DNBR参数 (不同CHF关系式计算的结果)等。

T H MRES库具备完整的堆芯三维热工水力参数信息,成功应用于堆芯热工水力子通道分析软件CORT H等软件中,可用于CORT H软件再启动计算,堆芯温场、流场三维显示,同时也可作为堆芯多专业耦合系统的接口数据。

T H MRES库第一层为瞬态时间步,第二层为各子通道编号,第三层为子通道内轴向节块,第四层为节块内各参数,具体结构形式如图6所示。

图4 KYMRES库结构Fig.4 Structure of KYMRES

图6 THMRES库结构Fig.6 Structure of TH MRES

3 结 论

本文针对核反应堆计算软件对海量数据存储管理和输入输出 (I/O)的需求,对HDF5数据格式进行了深入研究,掌握了HDF5数据格式的结构、特点、优势,以及HDF5文件的编程接口。针对中国核动力研究设计院自主研发的先进中子学栅格计算软件KYLIN-2、先进节块法堆芯三维少群中子学计算软件CORCA-3D、堆芯热工水力子通道分析软件CORT H对数据存储和处理的需求,设计并实现了基于HDF5文件格式的组件参数库KY MRES、堆芯参数库COMRES、子通道参数库T H MRES。

KY MRES、COMRES和T H MRES库对数据进行了分层分组的管理和存储,KYLIN-2、CORCA-3D和CORT H软件能够十分便捷的对指定的群组或数据集进行存取,无需将数据库整体读入,节省了内存开销,并且软件能够同时对多个群组或数据集进行存取操作。对局部I/O和并行I/O的支持使得上述数据库I/O效率得到了大幅提升。满足了反应堆堆芯数值计算软件的数据存储管理和高效I/O的要求。

猜你喜欢

数据格式数据类型堆芯
新型堆芯捕集器竖直冷却管内间歇沸腾现象研究
新型重水慢化熔盐堆堆芯优化设计
如何理解数据结构中的抽象数据类型
MIT—BIH心率失常数据库的识读
基于RFID的户外广告监管系统的设计与实现
基于SeisBase模型的地震勘探成果数据管理系统设计
线上众筹产品的特征分析与研究
一种融合多业务的信息化系统框架研究
相似度计算及其在数据挖掘中的应用