国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

高性能計算機(jī)資源管理系統(tǒng)改進(jìn)設(shè)計與實現(xiàn)

2018-01-18 16:03顧文靜常飚李娟
計算技術(shù)與自動化 2017年4期
關(guān)鍵詞:預(yù)處理資源管理

顧文靜+常飚+李娟

摘 要:為實現(xiàn)高性能計算機(jī)資源精細(xì)化的統(tǒng)計查詢和跨區(qū)域調(diào)配管理,調(diào)研中國氣象局(CMA)和各區(qū)域中心需求,分析現(xiàn)有資源管理系統(tǒng)的實現(xiàn)方法和不足,充分利用數(shù)據(jù)庫索引和預(yù)處理技術(shù)優(yōu)化數(shù)據(jù)結(jié)構(gòu),整合SSH和jQuery框架重新設(shè)計和實現(xiàn)資源管理系統(tǒng)。測試及業(yè)務(wù)應(yīng)用表明,新系統(tǒng)在響應(yīng)速度、系統(tǒng)可維護(hù)性、功能可擴(kuò)展性和使用便捷性等諸多方面均得到提升。系統(tǒng)管理員可據(jù)此調(diào)整系統(tǒng)資源分配調(diào)度策略,用戶可選擇空閑時段和隊列提交作業(yè),從而更合理高效的利用系統(tǒng)資源,有效提高系統(tǒng)運(yùn)行效益。

關(guān)鍵詞:高性能計算機(jī);資源管理;系統(tǒng)改進(jìn);JQuery+Ajax;SSH;預(yù)處理

中圖分類號:TP302 文獻(xiàn)標(biāo)識碼:A

Improved Design and Implementation of Resource Management System

GU Wen-jing,CHANG Biao,LI Juan

(National Meteorological Information Center,High Performance Computing Division,Beijing 100081,China)

Abstract:To achieve high performance computer resources statistical query refinement and cross-regional management,Investigating the demand of China Meteorological Administration(CMA) and the regional center .Analyzing the implementation method and defect of the existing resource management system .Redesigning and implementing the resource management system adopted the database index and pre-processing to improve data storage structure which based on SSH and jQuery framework .Test and business applications indicates that response speed,system maintainability,function extensibility and convenience of the resource management system has been improved.Through the platform,System administrators can adjust the resources allocation scheduling policy,Users can choose the free time and queue to submit jobs,Thus more reasonable and efficient use of system,Effectively improve the operation efficiency of the system.

Key words:HPC system;resource management;system improvement;JQuery+ Ajax;SSH;pre-processing

高性能計算機(jī)系統(tǒng)是天氣、氣候、地球環(huán)境數(shù)值模擬業(yè)務(wù)和相關(guān)科學(xué)研究所必須的基礎(chǔ)平臺。為了對高性能計算機(jī)系統(tǒng)進(jìn)行資源記賬和統(tǒng)計分析,國家氣象信息中心組織研發(fā)了“高性能計算機(jī)資源管理系統(tǒng)”,系統(tǒng)開發(fā)完成后,為日常資源的統(tǒng)計管理提供了便捷。

自2013年起,依托“氣候變化應(yīng)對決策支撐系統(tǒng)工程”項目,中國氣象局(CMA)陸續(xù)在國家局、廣東、上海、遼寧、湖北、四川以及甘肅和新疆等多個區(qū)域中心建設(shè)10套高性能計算機(jī)系統(tǒng),系統(tǒng)總體峰值能力為1759TFlops,存儲物理容量為6925TB,日均作業(yè)量近5萬個。

1 現(xiàn)狀分析

隨著新一代高性能計算機(jī)系統(tǒng)正式投入運(yùn)行,系統(tǒng)資源使用量和作業(yè)量與日俱增,資源統(tǒng)計查詢需求也日趨復(fù)雜,現(xiàn)有的資源管理系統(tǒng)暴露出了諸多需要改進(jìn)的問題,例如系統(tǒng)響應(yīng)慢、可維護(hù)性和可擴(kuò)展性差、查詢功能紛亂、無法自動生成統(tǒng)計圖等。

通過調(diào)研國家局及各區(qū)域中心對“高性能計算機(jī)資源管理系統(tǒng)”的功能需求,分析系統(tǒng)實現(xiàn)的具體方法,主要針對系統(tǒng)的響應(yīng)速度、功能可擴(kuò)展性、頁面結(jié)構(gòu)和圖表展示等進(jìn)行重新設(shè)計與實現(xiàn)。

2 關(guān)鍵問題

(1)記賬信息提取。

記賬信息是統(tǒng)計查詢的基礎(chǔ),因此必須保證記賬信息采集的準(zhǔn)確性和時效性。

(2)合理組織數(shù)據(jù)。

針對原有資源系統(tǒng)響應(yīng)速度慢的問題,設(shè)計合理的數(shù)據(jù)存儲結(jié)構(gòu),有助于提升系統(tǒng)響應(yīng)速度,同時能夠降低系統(tǒng)開發(fā)的復(fù)雜度。

(3)架構(gòu)改進(jìn)。

原資源管理系統(tǒng)功能簡單,使用JSP+Servlet+JavaBean進(jìn)行B/S架構(gòu)的系統(tǒng)開發(fā),Html標(biāo)簽與Java代碼的混合體嚴(yán)重影響系統(tǒng)可維護(hù)性和可擴(kuò)展性;伴隨著系統(tǒng)需求的不斷增加,軟件開發(fā)也變得越來越復(fù)雜,如何代碼復(fù)用,如何設(shè)計一個靈活松耦的系統(tǒng),成為系統(tǒng)設(shè)計中重點(diǎn)研究的問題。

(4)界面的設(shè)計。

為滿足資源的跨區(qū)域調(diào)配管理及多方面統(tǒng)計查詢需求,查詢粒度大幅增加,功能復(fù)雜,各模塊的設(shè)計及圖表展示是系統(tǒng)開發(fā)成敗的主要因素之一。優(yōu)良合理的頁面布局對用戶而言,能方便清晰地展現(xiàn)用戶所關(guān)心的信息[1]。endprint

3 系統(tǒng)設(shè)計與實現(xiàn)

資源管理系統(tǒng)是“氣候變化應(yīng)對決策支撐系統(tǒng)工程”的子系統(tǒng)之一,用戶管理部分單獨(dú)建設(shè),因此用戶注冊、登錄和修改信息等功能本文不做贅述。資源管理系統(tǒng)主體功能如圖1所示,開發(fā)環(huán)境:Eclipse Luna Release (4.4.0);后臺數(shù)據(jù)庫:Oracle 11g;Web服務(wù)器:Tomcat8.0。

3.1 記賬信息提取

作業(yè)被Loadleveler提交到高性能計算機(jī)系統(tǒng)的計算節(jié)點(diǎn)上,用戶作業(yè)運(yùn)行之前作業(yè)管理軟件調(diào)用prolog.sh,提取用戶作業(yè)的相關(guān)信息,放至相應(yīng)的日志文件中;用戶作業(yè)結(jié)束時,調(diào)用epilog.sh程序,提取用戶作業(yè)的相關(guān)運(yùn)行信息,存入相應(yīng)的日志文件中;batchchargework.sh腳本解析作業(yè)日志,獲取作業(yè)信息各關(guān)鍵字段,將作業(yè)以記錄形式存入資源使用信息數(shù)據(jù)庫中[2]。

原資源管理系統(tǒng),作業(yè)結(jié)束后啟動batchchargework.sh腳本解析作業(yè)日志入庫,由于大量氣候模式作業(yè)運(yùn)行時間長達(dá)幾天甚至十幾天,當(dāng)作業(yè)結(jié)束后再解析日志入庫,會導(dǎo)致作業(yè)運(yùn)行期間資源統(tǒng)計量少于實際值,新系統(tǒng)修改batchchargework.sh腳本,當(dāng)作業(yè)提交后,啟動解析腳本,將作業(yè)信息入庫,結(jié)束時間實時更新,直至作業(yè)運(yùn)行結(jié)束。

3.2 數(shù)據(jù)預(yù)處理

原資源管理系統(tǒng)部署在IBM cluster 1600和神威4000A高性能計算機(jī)系統(tǒng)上,兩套系統(tǒng)總理論峰值約55TFlops(萬億次浮點(diǎn)運(yùn)算每秒)[3],而新一代高性能計算機(jī)系統(tǒng)總理論峰值達(dá)1759TFlops;源數(shù)據(jù)表job表總記錄由原來的不足300萬條增加到現(xiàn)有的3000多萬條;job表的日增量由原來的6000多條增加到5萬條。

伴隨數(shù)據(jù)量的迅速增長,對于用戶的統(tǒng)計請求,如果實時的從海量原始數(shù)據(jù)中進(jìn)行統(tǒng)計計算,給系統(tǒng)造成較大壓力,并且讓用戶等待較長時間。從用戶角度出發(fā),充分利用Oracle數(shù)據(jù)庫索引技術(shù),提高SQL語句的執(zhí)行效率,將有索引的字段放在Where條件的前面,避免全表掃描。同時對海量數(shù)據(jù)進(jìn)行統(tǒng)計預(yù)處理,形成符合需求的中間統(tǒng)計結(jié)果進(jìn)行存儲,對于統(tǒng)計訪問請求,能夠直接在中間統(tǒng)計結(jié)果中進(jìn)行查詢,大幅減少等待時間。

為了提高數(shù)據(jù)安全性和降低數(shù)據(jù)的冗余,新資源管理系統(tǒng)數(shù)據(jù)庫創(chuàng)建13張數(shù)據(jù)表,其中基礎(chǔ)信息表包括用戶信息表(userinfo)、部門信息表(organization)、計算機(jī)系統(tǒng)信息表(machineinfo)、文件系統(tǒng)信息表(gpfsinfo),資源分配信息表(allocation);記賬信息表包括作業(yè)信息表(job)、存儲資源信息表(disk)、CPU使用情況信息表(cpu_usage),實時概覽信息表(realtimeinfo);對job表和disk表進(jìn)行統(tǒng)計預(yù)處理,生成隊列資源信息表(queueu_amt)、模式資源信息表(model_amt)、系統(tǒng)記賬信息表(machine_chg)和用戶記賬信息表(user_chg);其中記賬信息表的可統(tǒng)計屬性均與基礎(chǔ)信息表建立主外鍵關(guān)系。改進(jìn)后的數(shù)據(jù)庫表結(jié)構(gòu)如圖2所示[3]。

3.3 SSH+jQuery框架

3.3.1 系統(tǒng)實現(xiàn)模型

新系統(tǒng)采用MVC模式的SSH(Struts2+Spring+Hibernate)和jQuery兩個框架整合實現(xiàn),大大提高了軟件開發(fā)的效率,系統(tǒng)的可維護(hù)性和可擴(kuò)展性都有所改進(jìn)。

視圖層采用Struts2框架與jQuery框架實現(xiàn),Struts2提供對Ajax的支持,與jQuery框架配合,可將程序的觸發(fā)事件直接封裝在JS代碼中,Struts2與jQuery整合過程中,還需Json插件來輔助實現(xiàn)Ajax功能[4];配置文件struts.xml負(fù)責(zé)前、后臺文件的映射關(guān)系。業(yè)務(wù)邏輯層由Spring和Struts2整合實現(xiàn),Struts2根據(jù)用戶請求調(diào)用相應(yīng)Action控制器,Action調(diào)用Service實現(xiàn)業(yè)務(wù)邏輯處理,將Json對象和參數(shù)傳入到了后臺Service層,在Service層封裝解析數(shù)據(jù)對象;數(shù)據(jù)持久層由Spring和Hibernate整合實現(xiàn),Service調(diào)用Dao實現(xiàn)對數(shù)據(jù)庫的操作,Dao通過調(diào)用Hibernate API對持久化對象進(jìn)行操作,Hibernate將Dao連接oracle數(shù)據(jù)庫,將配置文件裝載到applicationContext.xml中,最終實現(xiàn)對數(shù)據(jù)庫的增刪改查操作[5]。

3.3.2 實現(xiàn)舉例

用戶資源統(tǒng)計模塊包含4個子模塊,分別為申請與分配、分配與使用、計費(fèi)與收費(fèi)和繳費(fèi)記錄,下面以分配與使用子模塊為例詳述后臺查詢及前臺展示的實現(xiàn)。

用戶資源分配與使用模塊的JSP頁面引入jQuery的JS文件庫和UserRes.js文件,用戶在UserRes.jsp頁面上選擇查詢條件后提交,JQuery+Ajax通過get方式向服務(wù)器提交請求[6,7],服務(wù)器接收請求后,根據(jù)struts.xml找到UserResInfo-Allocation

used.json對應(yīng)UserResInfoAction對象,調(diào)用其AllocationUsed( ) 方法;UserResInfoAction對象調(diào)用UserResInfo

-Service對象的getAllocationUsed( )方法,UserResInfoService對象調(diào)用UserRes-

InfoDao對象的getAllocationUsed( )方法最終實現(xiàn)用戶資源分配與使用的查詢,并將查詢結(jié)果逐級返回給UserResInfoAction對象。當(dāng)UserResInfoAction返回結(jié)果為success時,UserResInfoAction將查詢出需要返回的數(shù)據(jù)轉(zhuǎn)換為Json類型,返回的Json串通過正則表達(dá)式進(jìn)行解析,回調(diào)函數(shù)callback處理請求返回的結(jié)果data。UserRes.jsp頁面顯示用戶資源分配與使用的查詢結(jié)果,UserRes.JSP和UserRes.js部分代碼如下。endprint

(1)獲取參數(shù)值,并以json的數(shù)據(jù)形式保存到params中

var params = {

params.queue = $('#queuename').val();

params.starttime = $("#starttimeymd").val();

params.endtime = $("#endtimeymd").val();

params.username = $('#username').val();

params.apptype = $('#apptype').val();

$('.system-select ul li a.active').each(

function(index,dom) {

params.machines += "," + $(dom).attr("id");

});

params.center = $('#userunit option:

selected').text();

}

(2)使用$.get方式處理請求返回結(jié)果data

$.get("UserResInfo-allocationused.json",

<!--服務(wù)器要接受的url->

params, //表單中傳遞的參數(shù)

function(data) {//回調(diào)函數(shù)

if (data == null || data.success == 'false') {

return;

}

var list = data.list;

$.each(list,function(index,data) { }

});

(3)struts.xml配置

<!--指定需要struts2處理請求后綴-->

value="page,json,file,index,action/>

<!--用通配符方式配置Action跳轉(zhuǎn)路徑-->

text/plain

outFileStream

用戶資源分配與使用模塊類圖如圖3所示。

本系統(tǒng)數(shù)據(jù)庫中有13個表,用來存儲系統(tǒng)中所有數(shù)據(jù)信息;用spring配置數(shù)據(jù)源和hibernate,數(shù)據(jù)庫連接采用BoneCP連接池的方式,以提高數(shù)據(jù)庫的使用效率。

本例中hibernate將數(shù)據(jù)庫中user_chg表和allocation表映射為持久化類UserRes-Element和映射文件UserRes.hbm.xml,該表中存儲用戶的分配與使用詳細(xì)信息;UserResInfoDao對象調(diào)用hibernateTemplate對象的方法getAllocattionUsed( ),實現(xiàn)對UserResElement中數(shù)據(jù)查詢。

dataSource,sessionFactory,hibernate-Template等對象被配置在applicationContext.xml文件中,通過依賴注入,dataSource被注入到sessionFactory中,sessionFactory被注入到hibernateTemplate中,hibernate-Template被注入到UserResInfoDAO中[6]。

applicationContext.xml部分代碼如下:

<! --數(shù)據(jù)庫的配置-->

"oracle.jdbc.driver.OracleDriver">

……….//配置信息

<! -- Hibernate配置 -->

class="org.springframework.orm.hibernate3.

LocalSessionFactoryBean">

<!--注入數(shù)據(jù)源 -->

<!--注入映射文件 -->

com/urw/hibernate/beans/

Home.hbm.xml

com/urw/hibernate/beans/

UserRes.hbm.xml

……….

com/urw/hibernate/beans/

Jobstat.hbm.xml

3.4 Highcharts與jQuery的整合

HighCharts支持ASP,PHP,JAVA,.NET等多種語言,用瀏覽器運(yùn)行時不需要插件,運(yùn)行速度快、并且能夠支持當(dāng)前大多數(shù)瀏覽器[8,9]。

資源統(tǒng)計數(shù)據(jù)是時間序列化的數(shù)據(jù),通過動態(tài)曲線能夠更直觀地顯示數(shù)據(jù)在一個時間段中的變化過程。應(yīng)用HighCharts來顯示資源統(tǒng)計數(shù)據(jù),可以極大地提高開發(fā)效率和顯示效果,以CPU使用情況->用戶時段使用情況為例,HighCharts部分代碼如下,圖表效果如圖4所示:

$target.highcharts({

//圖表類型選擇

chart : {

type : chartType

},

//圖表標(biāo)題

title : {

……….//參數(shù)設(shè)置

}

},

// X軸的坐標(biāo)值

xAxis : {

categories : names,

},

// Y軸的坐標(biāo)值設(shè)置

yAxis : {

……….//參數(shù)設(shè)置

},

//當(dāng)鼠標(biāo)懸置數(shù)據(jù)點(diǎn)時的格式化提示

tooltip : {

valueSuffix : '%'

},

//數(shù)據(jù)點(diǎn)相關(guān)屬性

plotOptions : {

……….//參數(shù)設(shè)置

},

//【圖例】位置樣式

legend : {

……….//參數(shù)設(shè)置

}

},

series : value

});

圖4 用戶時段使用情況數(shù)據(jù)顯示圖

4 與舊系統(tǒng)比較

4.1 功能完善

新資源管理系統(tǒng)增加3大模塊,13個子模塊,其中首頁和作業(yè)運(yùn)行情況模塊,實時展示作業(yè)運(yùn)行和資源使用情況,系統(tǒng)管理員可據(jù)此調(diào)整系統(tǒng)資源分配調(diào)度策略,用戶可選擇空閑的時段和隊列提交作業(yè),從而更合理高效的利用系統(tǒng)資源;用戶資源統(tǒng)計模塊,便于用戶查詢本人資源申請、分配、使用和繳費(fèi)情況。擴(kuò)展CPU使用情況,資源綜合統(tǒng)計和模式應(yīng)用模式使用情況等模塊,大幅增加統(tǒng)計粒度,實現(xiàn)資源精細(xì)化管理。

4.2 響應(yīng)速度

使用LoadRunner對系統(tǒng)進(jìn)行測試,測試主要關(guān)注響應(yīng)時間,分別訪問新舊系統(tǒng)相同的功能模塊,業(yè)務(wù)場景中設(shè)置100個并發(fā)用戶進(jìn)行查詢?nèi)蝿?wù),初始連接用戶2人,每15秒增加2人,直到同時連接用戶數(shù)100,100用戶持續(xù)訪問10分鐘,然后每隔30秒減少5人,直到場景結(jié)束。各模塊的系統(tǒng)響應(yīng)速度最少提高13倍,最高達(dá)到99倍。CPU占用率和應(yīng)用模式計算資源統(tǒng)計模塊的平均事物響應(yīng)時間對比數(shù)據(jù)如表1和表2所示,結(jié)果表明采用數(shù)據(jù)庫索引、預(yù)處理優(yōu)化數(shù)據(jù)結(jié)構(gòu)取得明顯效果。

4.3 用戶體驗

1)新系統(tǒng)通過數(shù)據(jù)結(jié)構(gòu)優(yōu)化,提升系統(tǒng)響應(yīng)速度,大幅減少了查詢時間。

2)設(shè)計查詢條件繼承機(jī)制,模塊間具有的相同查詢條件時,不用重復(fù)選擇。

3)舊系統(tǒng)中查詢模塊雜亂,用戶很難找到需要的統(tǒng)計信息,新系統(tǒng)對所有查詢模塊精細(xì)分類,并從用戶操作習(xí)慣考慮合理布局,系統(tǒng)使用便捷性明顯提升。

4)舊系統(tǒng)只提供數(shù)據(jù)查詢,所有統(tǒng)計圖需通過excel繪制,新系統(tǒng)圖表由HighCharts自動生成,圖形豐富,并提供導(dǎo)出和打印功能,大幅減少統(tǒng)計工作量。

5 結(jié)束語

本文針對原資源管理系統(tǒng)中出現(xiàn)的問題進(jìn)行重新設(shè)計與實現(xiàn),目前系統(tǒng)已在國家級氣象業(yè)務(wù)內(nèi)網(wǎng)中投入使用,下一步將推廣到各區(qū)域中心,根據(jù)需求繼續(xù)發(fā)展完善。隨著天氣、氣候模式預(yù)報精度的提高、物理過程的復(fù)雜化,以及集合預(yù)報樣本的增加,導(dǎo)致模式計算規(guī)模越來越大,模式運(yùn)算所需的計算資源和存儲資源也將迅速增加,如何利用有限的資源為氣象用戶做到最優(yōu)、最好的服務(wù),是需要我們系統(tǒng)資源管理工作者認(rèn)真思考的問題[10]。

參考文獻(xiàn)

[1] 孫周軍,肖文明,宋遠(yuǎn)清,等.氣象信息實時監(jiān)視系統(tǒng)改進(jìn)設(shè)計與實現(xiàn)[J].成都信息工程學(xué)院學(xué)報,2008,19(4):507-511.

[2] 沈瑜,李娟,常飚,等.高性能計算機(jī)統(tǒng)一資源管理系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)技術(shù)與自動化,2014,33(1):148-150.

[3] 呂爽,馬艷軍,劉一謙,等.國家氣象網(wǎng)絡(luò)計算資源管理和共享方案的應(yīng)用[J].貴州氣象,2013,37(5):40-42.

[4] 孫長明,徐立建.基于Hibernate+Spring+Struts的Web應(yīng)用開發(fā)框架[J].鐵路計算機(jī)應(yīng)用,2007,16(3):31-33.

[5] 趙曉君,崔建濤,鄧璐娟,等.基于SSH和jQuery的大學(xué)生校園綜合服務(wù)平臺的設(shè)計與實現(xiàn)[J].鄭州輕工業(yè)學(xué)院學(xué)報,2014,29(3):100-104.

[6] HighCharts官網(wǎng).http://www.highcharts.com/demo[OL],2015.

[7] 常飚,王斌.氣象計算資源管理系統(tǒng)設(shè)計[J].計算機(jī)工程,2014,37(8):281-284.

[8] 孫周軍,肖文明,宋遠(yuǎn)清,等.氣象信息實時監(jiān)視系統(tǒng)改進(jìn)設(shè)計與實現(xiàn)[J].成都信息工程學(xué)院學(xué)報,2008,19(4):507-511.

[9] 吳孟春,丁嵐.HighCharts組件在氣象業(yè)務(wù)中的開發(fā)和應(yīng)用[J].計算機(jī)與網(wǎng)絡(luò),2014,(12):65-68.

[10] 陳志雄.利用Struts2 框架和jQuery 框架實現(xiàn)AJAX 的開發(fā)[J].現(xiàn)代計算機(jī),2011,(8):77-80.endprint

猜你喜歡
預(yù)處理資源管理
菌劑預(yù)處理秸稈與牛糞混合對厭氧發(fā)酵產(chǎn)氣的影響
國企改革中政工工作與人力資源管理的融合推進(jìn)
3S技術(shù)在重慶市榮昌區(qū)森林資源管理“一張圖”年度更新中的應(yīng)用
手術(shù)器械預(yù)處理在手術(shù)室的應(yīng)用
電信管線資源管理系統(tǒng)在規(guī)劃設(shè)計中的應(yīng)用
強(qiáng)化國土資源管理,調(diào)控土地交易行為
企業(yè)戰(zhàn)略人力資源管理策略
種養(yǎng)廢棄物預(yù)處理技術(shù)可行性分析與實踐
液化天然氣技術(shù)及其應(yīng)用探析
堿預(yù)處理提高香蕉莖稈厭氧消化產(chǎn)氣性能的研究
安吉县| 临漳县| 连平县| 宁强县| 柏乡县| 长白| 宜良县| 丹巴县| 新建县| 青川县| 九台市| 六盘水市| 宣化县| 海门市| 开阳县| 沙田区| 肇东市| 邹城市| 萨迦县| 宝鸡市| 荔波县| 永宁县| 洛浦县| 山丹县| 油尖旺区| 犍为县| 三穗县| 金溪县| 抚远县| 措勤县| 兖州市| 巴彦县| 连平县| 中宁县| 文登市| 额敏县| 卫辉市| 炉霍县| 岳阳县| 旺苍县| 贵德县|