李惠歡 楊 敏 吳汝明
(中山大學(xué)網(wǎng)絡(luò)與信息技術(shù)中心 廣東 廣州 510275)
?
基于TORQUE的高性能計算平臺記賬系統(tǒng)
李惠歡楊敏吳汝明
(中山大學(xué)網(wǎng)絡(luò)與信息技術(shù)中心廣東 廣州 510275)
高性能計算已成為繼理論研究和實驗科學(xué)之后的第三種科研方法。如何高效地利用高性能計算平臺上眾多的設(shè)備為科研提供有效服務(wù)是管理者需要面對的主要問題。主要介紹基于開源軟件TORQUE的高性能計算平臺記賬系統(tǒng)的設(shè)計與實現(xiàn),包括計算算法、系統(tǒng)架構(gòu)、主要功能模塊、數(shù)據(jù)設(shè)計及代碼實現(xiàn)。通過歸納法分析TORQUE日志記錄模式,給出從作業(yè)角度和資源角度進行資源使用率的計算方法。該記賬系統(tǒng)架構(gòu)劃分為五層,系統(tǒng)具有很好的靈活性和開放性,可以很容易地移植到其他平臺或者其他類型的作業(yè)調(diào)度系統(tǒng)上。該系統(tǒng)更著重于當(dāng)前資源的使用情況、用戶資源使用情況、任務(wù)等待時間,而非簡單的費用計算和賬單打印,所以它更能為管理者和決策者提供有效且強大的數(shù)據(jù)支撐。
TORQUE記賬系統(tǒng)高性能計算平臺資源利用率
隨著科學(xué)技術(shù)的高速發(fā)展,無論是計算平臺還是科學(xué)計算的應(yīng)用軟件都得到迅速發(fā)展。為了滿足各學(xué)科科學(xué)計算的需求,集中式的高性能計算(HPC)平臺、GPU平臺在高等學(xué)校如雨后春筍般出現(xiàn)。高性能計算機系統(tǒng)是一套由多個計算節(jié)點、管理節(jié)點和存儲節(jié)點組成的計算機系統(tǒng),節(jié)點間通過網(wǎng)絡(luò)有序協(xié)同工作,目前計算力可達到每秒億億次的水平。HPC被廣泛應(yīng)用于高性能計算中心、國家實驗室和各種領(lǐng)域。
通觀我國目前在高性能計算平臺上記賬和計費系統(tǒng)的研究情況,有基于PBS系統(tǒng)記賬信息設(shè)計的計費系統(tǒng)[7,9],也有基于PBS系統(tǒng)并重新設(shè)計記賬信息收集器和分析器的;有基于其他作業(yè)管理軟件設(shè)計的(如通過采集LSF系統(tǒng)作業(yè)調(diào)度及資源分配信息設(shè)計的預(yù)付費系統(tǒng)[3]、基于LSF的計算配額系統(tǒng)[5]、對神威4000A系統(tǒng)和IBM系統(tǒng)設(shè)計的統(tǒng)一資源管理系統(tǒng)[1]),也有進行了校園網(wǎng)格系統(tǒng)和計費系統(tǒng)整體結(jié)構(gòu)及模塊設(shè)計的研究[10]。但系統(tǒng)設(shè)計往往缺乏對高性能計算平臺整體系統(tǒng)的通盤考慮,缺少對計算平臺的環(huán)境監(jiān)控管理系統(tǒng)、集群負荷管理系統(tǒng)、Web作業(yè)提交系統(tǒng)、作業(yè)記賬計費系統(tǒng)、門戶系統(tǒng)、決策分析系統(tǒng)等整個生態(tài)系統(tǒng)的統(tǒng)籌規(guī)劃,系統(tǒng)缺少可擴展性和靈活性。
目前中山大學(xué)高性能計算服務(wù)平臺共有4套系統(tǒng),包括3套HPC平臺和1套GPU平臺,使用團隊已超過170多個,涉及化工、環(huán)境、物理、海洋、生物等多個學(xué)科領(lǐng)域。隨著用戶數(shù)量的增加,如何充分利用現(xiàn)有資源為用戶和高性能中心帶來最大的效率和效益,是HPC平臺管理者必須面對的問題。為此我們希望通過利用HPC平臺的TORQUE日志信息開發(fā)一個記賬系統(tǒng)。鑒于當(dāng)前我校免費使用、院校共建、資方優(yōu)先、統(tǒng)一管理的政策,系統(tǒng)關(guān)注點主要是系統(tǒng)資源是如何使用,哪些資源是短缺的,哪些資源沒有被充分利用,哪些資源被哪些應(yīng)用長期占用等;并非關(guān)注用戶使用了哪些資源及他們需要付多少費,因而它為領(lǐng)導(dǎo)決策、平臺擴展和升級、用戶使用指引提供了有效有力的數(shù)據(jù)依據(jù)。
PBS是一個批處理作業(yè)和計算機系統(tǒng)資源管理的軟件包,是功能最全、歷史最久、支持最廣的本地集群調(diào)度器之一。PBS包括OpenPBS、PBS Pro和TORQUE三個主要分支,TORQUE是Adaptive Computing公司基于OpenPBS給予后續(xù)支持的一個開源版本。TORQUE和Maui一起進行資源調(diào)度和作業(yè)管理,對批量作業(yè)和分布式計算節(jié)點提供控制。
1.1TORQUE工作模式
TORQUE由一個頭節(jié)點和多個計算節(jié)點構(gòu)成,在頭節(jié)點上運行pbs_server守護進程,在各計算節(jié)點上運行的是pbs_mom進程。提交和管理作業(yè)的客戶端命令(作業(yè)的啟動、取消、監(jiān)控)可以在任何主機上安裝,包括沒有運行pbs_server或 pbs_mom進程的主機[6],如圖1所示。
圖1 TORQUE結(jié)構(gòu)圖
頭節(jié)點同時還運行了一個調(diào)度進程pbs_sched,此調(diào)度器與pbs_server進程一起,提供資源使用決策并為作業(yè)分配節(jié)點。TORQUE提供了包括啟動、保留、取消和監(jiān)控作業(yè)的一系列底層方法,調(diào)度器借此實施作業(yè)控制。在TORQUE的分發(fā)包中提供了簡單的FIFO先入先出調(diào)度器以及高級的編程式調(diào)度器兩個選擇,但大部分的TORQUE用戶選擇使用打包的第三方調(diào)度器,如Maui或Moab。
作業(yè)整個生命周期可以分為創(chuàng)建、提交、執(zhí)行和結(jié)束四個階段。用戶首先要編寫作業(yè)腳本,在腳本中定義作業(yè)各種參數(shù),包括作業(yè)應(yīng)運行多長時間(walltime)、哪些資源是必要的以及作業(yè)執(zhí)行內(nèi)容。然后使用qsub命令向pbs_server進程發(fā)送作業(yè)提交請求。TORQUE將依據(jù)管理員預(yù)先定義的策略規(guī)則設(shè)定作業(yè)優(yōu)先級,并同時開始啟動作業(yè)執(zhí)行。pbs_server接收到一個新作業(yè)后通知調(diào)度器。當(dāng)調(diào)度器為作業(yè)找到所需資源后,就向pbs_server發(fā)送指令,把可分配給作業(yè)的節(jié)點列表信息發(fā)送給pbs_server進程。緊接著pbs_server將新作業(yè)發(fā)送到節(jié)點列表的第一個節(jié)點上,并命令它啟動作業(yè)。此節(jié)點被指定為執(zhí)行主機,稱為Mother Superior,作業(yè)中的其他節(jié)點稱為sister moms。
1.2TORQUE日志記錄分析
TORQUE把批量作業(yè)的日志記錄存放在$TORQUEROOT/server_priv/accounting/
Timestamp;EventMarker;JobNum;EventDetail
日志記錄有八種不同的事件標(biāo)記EventMarker,包括A(系統(tǒng)放棄執(zhí)行作業(yè))、C(作業(yè)已設(shè)置檢查點并保留)、D(作業(yè)已被刪除)、E(作業(yè)已退出,可能是作業(yè)計算完畢退出或者中途出錯而退出)、Q(作業(yè)已遞交或者排隊中)、R(試圖返回作業(yè))、S(試圖開始一個新作業(yè))、T(試圖從檢查點重啟作業(yè))。如果平臺可用資源未能滿足作業(yè)需求而導(dǎo)致作業(yè)未能啟動,將產(chǎn)生多個作業(yè)試圖啟動事件,也就會記錄多個S日志記錄。
不同事件的事件詳情EventDetail不盡相同。在事件S和事件E中,詳細記錄了作業(yè)的申請用戶user、用戶組group、作業(yè)名稱jobname、作業(yè)所在隊列queue、作業(yè)提交時間ctime、啟動時間start、實際運行節(jié)點exec_host、作業(yè)請求資源情況(作業(yè)運行所需節(jié)點、節(jié)點數(shù)量、運行所需時間)。事件E中還記錄了作業(yè)結(jié)束時間end、退出狀態(tài)Exit_status、資源使用情況(CPU內(nèi)核使用時間的最大值resources_used.cput、內(nèi)存使用量的最大值resources_used.mem、虛擬內(nèi)存使用量最大值resources_used.vmem以及作業(yè)實際運行時間最大值resources_used.walltime)。
我們從日志記錄文件中抽取了10 000多個記錄進行分析,從分析結(jié)果歸納出三種TORQUE日志記錄模型(如圖2所示)。通常情況下,用戶用qsub命令發(fā)出作業(yè)請求后,TORQUE將作業(yè)請求放到作業(yè)隊列中,同時生成事件Q日志。然后通知調(diào)度器為新作業(yè)搜索所需資源,同時產(chǎn)生事件S日志。如果當(dāng)前可用資源不能完全滿足作業(yè)要求,TORQUE將不斷重復(fù)輪詢,也就是事件S。當(dāng)可用資源已能滿足作業(yè)所需時,系統(tǒng)將分配資源給新作業(yè)并開始計算,直到作業(yè)正確執(zhí)行完成或者中途出錯退出,TORQUE將記錄事件E日志。在場景2中,在已啟動作業(yè)或者請求資源還未成功時,用戶執(zhí)行qdel命令主動刪除了作業(yè)的,系統(tǒng)進行作業(yè)刪除操作釋放資源并生成事件D日志記錄,刪除成功后再生成事件E日志記錄。
圖2 TORQUE日志記錄模型
對于某些VIP用戶,可以把作業(yè)遞交給多個作業(yè)隊列進行資源輪詢,此時可能出現(xiàn)R事件標(biāo)記。在這些特殊場景中,也就是場景3中,即使作業(yè)進入E退出狀態(tài)后,仍可以發(fā)生事件R,并可再次引發(fā)事件S重新試圖啟動作業(yè)。這樣將產(chǎn)生多個E事件記錄,在計算作業(yè)實際運行耗時時需額外考慮。
本記賬系統(tǒng)是基于TORQUE日志記錄的,高性能計算集群采用曙光5000A系統(tǒng),集群平臺在2010年擴容后理論計算峰值達3.5萬億次,平臺日常負載在60%~70%。操作系統(tǒng)使用Rocks 5.1和CentOS 5.3,科學(xué)計算軟件有MM5、WRF、Material Studio、Gaussian、CASTEP等,可支持氣象、環(huán)境、海洋、物理、化學(xué)、材料、生物等相關(guān)領(lǐng)域的科學(xué)計算。為能適應(yīng)TORQUE日志記錄模式的特性,為便于移植到其他平臺(如GPU平臺)作業(yè)調(diào)度系統(tǒng)上,本記賬系統(tǒng)的體系結(jié)構(gòu)設(shè)計體現(xiàn)開放性和靈活性的特點,系統(tǒng)模塊設(shè)計充分考慮原子性和擴展性。
2.1使用率計算算法
高性能計算集群系統(tǒng)主要包括CPU、內(nèi)存、虛擬內(nèi)存、硬盤空間、帶寬等資源類型。對所有資源按“集群+節(jié)點類型+資源類型”方式進行資源分類,節(jié)點類型包括計算節(jié)點、管理節(jié)點、胖節(jié)點、存儲節(jié)點等。定義HPC系統(tǒng)整體可用資源集為:V={V1,V2,…,VM},假設(shè)按上述資源分類方式共有K種資源分類情況。
(1) 從作業(yè)角度計算用戶應(yīng)付費用或使用資源情況
對于不同的資源分類定義其單價,如5000A系統(tǒng)上胖節(jié)點的CPU單價為p1,GPU系統(tǒng)上計算節(jié)點的GPU單價為p2等,則定義單價集合為:P={p1,p2,…,pK}。
假設(shè)某用戶在集群上運行了N個作業(yè),定義作業(yè)集為:S={s1,s2,…,sN}。設(shè)其中某個作業(yè)si(1≤i≤N)運行實際耗時為ti,作業(yè)運行期間共使用了Li個資源,則其使用的資源集為:Ri={rij|rij∈V且j=1,2,…,Li},資源rij的使用數(shù)量記為aij,資源使用量集合可以表示為:Ai={aij|j=1,2,…,Li}。根據(jù)以上資源分類方式,統(tǒng)計資源使用量得到各類資源使用量匯總集:
此套公式同樣地可用于計算資源使用情況,只要把單價集合P看作各資源分類的使用比重則可??梢?,費用與所使用資源的類型、資源的提供能力、使用資源時長有關(guān),為增加系統(tǒng)可擴展性增加了用戶組級別和作業(yè)級別的影響因子。
(2) 從資源角度計算資源使用情況
(3) 其他需考慮因素
對于內(nèi)存、虛擬內(nèi)存、帶寬等系統(tǒng)資源而言,資源使用數(shù)量是動態(tài)的,只能估算時間段內(nèi)資源使用均值,從而計算資源使用率。在實際應(yīng)用中往往以CPU利用率作為節(jié)點/集群使用率計算標(biāo)準(zhǔn)。例如某個計算節(jié)點有8個內(nèi)核,如果某作業(yè)占用了該節(jié)點全部8個內(nèi)核,無論其他資源的使用情況如何,可以認為節(jié)點的全部資源都已分配給該作業(yè),其他作業(yè)不能同時使用此節(jié)點。
作業(yè)往往會出現(xiàn)跨天、跨周、跨月運行的情況,統(tǒng)計時間顆粒度越小則可能性越大。對于這些情況,通常記賬信息中只有事件S的日志記錄,記錄了作業(yè)運行的節(jié)點和CPU內(nèi)核情況。對于從作業(yè)角度進行用戶資源使用情況統(tǒng)計的,應(yīng)以作業(yè)運行完畢并釋放資源才能進行統(tǒng)計。對于從資源角度進行資源使用情況統(tǒng)計的,應(yīng)考慮作業(yè)跨越統(tǒng)計時間段的問題,考慮統(tǒng)計時間段之前就已經(jīng)開始執(zhí)行的作業(yè)以及在統(tǒng)計時間段后才結(jié)束的作業(yè)。這樣的話,對于CPU內(nèi)核資源使用情況的統(tǒng)計結(jié)果才是準(zhǔn)確的。
2.2系統(tǒng)結(jié)構(gòu)
參考數(shù)字化校務(wù)管理系統(tǒng)的設(shè)計,記賬系統(tǒng)采用自上而下的設(shè)計方法,系統(tǒng)架構(gòu)分為5層(如圖3所示),包括用戶界面層、業(yè)務(wù)層、應(yīng)用組件層、應(yīng)用接口層以及基礎(chǔ)平臺層。技術(shù)規(guī)范、信息標(biāo)準(zhǔn)和系統(tǒng)安全保障橫跨各個層面。每層為上層提供服務(wù),同時從下層接口中獲得相應(yīng)的服務(wù)。
圖3 記賬系統(tǒng)架構(gòu)
在最頂層為用戶界面層,直接面向最終用戶服務(wù),使用普通瀏覽器作為客戶端,用戶無需額外安裝客戶端軟件包。用戶界面層為所有用戶提供了統(tǒng)一登陸入口,系統(tǒng)掛載在高性能計算門戶系統(tǒng)下,門戶系統(tǒng)與校園SSO單點登陸系統(tǒng)對接實現(xiàn)了NetID登錄,用戶只需輸入NetID賬號密碼就可以進入記賬系統(tǒng)。系統(tǒng)根據(jù)用戶所在的用戶組為其展現(xiàn)個性化界面,安全模塊中的授權(quán)管理模塊可為各用戶組設(shè)定不同的功能菜單項。將用戶界面作為單獨一層,可以把系統(tǒng)外觀設(shè)計獨立出來,使系統(tǒng)更具柔韌性。
第二層為業(yè)務(wù)層,也是記賬系統(tǒng)的功能模型集合。該層包含每月資源使用率計算、每月賬單打印查詢、各種類統(tǒng)計報表表格生成以及決策支持等功能。這層以服務(wù)接口的方式為用戶界面層提供服務(wù),同時從下層的應(yīng)用組件層的相應(yīng)引擎中獲取服務(wù)。
第三層為應(yīng)用組件層,從記賬系統(tǒng)業(yè)務(wù)中分析抽象出來的引擎組件,為上層提供通用的應(yīng)用組件以構(gòu)成業(yè)務(wù)功能塊。通用組件包括對TORQUE原始日志記錄進行分析的數(shù)據(jù)分析引擎、實現(xiàn)日志文件訪問的文件處理引擎、實現(xiàn)統(tǒng)計報表管理的報表引擎、記錄用戶操作的日志引擎等。應(yīng)用組件層的設(shè)計遵守以下原則:
① 支持未來發(fā)展,使用規(guī)則引擎避免重復(fù)編碼;
② 使組件盡量單一化,以實現(xiàn)代碼重用和業(yè)務(wù)功能重構(gòu);
③ 通過組件聚合使得組件更易于維護和擴展。
應(yīng)用接口層由各類適配器構(gòu)成,負責(zé)與基礎(chǔ)平臺層進行對接和通信,為應(yīng)用組件層提供服務(wù),使其不必依賴于基礎(chǔ)平臺。這層主要包括文件讀寫接口、數(shù)據(jù)庫存取接口等。
最底層的基礎(chǔ)平臺層是記賬系統(tǒng)的基礎(chǔ),包括高性能計算平臺上的各種基礎(chǔ)部件(如集群的操作系統(tǒng)和文件系統(tǒng)、作業(yè)管理調(diào)度系統(tǒng))、數(shù)據(jù)庫、Java虛擬機等。
2.3系統(tǒng)功能
系統(tǒng)服務(wù)對象包括普通使用者、集群管理員以及決策層領(lǐng)導(dǎo)等三大類用戶群體,不同類型用戶的權(quán)限將不盡相同,系統(tǒng)為不同用戶組的用戶提供差異化服務(wù)。系統(tǒng)包括五大模塊,分別是基礎(chǔ)信息管理、使用情況查詢、費用和賬單、統(tǒng)計報表和安全管理等。
基礎(chǔ)信息管理是對系統(tǒng)基礎(chǔ)數(shù)據(jù)的維護,包括集群、節(jié)點、各類資源、集群用戶等。
在使用情況查詢模塊中,普通用戶可以獲知每個作業(yè)使用資源的詳細情況,包括運行所使用的節(jié)點、CPU內(nèi)核、內(nèi)存和存儲的情況(對于未完成作業(yè)不可查詢)。管理員可以查看某個用戶的資源使用情況,也可以查看所有用戶的使用情況詳情和單獨查看某個設(shè)備的使用情況。
在費用和賬單模塊中,普通用戶可以查看他們每月需付費用,自行打印賬單以及賬單明細項目。對于管理員則可以進行每月賬單的計算和適量調(diào)整,可以進行計費標(biāo)準(zhǔn)的設(shè)置,而且還可以按月打印所有用戶的賬單。
統(tǒng)計報表模塊為管理員和決策領(lǐng)導(dǎo)提供每周、每月和每年的各類資源使用報告(包括CPU內(nèi)核、內(nèi)存以及虛擬內(nèi)存),提供作業(yè)等待時間的統(tǒng)計,對用戶使用資源的統(tǒng)計,對緊缺資源的統(tǒng)計,還提供統(tǒng)計結(jié)果圖形方式展示。圖4是資源使用情況統(tǒng)計報告的用例圖,模塊中除了含有公用的報表打印用例外,還包括對每周、每月和每年統(tǒng)計報表的查看。利用統(tǒng)計報表模塊,管理員可以摸索出各種資源使用規(guī)律,可以給集群用戶提供準(zhǔn)確的使用建議以充分發(fā)揮計算平臺性能。通過統(tǒng)計報表模塊,決策者可以獲知平臺是否使用恰當(dāng),是否能滿足用戶需要,資源是否緊缺,從而為平臺擴展升級作出準(zhǔn)確的判斷和決策。
圖4 統(tǒng)計報表模塊用例圖
安全模塊包含了用戶管理、用戶組管理和用戶認證授權(quán)等。用戶授權(quán)是面向用戶組的,實現(xiàn)功能菜單級授權(quán),不同用戶組可查看的業(yè)務(wù)功能不盡相同,同一用戶只能指定唯一的用戶組。
2.4系統(tǒng)概要設(shè)計
記賬系統(tǒng)使用單獨的服務(wù)器安裝部署,每天晚上進行日志文件的同步。通過DAWNING 5000A系統(tǒng)中的定時任務(wù),以scp方式把TORQUE前一天的日志文件傳送到記賬系統(tǒng)上。在計算平臺DAWNING 5000A的管理節(jié)點上,定義定時任務(wù)腳本upload.sh,由于scp會出現(xiàn)詢問用戶密碼和確認傳送的交互過程,因此借助系統(tǒng)的Expect工具實行自動化控制。另一方面,記賬系統(tǒng)中也需定義每晚的定時任務(wù),通過整合Quartz到Spring架構(gòu)中就可以實現(xiàn)。處理過程大致為:首先檢查新日志文件是否已傳送過來,如果文件沒找到則發(fā)郵件給管理員,否則進行日志文件數(shù)據(jù)分析,生成每天日志記錄、作業(yè)、資源使用情況等信息存到數(shù)據(jù)庫中。
記賬系統(tǒng)采用Java作為開發(fā)語言,采用Struts+Spring+Hibernate架構(gòu)搭建基于MySQL數(shù)據(jù)庫的B/S應(yīng)用。依據(jù)用戶需求,系統(tǒng)分日志記錄、基礎(chǔ)數(shù)據(jù)、費用賬單、用戶管理等業(yè)務(wù)包,核心的日志記錄部分的類圖如圖5所示。日志記錄包覆蓋了TORQUE原始日志信息(基于作業(yè)事件)、數(shù)據(jù)分析后產(chǎn)生的作業(yè)詳情(基于每個作業(yè))、節(jié)點和CPU內(nèi)核占用情況(從資源角度);基礎(chǔ)數(shù)據(jù)包用于記錄平臺各類資源(節(jié)點、內(nèi)核、存儲、內(nèi)存);費用帳單包記錄了每個用戶每月使用各類資源的小計、費用以及收費標(biāo)準(zhǔn)等;用戶管理包括用戶、用戶組、菜單資源和資源分配關(guān)系等類。
圖5 日志記錄部分的類圖
圖6為經(jīng)過分析原始日志記錄后生成的作業(yè)信息的查詢界面,可以查看每個作業(yè)的狀態(tài)(事件)路徑歷程,與1.2節(jié)中日志記錄模型相吻合。圖7為通過分析原始日志記錄,得到作業(yè)執(zhí)行節(jié)點和內(nèi)核信息后,統(tǒng)計出的節(jié)點使用率,可以進行每天、每周、每月三種粒度的使用率統(tǒng)計。
圖6 作業(yè)信息詳情查詢頁面
圖7 節(jié)點使用率統(tǒng)計頁面
記帳系統(tǒng)的數(shù)據(jù)分析過程包括如下步驟:
1) 每天晚上定時獲得TORQUE日志記錄文件;
2) 分析每天日志文件,對每行記錄日志進行分析并存儲在accounting日志記錄表中;如果是新作業(yè)則新建作業(yè)信息到j(luò)ob作業(yè)表中,否則更新job表的舊作業(yè);
3) 對于已完成計算的作業(yè),根據(jù)作業(yè)計算實際使用的內(nèi)核信息,生成每天內(nèi)核上運行作業(yè)的占用時間和比率,并存儲到coreOccupation內(nèi)核占用情況表中;
4) 根據(jù)內(nèi)核占用情況,統(tǒng)計每天節(jié)點的占用時間和比率均值,并存儲在nodeOccupation節(jié)點占用情況表;
5) 對于已完成計算的作業(yè),計算用戶運行該作業(yè)所使用各類資源總和(內(nèi)核總時數(shù)、內(nèi)存及虛擬內(nèi)存最大使用量)。
下面給出處理日志記錄文件部分的代碼:
/** 讀取并分析pathname路徑下文件 **/
private boolean readFile(String pathname) {
int rowCount=0; String line = ″″;
try {
File filename = new File(pathname);
InputStreamReader reader = new InputStreamReader(new FileInputStream(filename));
BufferedReader br = new BufferedReader(reader);
line = br.readLine();
//一次讀入一行數(shù)據(jù)
while (line != null) {
analysisOneLine(line);
rowCount++;
line = br.readLine();
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
/** 分析某一行數(shù)據(jù) **/
private void analysisOneLine(String line) {
Map
//用于存儲某行的日志信息
List
//用于存儲該作業(yè)的實際執(zhí)行節(jié)點和內(nèi)核
if (null != line && line.length() > 0) {
//每行數(shù)據(jù)用分號分隔并記錄日志的時間截、事件標(biāo)志、
//作業(yè)號、詳細信息
String[] lineCell = line.split(″;″);
if(lineCell.length==3 || lineCell.length==4){
acclog.put(″logTimestamp″, lineCell[0]);
acclog.put(″status″, lineCell[1]);
acclog.put(″jobid″, lineCell[2]);
//有詳細信息的,要進行詳細信息處理
if(lineCell.length==4){
acclog.put(″detail″, lineCell[3]);
analysisDetail(lineCell[3], acclog, hosts);
}
//存儲日志信息到數(shù)據(jù)庫中
addDb(acclog,hosts);
}
}
}
本文提出的記賬系統(tǒng)適用于所有基于TORQUE的作業(yè)管理計算平臺,系統(tǒng)設(shè)計充分考慮靈活性和可擴展性,易于維護管理,易于移植到其他工作調(diào)度系統(tǒng)或其他平臺的調(diào)度系統(tǒng)上。下一步將不斷豐富系統(tǒng)功能,增強系統(tǒng)健壯性,并將系統(tǒng)擴展應(yīng)用到GPU平臺上。
鑒于我校免費使用的政策,目前系統(tǒng)只提供用戶的資源使用情況,還沒有做用戶費用計算。當(dāng)前系統(tǒng)數(shù)據(jù)分析完全依賴于TORQUE的日志記錄,但日志記錄只能反映單個作業(yè)對資源的整體使用情況,對于節(jié)點的真實使用情況無法獲得,因此目前系統(tǒng)只提供CPU資源的使用情況。
后續(xù)可以進一步改進,在節(jié)點上做操作系統(tǒng)層的資源使用情況日志記錄,并結(jié)合TORQUE日志則可以知道具體作業(yè)在節(jié)點上的詳盡資源使用情況??梢愿櫽脩羲褂糜嬎丬浖莆沼嬎丬浖馁Y源使用特性,為以后設(shè)備采購起指導(dǎo)性作用。
[1] 沈瑜,李娟,常飚,等.高性能計算機統(tǒng)一資源管理系統(tǒng)的設(shè)計與實現(xiàn)[J].計算技術(shù)與自動化,2014,33(1):83-90.
[2] 顧群.基于Torque的異構(gòu)集群平臺調(diào)度算法的設(shè)計與實現(xiàn)[D].西安電子科技大學(xué),2013.
[3] 林皎,張武生,徐偉平,等.高性能計算平臺預(yù)付費管理系統(tǒng)的研制與應(yīng)用[J].實驗技術(shù)與管理,2012,29(12):104-105.
[4] 楊敏.廣東省教育科研網(wǎng)格門戶系統(tǒng)構(gòu)建[J].武漢大學(xué)學(xué)報:理學(xué)版,2012,58(S1):371-375.
[5] 牛鐵,朱鵬,趙毅,等.超級計算環(huán)境計算配額系統(tǒng)設(shè)計和實現(xiàn)[J].計算機應(yīng)用,2010,30(S2):8-9,39.
[6] Adaptive Computing.TORQUE Resource Manager Administrator Guide version 4.2.1[M].Adaptive Computing Enterprises Inc,2012.
[7] 陳振婭,楊英,陳麗娟,等.基于OpenPBS的高性能計算平臺計費系統(tǒng)[J].山東科學(xué),2009,22(5):98-102.
[8] 辛小霞,吳汝明.一種基于SOA的校務(wù)管理系統(tǒng)框架模型[J].中山大學(xué)學(xué)報:自然科學(xué)版,2009,48(S1):264-266.
[9] 王偉,楊利,劉建鋒.一種高性能計算環(huán)境中的計費系統(tǒng)[J].計算機工程與科學(xué),2008,30(1):148-150.
[10] 劉明良.基于校園網(wǎng)格系統(tǒng)計費方案研究[J].計算機系統(tǒng)應(yīng)用,2008,17(3):60-63,91.
[11] Radulescu A,Van Gemund A J C.Low-cost task scheduling for distributed-memory machines[J].IEEE Transactions on Parallel and Distributed Systems,2002,13(6):648-658.
[12] Jianhua Adu.An New Accounting and Billing System for HPC Cluster[C]//Advanced Materials Research,2010,108-111:884-887.
TORQUE-BASED ACCOUNTING SYSTEM FOR HIGH-PERFORMANCE COMPUTING PLATFORM
Li HuihuanYang MinWu Ruming
(NetworkandInformationTechnologyCenter,SunYat-senUniversity,Guangzhou510275,Guangdong,China)
High-performance computing has become the third scientific research method following the theoretical research and experimental science. How to efficiently utilise numerous devices on high-performance computing platform to provide effective services for scientific researches is a major problem faced by the managers. This paper mainly introduces the design and implementation of a TORQUE-based accounting system for high-performance computing platform, which includes the computational algorithm, the system architecture, the main functional modules, the data design and the code implementation. Through analysing the logging mode of TORQUE with induction it presents the calculation method of resource utilisation from the prospective of jobs and resources. The architecture of accounting system is divided into five levels and the system has good flexibility and openness, which can be easily ported to other platforms and other kinds of job scheduling systems. The system focuses more on the usage of current resources, user’s resource utilisation and task waiting time rather than the cost calculation and bill printing, so it can provide more effective and powerful data support for administrators and decision-makers.
TORQUEAccounting systemHigh-performance computing platformResource utilisation
2014-11-01。李惠歡,工程師,主研領(lǐng)域:計算機軟件和應(yīng)用,網(wǎng)絡(luò)信息技術(shù),高性能計算軟件。楊敏,工程師。吳汝明,高工。
TP315
A
10.3969/j.issn.1000-386x.2016.08.028