摘 要:介紹了WRF中尺度數值氣象預報模式與聯想深騰6800高性能計算機系統,概述WRF模式在聯想深騰6800上的移植與測試過程。采用3D數據集em_quarter_ss進行性能分析與正確性測試,并繪制氣象圖。分析串、并行狀態的運算加速比與處理器個數間的關系,發現并行效率相當好,非常適用于機群系統。WRF在深騰6800上的成功移植與測試,也為進一步將WRF應用于中國國家網格奠定了研究基礎。
關鍵詞:天氣研究和預報;深騰6800;中尺度;數值模擬;移植;測試;國家網格
中圖分類號:TP311.5文獻標志碼:A
文章編號:1001-3695(2007)06-0245-03
1 WRF模式特點與相關結構
WRF(Weather Research Forecast) 數值氣象預報模式系統是美國氣象界在繼開發MM5數值模式之后,再一次聯合開發的新一代中尺度氣象研究與預報數值模式及同化系統[1]。對比2000年10月發布的第一版,2004年6月發布的WRF第二版具有更多特點,包括多重區域,從幾公里到數千公里的靈活分辨率,多重嵌套網格,以及與之協調的三維變分同化系統3DVAR等。WRF數值模式采用高度模塊化、并行化和分層設計技術,集成了迄今為止中尺度方面的研究成果[2]。
WRF為中尺度研究和業務數值氣象預報提供共同框架,設計用于1-10km格距的模擬,與一般計算平臺上典型的實時預報能力相適應;它也為理想化動力研究以及完整物理的數值氣象預報與區域氣候模擬提供共同框架。
與MM5數值模式相比,WRF的優點有:多維動態內核,更為合理的模式動力框架,先進的三維變分資料同化系統,可達幾公里的水平分辨率及集合參數化物理過程方案等[3]。
圖1為WRFv2模式與其他輸入輸出等模塊的關系流圖,描述了WRF模式的總體運行過程以及與其他模塊的相互聯系。
圖1中,Part 1為外部數據集,即實際計算數據集,需經過WRF SI數據標準化預處理后,利用WRF進行實時預報與氣象研究;Part 2為WRFv2模式提供的幾個測試數據集;Part 3為標準輸出與可視化模塊,主要對數據進行后處理,并采用氣象專用繪圖軟件GrADs對輸出文件進行圖形繪制。
對WRF內部模塊按功能[6]進行歸類,詳見表1。
2 深騰6800介紹
面向網格的聯想深騰6800高性能計算機系統為COW結構,它包括265個四路結點機,1 060個主頻為1.3GHz的安騰II處理芯片(其中1 024個處理機用于計算),分布式存儲,內存總容量為2.6TB,磁盤存儲總容量為80TB(其中光纖盤陣容量61TB)。主要節點采用LSF作業管理系統,高速連接網絡為QsNet,點對點通信帶寬大于us300Mbps,延遲時間小于7us。作為中國科學院e-science重要基礎設施環境以及中國網格CNGrid的主要結點資源,深騰6800高性能計算機主要應用于大規模科學工程計算、數值模擬、商務計算和網格信息服務等多個領域。
3 移植
移植過程是一個不斷反復、螺旋上升的過程,主要對程序進行編譯和調試。需要熟悉MPI、OpenMP并行編程以及c/fortran90混和編程技術,并需對WRF原理及模塊間關系有一定了解[7,8]。下面總結移植過程,并輔以一些示例說明。
3.1 修改編譯器
根據機器特點選擇Intel Itanium2 ia64 Madison Linux DM-Parallel (e.g. mpp2 at PNNL), efc71 compiler (RSL, MPICH, nesting) 編譯方案。由于使用深騰6800上的ecc/efc71編譯器編譯通不過,重新下載并安裝和使用了Intel ecc/efc Compiler 7.0編譯器,編譯成功。
修改configure.wrf及各模塊Makefile文件的CC/SC編譯器為Intel ecc Compiler 7.0,FC/LD/SFC編譯器為Intel efc Compiler 7.0。
3.2 修改編譯規則
修改各Makefile文件及rules.make文件中的Fortran程序編譯規則:Intel efc Compiler 編譯器編譯Fortran源程序為目標文件時,編譯器只識別后綴名為f 90的文件,故需將*.F文件先編譯為*.f 90,然后再生成*.o目標文件。涉及修改Makefile文件的模塊有esmf_time_f90、io_esmf、io_grib1、io_int、io_mce1、io_netCDF、io_phdf5、RSL以及RSL_LITE等。
另外,configure.wrf文件中缺少對external/io_grib1/模塊的編譯規則。添加對應規則,并將-L ../external/io_grib1/加入到LIB選項中,以生成正確的libgrib1.a庫文件。
3.3 修改編譯選項
修改configure.wrf文件及各模塊Makefile文件的編譯選項。例如在mediation_nest_move.f 90的編譯過程中,TIME_FOR_MOVE與TIME_FOR_MOVE2函數無法識別。需要在configure.wrf的ARCHFLAGS中添加-DMOVE_NESTS選項,以實現模式的多重嵌套網格功能。
3.4 添加并行庫與函數庫
在Intel ecc/efc Compiler 7.0 編譯器的編譯選項中添加與其對應的MPI并行庫及MPI Include文件,以保證并行程序的正常運行。添加內容為:-L/usr/lib/mpi/mpi_intel/lib/、-I/usr/lib/mpi/mpi_intel/include/、/usr/lib/mpi/mpi_intel/lib/libmpi.a。
使用Intel ecc/efc Compiler 7.0編譯器編譯c/fortran程序,需要在編譯選項中添加相應的函數庫及Include頭文件:/clusterware/compiler/intel/compiler70/ia64/lib/libPEPCF90.a、-I/clusterware/compiler/intel/compiler70/ia64/include、-L/usr/lib/qsnet/elan/lib/。否則,程序中的庫函數將無法識別。
3.5 修改源程序錯誤
WRF模式中存在一些編程錯誤,如函數變量賦值錯誤、形參傳遞錯誤,函數與變量的未定義錯誤等,均需針對深騰6800特點做具體修改。如在phys/module_microphysics_driver.f90的編譯過程中,wsm5函數的調用出現錯誤“call wsm5(TH=th,...XLS=xls, XLV0=xlv, XLF0=xlf...),more than one program entity with this name is accessible”。需要將賦值號及前面變量去掉,正確形式為call wsm5(th, ..., , xls, xlv, xlf, ...)。
3.6 執行編譯
在WRFv2的run/目錄下執行compile命令,進行編譯,若成功則生成可執行文件;否則重新執行各步修改,繼續編譯、調試。
圖2 移植過程示意圖
4 配套軟件安裝
4.1 數據格式軟件netCDF
WRF模式的I/O只支持netCDF與PHD5數據格式。在移植WRF之前安裝netCDF數據格式軟件,選擇Intel ecc/efc Compiler 7.0編譯器,修改macros.make、rules.make的編譯規則與編譯選項,添加相關函數庫,重新定義include文件中的變量和函數,如需要在cFortran.h中特別定義f 2cFortran以及pgiFortran選項。上述過程與WRF移植過程基本一致。
根據WRF編譯過程調整NetCDF安裝。如編譯wrf_io.o時,“nf_open”函數無法識別,原因在于netCDF安裝過程中沒有生成正確的libnetCDF.a文件。需修改netCDF/fortran目錄下的ncfortran.h文件,將#define nf_open nf_open_替換為#define nf_open nf_open。
4.2 WRFtoGrADs轉換器
用于轉換WRF 模式中的netCDF格式文件為標準的*.ctl與*.dat文件,WRF模式所有netCDF格式的輸入、輸出數據均可轉化為*.ctl數據描述文件與*.dat二進制數據文件,用于GrADs繪圖。
4.3 多維數據集可視化軟件GrADs
GrADs(Grid Analysis and Display System)提供一個全32位交互操作的氣象格點數據和站點數據的分析以及顯示環境。該系統具有氣象數據分析功能強、地圖投影坐標豐富、高級編程語言使用容易、圖形顯示快速等特點,是氣象數據顯示的標準平臺之一。GrADs主要應用于氣象學,只處理四維數據集,輸出二維圖像比較清晰,但不能做三維圖像。
5 模式測試及結果分析
使用WRF提供的測試數據集em_quarter_ss。數據來自2000年1月至2004年2月共49個月氣象場的各變量的月平均數據。東西方向41個格點,起始緯度為0°,步長0.000 1°;南北方向41個格點,起始緯度為起始緯度為0°,步長0.000 1°;40個高度層。水平格距為10km,垂直格距1.5km,迭代7 200次,輸出8個物理變量。
(1)編譯em_quarter_ss,生成可執行文件ideal.exe與wrf.exe;
(2)修改namelist與input_sounding相關數據參數;
(3)執行runmefirst.sh腳本,建立文件鏈接;
(4)單CPU運行ideal.exe,生成wrfinput_d01輸入文件;
(5)采用bsub命令提交作業腳本,并通過改變處理器數目進行數據集測試。
深騰6800 LSF作業管理系統采用bsub命令提交作業腳本,具體形式為:
bsub-nm(處理器個數)-q queues(隊列名)mpijobs_qsjobname
運行em_quarter_ss數據集,輸出wrfout_d01_year_month_day_minite_second數據文件以及rsl.error、rsl.out運行信息。對數據集測試結果進行性能分析,詳見表2。
分析表2,得到計算時間、加速比以及效率與處理器數目關系圖,如圖3-5所示。使用16處理器取得較好運算效果,此時效率近似于8處理器,而加速比卻提高了近兩倍。
進入WRFtoGrADs目錄,對control_file文件的file_list參數進行修改,用于將wrfout_d01_year_month_day_minite_second結果數據轉換為*.ctl與*.dat文件。
隨機選擇繪制在2000年1月,經度為0.001 5°-0.002 3°,緯度為0.001 5°-0.002 3°以及0.28689hPa下氣溫場和壓強場的垂直渦度圖。圖6-9,分別為不同處理器下的輸出結果。各圖近乎一致,驗證了測試結果的正確性。
6 結束語
WRF 模式系統在預報各種天氣中都具有較好的性能,同時實現在線完全嵌套大氣化學模式,并具有預報空氣質量的能力[4]。WRF作為新一代數值預報模式的框架,可與其他多種模式耦合(e.g.沙塵暴模式),進行更加合理而廣泛的氣象研究與預報應用[5]。
WRF數值氣象預報模式在深騰6800上的移植與測試,是應國家自然科學基金“當代并行機的并行算法應用基礎研究(60533020)”、國家973項目“高性能計算研究(2005CB321702)”及國家發改委項目“基于CNGI的中國國家網格應用”項目資助而進行的。結合中國科學院在超級計算領域的資源優勢,將WRF進一步運用到中國國家網格CNGrid[9]計算中,與MM5及GRAPES數值模式一起為用戶提供大氣環境科學領域的科學研究與實際預測,實現其廣闊的應用前景。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。