本站小編為你精心準備了提升數值預報存儲效率方法分析參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
摘要:通過有代表性的測試實驗,展現了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.
作者:楊玉紅 侯靈 鄭曉志 張永華 單位:廣東省氣象探測數據中心