美章网 资料文库 提升数值预报存储效率方法分析范文

提升数值预报存储效率方法分析范文

本站小编为你精心准备了提升数值预报存储效率方法分析参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

提升数值预报存储效率方法分析

摘要:通过有代表性的测试实验,展现了NetCDF4的新特性,对比了3种典型数值预报业务数据使用NetCDF3与NetCDF4存储的性能、NetCDF4连续存储与非连续存储的创建与更新文件性能。经过实验得出:在连续存储时,NetCDF4表现出的性能较NetCDF3更为出色,尤其在数据量很大的情况下,性能提升非常显著;选择合适分块策略的情况下,NetCDF4的优势更是令人耳目一新。测试结果表明,全面使用NetCDF4替代NetCDF3的数值预报产品是可行的,而且将会大大提高程序的效能。

关键词:计算机技术与应用;数值预报;连续存储;分块存储;性能分析

目前,数值预报业务体系已经日益完善,在各级气象台站的日常公众气象预报服务中发挥着越来越重要的作用[1]。特别是为灾害性、关键性、转折性天气的预报服务等提供了定量参考信息,并为预报业务向应用、环境气象领域的拓展提供了有利的技术支持[2-5]。广东省气象数值预报业务平台目前已建立了相对完善的NetCDF数值预报产品库,软件版本为3.6。NetCDF4是使用HDF5存储数据的编程API6]。由于NetCDF4项目使用HDF5存储格式,HDF5独有的压缩能力使数据文件占用的空间大幅度降低[7]。本研究通过几个有代表性的实验回答了:NetCDF4是否比NetCDF3有更好的性能、NetCDF4在什么情况下性能最好或最糟以及如何使用NetCDF4提高应用程序性能等问题,旨在为“广东省气象数值预报业务平台”升级提出指导方案。

1HDF5简介

HDF[8]是由美国国家超级计算应用中心(NCSA)提出,用于存储和分发科学数据的一种自描述、多对象文件格式[9],具有自描述性、通用性、灵活性、扩展性及跨平台性。HDF最新的产品HDF5采用了新的架构,改善了HDF4的一些不足[10-11],表现在3个方面:1)单个文件可以存储更多的对象,文件大小可以超过2Gb字节。2)数据模式更简洁、更全面,它包含2个基本结构:多维数组记录结构和分组结构。3)更简洁的工程库和应用编程接口,支持并行I/O、线程和其他一些现代应用。

2测试用例和测试环境

2.1时间测度

本研究主要对NetCDF文件的创建与更新2个核心过程做时间测算,关注NetCDF文件的写入操作。其中对NetCDF文件创建的时间测量是使用C函数gettimeofday分别获取NetCDF的API函数nc_create之前、nc_close之后的时间,取两者差值;对NetCDF文件写数据的更新操作是使用gettimeofday分别获取nc_open之前、nc_close之后的时间,取两者差值。由于不同的数据预报模式的数据量不同,本研究选取了数据量较小、中等、较大3个有代表性的模式来做测试,分别是月数据量20Gb的欧洲中心32d数值预报(简称ECMWF_S4F)、507Gb的NCEP_GFS模式和955Gb的欧洲中心46d集合预报(简称ECMWF_ENSEXT),参数如表1所示。值得注意的是,本研究所有的月数据量在未特殊说明的前提下均为模式在NetCDF3.6连续存储方式下获得的数据量,同时NetCDF3均指版本3.6。

2.2机器配置

为了对比同一模式在不同存储方式下的实际运行时间,所有测试程序均在同一台服务器上运行。服务器使用了Linux虚拟机,内核版本为CentosLinuxrelease7.1.1503,CPU为4个Intel(R)Xeon(R)CPUE7-4809,每个4核,主频2.0GHz,32Gb内存,gcc版本为4.8.2。

3NetCDF3与NetCDF4性能对比

相对于NetCDF4而言,NetCDF3构建的应用程序只能使用连续存储的方式。而NetCDF4构建的应用程序则既可以选择连续存储的方式,也可以选择分块存储方式。使用表1中描述的数值预报模式信息,将使用连续存储的NetCDF3的性能与使用连续和分块存储的NetCDF4的性能进行比较。

3.1连续存储

以表1中3个数值预报模式为例,分别测试每个模式使用NetCDF3连续存储与NetCDF4连续存储方式创建模式和更新模式所使用的时间(使用3.1节中的时间测度)。由图1可见,月数据量为20.3Gb的ECMWF_S4F模式,不论是创建文件时间,还是更新文件时间,使用NetCDF4连续存储方式都不如NetCDF3连续存储写入时间快。尤其是更新时间,NetCDF3仅仅使用1.98s,速度是NetCDF4连续存储的更新时间的125倍。因此在数据量较小的模式中,不论创建文件还是更新文件,使用NetCDF3效果更好。由图2a-b可见,NCEP_GFS模式使用NetCDF4连续存储方式,创建文件时间是NetC-DF3连续存储方式的1.5倍,减少了600s,效率提升明显。而在更新文件时,NetCDF4和NetC-DF3连续存储的速度相当,没有明显的差异。由此可见,数据量中等规模的模式,相对于NetC-DF3来说,使用NetCDF4连续存储效率更佳。由图2c-d可见,月数据量955Gb的ECM-WF_ENSEXT模式使用NetCDF4连续存储的情况下,创建文件速度是NetCDF3连续存储方式2.7倍,节省了近80min,效率提升非常明显。在更新文件的情况下,比NetCDF3连续存储略快一点,速度较为接近。因此,数据量较大的模式,使用NetCDF4更为可靠。

3.2NetCDF4分块存储

3.2节使用NetCDF4连续存储与NetCDF4分块存储方式进行对比,检验2种方式的性能。其中使用[]来表示分块策略。图3a-b为ECMWF_S4F模式NetCDF4连续、分块存储方式的性能对比,其中分块存储方式使用了[51×31×1×61×61]的分块策略,代表ECMWF_S4F模式分块使用了5维数组,分别为[集合成员×预报时效×层数×纬度×经度],即集合成员分块数为51,预报时效分块数为31,层数分块数为1,纬度分块数为61,经度分块数为61。由图4可见,使用分块策略的ECM-WF_S4F模式在创建文件时,节省了1min,约为连续存储的2/5。而在更新文件时,NetCDF4连续存储需要6min,使用分块策略只要5.86s,速度提升了60倍。由此可见,使用合适的分块存储策略的ECMWF_S4F模式无论创建时间还是更新时间都远远快于NetCDF4连续存储方式。图3c-d为NCEP_GFS模式NetCDF4连续、分块存储方式的性能对比,其中分块存储方式使用了[1×14(1)×141×720]的分块策略。由图5可见,使用该分块策略的NCEP_GFS模式创建全部要素文件使用分块存储方式的NCEP_GFS模式创建时间要远远快于NetCDF4连续存储方式,仅用27.79s,就完成全部25个要素文件的创建,相对于NetCDF4连续存储的1212.09s,速度提升了约44倍。而更新时间二者较为接近,没有明显差异。因此,选择合适的分块策略,NCEP_GFS模式使用分块存储方式比连续存储方式更快更有效。对ECMWF_ENSEXT模式NetCDF4连续、分块存储的性能对比(图4),其中分块存储中前4个高空要素使用了[51×1×7×91×360]分块策略,第5、第6个高空要素使用了[51×1×1×91×360]分块策略,地面要素使用了[51×1×1×161×281]分块策略。由图4可见,使用分块存储方式的ECMWF_ENSEXT模式创建时间仅为175s,速度约是连续存储的16倍。分块存储的更新时间也远远快于NetCDF4连续存储的更新时间,节省了约53min,速度是连续存储的19倍。可见,在数据量较大的情况下,合适的分块策略,在提升文件创建、更新速度方面效果显著。

3.3对比结果

从表2可知,NetCDF4连续存储与NetCDF3连续存储方式相比,在数据量较小情况下,不具优势,反而NetCDF3速度较快,尤其在更新文件时最为显著。在数据量中等或较大时,NetCDF4连续存储创建文件的优势显著,且数据量越大优势越为明显,而在数据量中等或较大时,NetCDF4连续存储与NetCDF3连续存储更新时间相近,没有明显不同。通过选择合适的分块策略,NetC-DF4不论在数据量适中、还是较大,不论在创建文件,还是更新文件情况下,速度优势都非常明显。在数据量较小的情况下,仍是NetCDF3更具优势。

4结论

1)在连续存储时,NetCDF4表现出的性能比NetCDF3更出色,尤其在数据量很大(NetCDF3下超过500Gb的数据)的情况下,性能提升非常显著。2)在分块存储时,选择合适的分块策略,NetCDF4无论在数据量较大、适中的情况下,优势均非常明显。3)在数据量比较小,尤其是NetCDF3.6下100Gb以下的业务场景,迁移到NetCDF4版本下,程序性能提升不明显。本研究结合实验,测试了NetCDF4的连续存储与分块存储的功能,通过实验了解了NetCDF4的新特性。测试结果表明,全面使用NetCDF4替代NetCDF3的数值预报产品是可行的,即使简单地使用NetCDF4替代原有NetCDF3的编译库,都会显著提升程序的性能。这也是未来半年内“广东省气象数值预报平台”的主要工作方向。

参考文献:

[1]杨国杰,沙天阳,程正泉,等.2013年欧洲中心台风集合预报的检验[J].广东气象,2014,36(2):1-5.

[2]程正泉,廖代强.数值天气预报模式产品在预报业务中的应用[J].广东气象,2012,34(4):1-5.

[3]鄢俊一.GRAPES中尺度模式的广东定量降水预报检验[J].广东气象,2012,34(5):35-39.

[4]曹春燕,江崟.欧洲数值预报产品在深圳2次强降温预报中的释用[J].广东气象,2007,29(1):25-26.

[5]王刚,孙周军,吴映,等.基于IDEA数据平台的海珠城市生态气象综合系统建[J].广东气象,2016,38(2):77-80.

[7]查石祥.NetCDF数据的编程式访问[J].气象科技,2004,32(增刊):40-43.

[10]王永韬,刘良明.HDF5格式特点及其对遥感数据格式标准化的几点启示[J].国土资源遥感,2005,65(3):39-43.

[11]沈卫超,曹立强,夏芳,等.面向数值模拟数据的HDF5性能优化[J].计算机研究与发展,2012,49(增刊):314-318.

作者:杨玉红 侯灵 郑晓志 张永华 单位:广东省气象探测数据中心