■ 趙春燕 郭鋒 孫婧 周斌 胡江凱 常飚 劉立明
為提高數值預報模式研發效率,以解決模式研發入門難、環節復雜、試驗數據缺乏管理、模式研發效果檢驗分析和診斷難以對比檢驗等問題,設計開發了模式集成中試支撐平臺,該平臺主要為科研用戶設計和提供可視化的統一用戶接口,實現了GRAPES模式的交互式模式試驗構建、配置、編譯運行、監控以及試驗管理。
GRAPES數值預報模式系統在用不同的試驗方案運行時,需要不同的初始數據和配置,在眾多的變量因子中,若某些缺省值的設置有變化,則很難對試驗結果進行比較。目前在模式試驗過程中,采用腳本部署試驗,需要一定的技術基礎并且需要對模式有一定的了解,此外,相同試驗的重復部署不能快速實現,缺乏便捷易用的通用可視化試驗平臺。
國際上,ECMWF開發的PrepIFS試驗平臺,提供了IFS模式的便捷的可視化、流程化的交互式界面,實現了模式試驗的快速部署、試驗重現、試驗過程監視和結果比對,并實現了與可視化作業調度管理系統的無縫結合,可實時監視顯示模式試驗的運行狀態,對錯誤狀態進行示警,有效地簡化了模式試驗的構建配置過程,并對試驗及其數據提供了管理和分析的支持。NASA開發的工作流工具NED為NASA的科學家提供配置、運行、監視和管理復雜的模式試驗。NED客戶端為科學家提供簡單易用的圖形交互界面,從而替代命令腳本和執行系統命令的方式,由服務端LWWE實現工作流的執行。
目前,我國尚未建立模式研究的中試平臺,模式集成試驗涉及的程序、數據、資源、可視化、檢驗診斷、試驗監視各個環節尚未形成業務化的、便捷的一體化支撐環境,模式研究入門門檻要求高,缺乏模式研發數據的管理,模式檢驗評估分析和預報效果的比對存在困難。
由于模式研發、試驗和運行涉及多套異構的平臺系統,如數據系統、HPC系統等,系統采用C/S架構設計,并基于消息中間件技術實現各個環節的消息通訊。如圖1所示平臺結構,客戶端主要實現用戶所需交互操作功能,消息層實現前后臺消息交互,服務端實現試驗實例構建、作業調度提交運行等功能,數據層主要實現數據的存儲。功能包括模式試驗參數的配置、試驗流程的組合、模式試驗的快速部署以及比較分析、編譯運行環境選擇、遠程提交作業、作業實時監視,實現模式從創建試驗到參數配置、作業提交、實時監視和數據歸檔、數據可視化等業務的一體化過程。

圖1 模式集成中試支撐平臺結構
圖1所示,客戶端主要實現用戶交互的功能,包括試驗配置、試驗作業運行管理、試驗結果的可視化、試驗管理等用戶操作,以及系統管理功能;消息層通過消息中間件技術,實現跨平臺的消息通信;應用服務端在后臺實現客戶端交互操作的執行,如試驗的實際構建,包括試驗環境準備、試驗數據準備、作業生成等,以及試驗作業的提交運行、試驗結果可視化的圖形繪制等處理過程;數據層實現試驗數據的管理,包括試驗信息和模式數據;接口系統實現與數據環境、程序的接口實現,并實現各個異構系統用戶的統一管理。
該平臺包含客戶端和服務端的開發環境兩部分(表1),開發語言為Python,以支持系統的跨平臺特性并提升運行性能。為了提高交互界面的用戶體驗,客戶端界面框架采用具有豐富控件特性的wxPython3.0框架;服務端部署在Linux平臺,采用輕量級消息中間件RabbitMQ,以便于開發和部署,數據庫采用Oracle,與用戶管理系統一致便于管理;作業調度采用ECFLOW,即ECMWF開發的升級版作業調度系統,以便升級現有HPC系統上采用的SMS作業調度系統。

表1 開發環境
1)試驗流程構建
試驗流程構建指選擇模式試驗所運行的模塊,并根據正確的運行流程組合試驗模塊運行。平臺實現兩種試驗流程構建方式:用戶定制試驗和試驗快速構建。試驗快速構建指根據試驗模板(包括通用模板、用戶自定義模板)創建試驗,模板已定義了試驗的常用默認流程和參數,用戶可修改。用戶定制試驗,需要用戶自行選擇試驗的運行模塊,配置試驗參數。
2)試驗參數配置
試驗參數配置包含配置試驗的資源參數、源碼、數據等。配置試驗時,首先配置試驗的計算平臺、作業隊列、資源節點數等資源需求,從客戶端界面配置和訪問試驗模塊所使用的程序源碼,GRAPES程序源碼存儲在以Perforce版本控制軟件實現的程序庫中,實現了從Perforce程序庫選擇源碼路徑,通過Perforce的Python接口實現。試驗輸入數據配置來源于共享數據。所以參數均由默認值設置,用戶根據試驗需求自行定義修改。
3)作業運行監控
作業提交運行采用ECFLOW軟件實現。在高性能計算機登錄節點上建立ECFLOW服務器,為每個用戶分配專屬的ECFLOW服務端口。用戶在客戶端界面點擊提交試驗后,系統后臺通過消息中間件在高性能計算機上啟動作業腳本的生成及運行環境的創建,并通過ECFLOW客戶端提交運行。
用戶在客戶端點擊作業監控,即可調用ECFLOW的客戶端界面,監控試驗作業的編譯運行,ECFLOW通過顏色標識作業運行的狀態,以紅色告警異常狀態,并可在界面直接干預作業運行。
4)試驗管理
試驗管理功能包括試驗歸檔、試驗查詢、試驗對比、試驗拷貝、試驗刪除等。為用戶提供全面的從試驗程序,參數配置方案到結果數據的全流程管理。
采用Oracle數據庫存儲試驗的結構化信息,如試驗ID,試驗名稱、試驗起始時間、結束時間,分辨率等基本信息。基于關系型數據庫,采用傳統SQL查詢,實現試驗信息的檢索。試驗結果數據存儲在大數據平臺上歸檔,通過接口以試驗ID關鍵字查詢到結果數據并返回。通過試驗ID調出試驗所有信息,可提供試驗配置信息的比較和試驗結果圖形的對比。
該系統的設計和應用,解決了用戶試驗和試驗數據沒有關聯管理、難以回調的問題,以GUI交互式構建試驗屏蔽了底層操作,降低了試驗研究的難度,并鏈接了模式研究所涉及的程序、數據、試驗、作業、可視化等環節和接口系統,形成了一體化綜合支撐環境。該系統已試運行,應用于模式研發試驗。初步為模式研發人員解決了研發中面臨的主要問題,包括試驗管理、試驗監視、結果可視化,未來將進一步擴展和完善功能,提升模式發展效率。
深入閱讀
Videla A, Williams J J W, 著, 汪佳南, 譯, 2015. RabbitMQ實戰:高效部署分布式消息隊列. 北京: 電子工業出版社.
崔應杰, 肖華東, 韓同欣, 2011. 參加ECMWF應用軟件系統培訓總結.氣象科技合作動態, 5: 24-26.
劉艷, 薛紀善, 張林, 等, 2016. GRAPES全球三維變分同化系統的檢驗與診斷. 應用氣象學報, 27(1): 2-3.
沈學順, 蘇勇, 胡江林, 等, 2017. GRAPES_GFS全球中期預報系統的研發和業務化.應用氣象學報, 28(1): 1-2.
趙立成, 沈文海, 肖華東, 等, 2016. 高性能計算技術在氣象領域的應用.應用氣象學報, 27(5): 550-552.
Advances in Meteorological Science and Technology2018年1期