■ 趙春燕 郭鋒 孫婧 周斌 胡江凱 常飚 劉立明
為提高數(shù)值預(yù)報(bào)模式研發(fā)效率,以解決模式研發(fā)入門難、環(huán)節(jié)復(fù)雜、試驗(yàn)數(shù)據(jù)缺乏管理、模式研發(fā)效果檢驗(yàn)分析和診斷難以對(duì)比檢驗(yàn)等問(wèn)題,設(shè)計(jì)開(kāi)發(fā)了模式集成中試支撐平臺(tái),該平臺(tái)主要為科研用戶設(shè)計(jì)和提供可視化的統(tǒng)一用戶接口,實(shí)現(xiàn)了GRAPES模式的交互式模式試驗(yàn)構(gòu)建、配置、編譯運(yùn)行、監(jiān)控以及試驗(yàn)管理。
GRAPES數(shù)值預(yù)報(bào)模式系統(tǒng)在用不同的試驗(yàn)方案運(yùn)行時(shí),需要不同的初始數(shù)據(jù)和配置,在眾多的變量因子中,若某些缺省值的設(shè)置有變化,則很難對(duì)試驗(yàn)結(jié)果進(jìn)行比較。目前在模式試驗(yàn)過(guò)程中,采用腳本部署試驗(yàn),需要一定的技術(shù)基礎(chǔ)并且需要對(duì)模式有一定的了解,此外,相同試驗(yàn)的重復(fù)部署不能快速實(shí)現(xiàn),缺乏便捷易用的通用可視化試驗(yàn)平臺(tái)。
國(guó)際上,ECMWF開(kāi)發(fā)的PrepIFS試驗(yàn)平臺(tái),提供了IFS模式的便捷的可視化、流程化的交互式界面,實(shí)現(xiàn)了模式試驗(yàn)的快速部署、試驗(yàn)重現(xiàn)、試驗(yàn)過(guò)程監(jiān)視和結(jié)果比對(duì),并實(shí)現(xiàn)了與可視化作業(yè)調(diào)度管理系統(tǒng)的無(wú)縫結(jié)合,可實(shí)時(shí)監(jiān)視顯示模式試驗(yàn)的運(yùn)行狀態(tài),對(duì)錯(cuò)誤狀態(tài)進(jìn)行示警,有效地簡(jiǎn)化了模式試驗(yàn)的構(gòu)建配置過(guò)程,并對(duì)試驗(yàn)及其數(shù)據(jù)提供了管理和分析的支持。NASA開(kāi)發(fā)的工作流工具NED為NASA的科學(xué)家提供配置、運(yùn)行、監(jiān)視和管理復(fù)雜的模式試驗(yàn)。NED客戶端為科學(xué)家提供簡(jiǎn)單易用的圖形交互界面,從而替代命令腳本和執(zhí)行系統(tǒng)命令的方式,由服務(wù)端LWWE實(shí)現(xiàn)工作流的執(zhí)行。
目前,我國(guó)尚未建立模式研究的中試平臺(tái),模式集成試驗(yàn)涉及的程序、數(shù)據(jù)、資源、可視化、檢驗(yàn)診斷、試驗(yàn)監(jiān)視各個(gè)環(huán)節(jié)尚未形成業(yè)務(wù)化的、便捷的一體化支撐環(huán)境,模式研究入門門檻要求高,缺乏模式研發(fā)數(shù)據(jù)的管理,模式檢驗(yàn)評(píng)估分析和預(yù)報(bào)效果的比對(duì)存在困難。
由于模式研發(fā)、試驗(yàn)和運(yùn)行涉及多套異構(gòu)的平臺(tái)系統(tǒng),如數(shù)據(jù)系統(tǒng)、HPC系統(tǒng)等,系統(tǒng)采用C/S架構(gòu)設(shè)計(jì),并基于消息中間件技術(shù)實(shí)現(xiàn)各個(gè)環(huán)節(jié)的消息通訊。如圖1所示平臺(tái)結(jié)構(gòu),客戶端主要實(shí)現(xiàn)用戶所需交互操作功能,消息層實(shí)現(xiàn)前后臺(tái)消息交互,服務(wù)端實(shí)現(xiàn)試驗(yàn)實(shí)例構(gòu)建、作業(yè)調(diào)度提交運(yùn)行等功能,數(shù)據(jù)層主要實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)。功能包括模式試驗(yàn)參數(shù)的配置、試驗(yàn)流程的組合、模式試驗(yàn)的快速部署以及比較分析、編譯運(yùn)行環(huán)境選擇、遠(yuǎn)程提交作業(yè)、作業(yè)實(shí)時(shí)監(jiān)視,實(shí)現(xiàn)模式從創(chuàng)建試驗(yàn)到參數(shù)配置、作業(yè)提交、實(shí)時(shí)監(jiān)視和數(shù)據(jù)歸檔、數(shù)據(jù)可視化等業(yè)務(wù)的一體化過(guò)程。
圖1 模式集成中試支撐平臺(tái)結(jié)構(gòu)
圖1所示,客戶端主要實(shí)現(xiàn)用戶交互的功能,包括試驗(yàn)配置、試驗(yàn)作業(yè)運(yùn)行管理、試驗(yàn)結(jié)果的可視化、試驗(yàn)管理等用戶操作,以及系統(tǒng)管理功能;消息層通過(guò)消息中間件技術(shù),實(shí)現(xiàn)跨平臺(tái)的消息通信;應(yīng)用服務(wù)端在后臺(tái)實(shí)現(xiàn)客戶端交互操作的執(zhí)行,如試驗(yàn)的實(shí)際構(gòu)建,包括試驗(yàn)環(huán)境準(zhǔn)備、試驗(yàn)數(shù)據(jù)準(zhǔn)備、作業(yè)生成等,以及試驗(yàn)作業(yè)的提交運(yùn)行、試驗(yàn)結(jié)果可視化的圖形繪制等處理過(guò)程;數(shù)據(jù)層實(shí)現(xiàn)試驗(yàn)數(shù)據(jù)的管理,包括試驗(yàn)信息和模式數(shù)據(jù);接口系統(tǒng)實(shí)現(xiàn)與數(shù)據(jù)環(huán)境、程序的接口實(shí)現(xiàn),并實(shí)現(xiàn)各個(gè)異構(gòu)系統(tǒng)用戶的統(tǒng)一管理。
該平臺(tái)包含客戶端和服務(wù)端的開(kāi)發(fā)環(huán)境兩部分(表1),開(kāi)發(fā)語(yǔ)言為Python,以支持系統(tǒng)的跨平臺(tái)特性并提升運(yùn)行性能。為了提高交互界面的用戶體驗(yàn),客戶端界面框架采用具有豐富控件特性的wxPython3.0框架;服務(wù)端部署在Linux平臺(tái),采用輕量級(jí)消息中間件RabbitMQ,以便于開(kāi)發(fā)和部署,數(shù)據(jù)庫(kù)采用Oracle,與用戶管理系統(tǒng)一致便于管理;作業(yè)調(diào)度采用ECFLOW,即ECMWF開(kāi)發(fā)的升級(jí)版作業(yè)調(diào)度系統(tǒng),以便升級(jí)現(xiàn)有HPC系統(tǒng)上采用的SMS作業(yè)調(diào)度系統(tǒng)。
表1 開(kāi)發(fā)環(huán)境
1)試驗(yàn)流程構(gòu)建
試驗(yàn)流程構(gòu)建指選擇模式試驗(yàn)所運(yùn)行的模塊,并根據(jù)正確的運(yùn)行流程組合試驗(yàn)?zāi)K運(yùn)行。平臺(tái)實(shí)現(xiàn)兩種試驗(yàn)流程構(gòu)建方式:用戶定制試驗(yàn)和試驗(yàn)快速構(gòu)建。試驗(yàn)快速構(gòu)建指根據(jù)試驗(yàn)?zāi)0澹òㄍㄓ媚0?、用戶自定義模板)創(chuàng)建試驗(yàn),模板已定義了試驗(yàn)的常用默認(rèn)流程和參數(shù),用戶可修改。用戶定制試驗(yàn),需要用戶自行選擇試驗(yàn)的運(yùn)行模塊,配置試驗(yàn)參數(shù)。
2)試驗(yàn)參數(shù)配置
試驗(yàn)參數(shù)配置包含配置試驗(yàn)的資源參數(shù)、源碼、數(shù)據(jù)等。配置試驗(yàn)時(shí),首先配置試驗(yàn)的計(jì)算平臺(tái)、作業(yè)隊(duì)列、資源節(jié)點(diǎn)數(shù)等資源需求,從客戶端界面配置和訪問(wèn)試驗(yàn)?zāi)K所使用的程序源碼,GRAPES程序源碼存儲(chǔ)在以Perforce版本控制軟件實(shí)現(xiàn)的程序庫(kù)中,實(shí)現(xiàn)了從Perforce程序庫(kù)選擇源碼路徑,通過(guò)Perforce的Python接口實(shí)現(xiàn)。試驗(yàn)輸入數(shù)據(jù)配置來(lái)源于共享數(shù)據(jù)。所以參數(shù)均由默認(rèn)值設(shè)置,用戶根據(jù)試驗(yàn)需求自行定義修改。
3)作業(yè)運(yùn)行監(jiān)控
作業(yè)提交運(yùn)行采用ECFLOW軟件實(shí)現(xiàn)。在高性能計(jì)算機(jī)登錄節(jié)點(diǎn)上建立ECFLOW服務(wù)器,為每個(gè)用戶分配專屬的ECFLOW服務(wù)端口。用戶在客戶端界面點(diǎn)擊提交試驗(yàn)后,系統(tǒng)后臺(tái)通過(guò)消息中間件在高性能計(jì)算機(jī)上啟動(dòng)作業(yè)腳本的生成及運(yùn)行環(huán)境的創(chuàng)建,并通過(guò)ECFLOW客戶端提交運(yùn)行。
用戶在客戶端點(diǎn)擊作業(yè)監(jiān)控,即可調(diào)用ECFLOW的客戶端界面,監(jiān)控試驗(yàn)作業(yè)的編譯運(yùn)行,ECFLOW通過(guò)顏色標(biāo)識(shí)作業(yè)運(yùn)行的狀態(tài),以紅色告警異常狀態(tài),并可在界面直接干預(yù)作業(yè)運(yùn)行。
4)試驗(yàn)管理
試驗(yàn)管理功能包括試驗(yàn)歸檔、試驗(yàn)查詢、試驗(yàn)對(duì)比、試驗(yàn)拷貝、試驗(yàn)刪除等。為用戶提供全面的從試驗(yàn)程序,參數(shù)配置方案到結(jié)果數(shù)據(jù)的全流程管理。
采用Oracle數(shù)據(jù)庫(kù)存儲(chǔ)試驗(yàn)的結(jié)構(gòu)化信息,如試驗(yàn)ID,試驗(yàn)名稱、試驗(yàn)起始時(shí)間、結(jié)束時(shí)間,分辨率等基本信息?;陉P(guān)系型數(shù)據(jù)庫(kù),采用傳統(tǒng)SQL查詢,實(shí)現(xiàn)試驗(yàn)信息的檢索。試驗(yàn)結(jié)果數(shù)據(jù)存儲(chǔ)在大數(shù)據(jù)平臺(tái)上歸檔,通過(guò)接口以試驗(yàn)ID關(guān)鍵字查詢到結(jié)果數(shù)據(jù)并返回。通過(guò)試驗(yàn)ID調(diào)出試驗(yàn)所有信息,可提供試驗(yàn)配置信息的比較和試驗(yàn)結(jié)果圖形的對(duì)比。
該系統(tǒng)的設(shè)計(jì)和應(yīng)用,解決了用戶試驗(yàn)和試驗(yàn)數(shù)據(jù)沒(méi)有關(guān)聯(lián)管理、難以回調(diào)的問(wèn)題,以GUI交互式構(gòu)建試驗(yàn)屏蔽了底層操作,降低了試驗(yàn)研究的難度,并鏈接了模式研究所涉及的程序、數(shù)據(jù)、試驗(yàn)、作業(yè)、可視化等環(huán)節(jié)和接口系統(tǒng),形成了一體化綜合支撐環(huán)境。該系統(tǒng)已試運(yùn)行,應(yīng)用于模式研發(fā)試驗(yàn)。初步為模式研發(fā)人員解決了研發(fā)中面臨的主要問(wèn)題,包括試驗(yàn)管理、試驗(yàn)監(jiān)視、結(jié)果可視化,未來(lái)將進(jìn)一步擴(kuò)展和完善功能,提升模式發(fā)展效率。
深入閱讀
Videla A, Williams J J W, 著, 汪佳南, 譯, 2015. RabbitMQ實(shí)戰(zhàn):高效部署分布式消息隊(duì)列. 北京: 電子工業(yè)出版社.
崔應(yīng)杰, 肖華東, 韓同欣, 2011. 參加ECMWF應(yīng)用軟件系統(tǒng)培訓(xùn)總結(jié).氣象科技合作動(dòng)態(tài), 5: 24-26.
劉艷, 薛紀(jì)善, 張林, 等, 2016. GRAPES全球三維變分同化系統(tǒng)的檢驗(yàn)與診斷. 應(yīng)用氣象學(xué)報(bào), 27(1): 2-3.
沈?qū)W順, 蘇勇, 胡江林, 等, 2017. GRAPES_GFS全球中期預(yù)報(bào)系統(tǒng)的研發(fā)和業(yè)務(wù)化.應(yīng)用氣象學(xué)報(bào), 28(1): 1-2.
趙立成, 沈文海, 肖華東, 等, 2016. 高性能計(jì)算技術(shù)在氣象領(lǐng)域的應(yīng)用.應(yīng)用氣象學(xué)報(bào), 27(5): 550-552.
Advances in Meteorological Science and Technology2018年1期