王 瑋 李薛劍 俞昳豪 華松健 錢 菲
(安徽大學計算機科學與技術學院 安徽 合肥 230601)
?
面向移動APP的高性能計算作業(yè)監(jiān)控系統(tǒng)
王 瑋 李薛劍*俞昳豪 華松健 錢 菲
(安徽大學計算機科學與技術學院 安徽 合肥 230601)
當前高性能計算技術應用廣泛,然而PBS作業(yè)管理系統(tǒng)存在操作麻煩、數(shù)據(jù)顯示不直觀等諸多缺點。結合當前信息化高速發(fā)展、智能終端和移動APP進一步普及的現(xiàn)實,利用IOS平臺的Xcode集成開發(fā)工具編寫移動端APP、使用PHP語言編寫中間接口程序,設計面向移動端的高性能計算監(jiān)控系統(tǒng)。使用移動端的監(jiān)控系統(tǒng)可以避免PBS存在的部分缺點,具有較好的效率和較高的實用性。實驗表明,該APP對移動端的資源占用較少,并且可較好地應用于高性能計算作業(yè)調(diào)度系統(tǒng)的監(jiān)控。
移動APP 高性能計算 PBS作業(yè)管理系統(tǒng) IOS平臺
高性能計算技術[1]已經(jīng)成為推動科技發(fā)展、社會進步的重要工具,其涉及范圍包括核武器研究、石油勘探、生物信息技術、醫(yī)療技術、計算化學、天氣和災害預報等方面。在國內(nèi)外,高性能計算應用都已經(jīng)具有相當?shù)囊?guī)模。高性能計算利用計算集群強大的計算能力來處理復雜的問題,然而以PBS[2]為代表的作業(yè)調(diào)度系統(tǒng)作為管理該機群的系統(tǒng),仍然采用命令行方式。移動端是現(xiàn)在重要的信息交流工具,據(jù)2013年Google發(fā)布中國智能手機使用情況調(diào)查報告,中國城市智能手機的普及率大大提高。由于PBS采用命令行方式,較為復雜、不易操作,所以在移動端采用圖形界面顯示更為友好。
1.1 APP簡介
高性能計算作業(yè)監(jiān)控系統(tǒng)主要包括三個部分:(1)移動端APP;(2)服務器端的接口程序;(3)服務器端的PBS系統(tǒng)。通過網(wǎng)絡通信與服務器端進行數(shù)據(jù)交互,移動端APP對數(shù)據(jù)進行處理和結果呈現(xiàn)。用戶在移動端就可以方便查詢機群和作業(yè)的運行狀態(tài)。這里,移動端的APP和接口程序是系統(tǒng)實現(xiàn)的核心,需要采用設計合理且功能完善的設計思想以及實現(xiàn)能滿足功能的中間接口程序。
1.2 軟件架構
桌面應用已經(jīng)逐漸從C/S架構[3]向B/S架構[4]轉變,目的是為了提升用戶的體驗。而APP的架構恰恰相反,將主要工作交給服務器完成,客戶端則是簡單處理數(shù)據(jù)和顯示數(shù)據(jù)。高性能計算作業(yè)監(jiān)控APP同樣是采用C/S架構,分為兩個部分:移動端的APP和接口程序。
整個系統(tǒng)的框架圖如圖1所示。
圖1 系統(tǒng)框架
1.3 軟件功能
綜合移動端的特點,確定高性能計算作業(yè)APP應該具有的基本功能,即機群概況查詢功能、作業(yè)完成情況查詢功能、用戶登錄及注銷功能。
APP的框架如圖2所示。

圖2 APP框架圖
APP的基本流程如圖3所示。

圖3 APP流程圖
1.4 UI設計
由于手機屏幕比較小,并且需要在有限的空間里展示數(shù)據(jù)的處理結果,所以構造合理的布局顯得十分重要。對于移動終端屏幕的底部放置toolbar所顯示圖標或者文字而言,不超過5個圖標或者5個按鈕顯得比較合理;其次,機群概況使用圖表的方式會更為直接;最后,對于作業(yè)查詢可能出現(xiàn)比較多的作業(yè)條目的情況,使用tableview會使得布局較為合理。
對圖標的形狀和大小等細節(jié)部分的處理也顯得較為重要,為了避免帶來過于鋒利的感覺,外框使用圓角框處理顯得更加平滑。同時,用戶由于一般用手指進行觸控操作,對于按鈕的大小也要適當,避免用戶一次點擊了多個相距較近的按鈕,導致較差的用戶體驗。
2.1 IOS平臺
IOS[5]是由蘋果公司開發(fā)的操作系統(tǒng),最初是為手機開發(fā)的系統(tǒng),后來也逐漸被用于蘋果公司其他設備,目前已經(jīng)成為移動端非常流行的操作系統(tǒng)。在IOS系統(tǒng)上,Object-C[6]是必須要掌握的一門語言,最初源自NeXTSTEP系統(tǒng),之后在OS X和IOS中繼承下來。1988年,蘋果公司CEO喬布斯開發(fā)出相關的語言庫和開發(fā)環(huán)境,由此成為蘋果操作系統(tǒng)極其API、Cocoa和Cocoa Touch的主要編程語言。Xcode[7]是用于在Mac OS和IOS編程的軟件工具,從Xcode3.1開始就支持為IPhone編程。
通過審核的第三方應用程序可通過APP Store進行發(fā)布和下載。
2.2 APP關鍵技術
2.2.1 不同VIEW間的傳值方式及分析
對于一個APP而言,一次請求的數(shù)據(jù)可能會使用多次,在IOS中,為每個View設計界面功能都會新建一個頭文件和一個主文件。因而如果在不同View使用同一組值,請求多次會占用大量的資源,顯然不合理。所以,如果對不同的View進行傳值,會節(jié)省資源和時間,同時減輕本地數(shù)據(jù)處理的負擔。在IOS當中,兩個View傳值大致有六種方式:
1) 正向傳值方式
2) 使用代理傳值
3) 通知傳值
4) 使用全局變量傳值
5) 單例傳值
6) 使用AppDelegate傳值
對上述六種傳值方式:
1) 在面向移動APP的高性能計算作業(yè)監(jiān)控系統(tǒng)中,除登錄界面外,余下的視圖都是同級并列關系,因而并不存在正向、反向的關系;代理傳值和通知傳值都是基于反向傳值的方式,不適合該APP的設計。
2) 使用全局變量的方式最為簡單,但是會引起一些不必要的問題,例如變量名重復等,顯然這并不是好的辦法。
3) 單例傳值和使用AppDelegate傳值有非常相似的地方,都是相當于把需要傳值的東西交付到第三方的手中,經(jīng)由第三方傳給需要傳給的對象。
單例傳值(一個類中只有一個實例)需要聲明和實現(xiàn)單例方法:
+(SingletonModel *) shareSingleModel;
AppDelegate傳值方法與單例傳值相似,是在AppDelegate中聲明一個屬性,然后在需要保存值的地方中創(chuàng)建一個AppDelegate對象進行保存,示例如下:
AppDelegate *myDelegate=[[UIApplicationsharedApplication]delegate];
myDelegate.un = self.userName.text;
myDelegate.up = self.userPassword.text;
2.2.2 內(nèi)存管理方式及分析
內(nèi)存管理在IOS開發(fā)中占據(jù)這重要地位,甚至是決定軟件質量的關鍵因素。
Cocoa的內(nèi)存管理規(guī)則[8]:
1) 當使用new、alloc或copy方法創(chuàng)建一個對象的時候,該對象的保留計數(shù)器就會被置為1。當你向該對象發(fā)送一條release或autorelease消息時,該對象將在使用壽命結束被銷毀。
2) 如果通過其他方式獲取一個對象(假設該對象的保留計數(shù)器為1)并且該對象被設置了自動釋放,則不需要執(zhí)行任何操作確保該對象得到清理。
3) 如果保留某個對象,就需要釋放該對象。必須保持retain方法和release方法的使用次數(shù)相等。
在IOS中,內(nèi)存管理存在兩種方式,分別是MRC(MannulReference Counting)和ARC(automatic reference counting)。在Xcode4.2版本以前,內(nèi)存管理只有MRC管理方式,即需要對每個對象手動編寫語句釋放內(nèi)存。而ARC機制類似Java或Python語言中的垃圾回收,系統(tǒng)會自動識別并清理不再使用的對象。兩者相對而言,MRC可以使開發(fā)者清楚地知道自己所要管理的對象內(nèi)存,ARC則是系統(tǒng)自動管理,開發(fā)者可能會不清楚自己要管理的內(nèi)存。與此同時,使用MRC機制容易導致內(nèi)存泄漏,原因就在于開發(fā)者可能在編碼的過程中漏寫少數(shù)的release等語句,而使用ARC機制時,開發(fā)者能集中更多的精力在代碼的功能實現(xiàn)上。
2.2.3 信息交互
IOS客戶端上的APP要與接口程序進行信息交互,所采用的是HTTP[9]中的Get方式和Post方式,兩者之間存在一定的差別。Get方式會將URL的一部分用瀏覽器保存起來,且Get方式的參數(shù)一般都跟在URL后面,支持的數(shù)據(jù)也比較小。相對于Post方式,Get方式更不安全,特別針對與用戶登錄的賬戶名和密碼,因為Post方式的參數(shù)不會被瀏覽器記錄下來的,而在Get方式中,數(shù)據(jù)作為URL的一部分是可以在瀏覽器的歷史中被訪問到的。以下是POST方式請求的關鍵代碼,其中還要涉及到回調(diào)方法。
NSString *urlString = @"http://xx.xx.xx.xx";
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30];
NSString *param = [[NSString alloc] initWithFormat:@"username=%@&userpassword=%@",self.userName.text,self.userPassword.text];
NSData *paramData = [paramdataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:paramData];
[request setHTTPMethod:@"POST"];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
2.2.4 接口技術
接口開發(fā)主要使用PHP[10]語言以及PHP中的SSH2擴展,分為登錄驗證、作業(yè)查詢、節(jié)點查詢?nèi)齻€模塊。其中登錄驗證模塊從客戶端接收包含用戶名和密碼的POST請求,作業(yè)和節(jié)點查詢模塊接收包含用戶名、密碼、指令和參數(shù)的POST請求。通過ssh2_connect方法連接目的PBS所在的服務器,然后通過ssh2_auth_password方法進行SSH登錄驗證,登錄模塊通過判斷驗證方法的返回值來返回登錄結果。
查詢模塊通過ssh2_exec方法向遠程主機發(fā)送指令并將輸出重定向到文件中,然后調(diào)用ssh2_scp_recv方法將文本獲取到服務器端,服務器端解析文本提取出有用數(shù)據(jù)并轉換成JSON數(shù)據(jù)返回給客戶端。
2.2.5 數(shù)據(jù)格式及處理
JSON[11]是一種常用的輕量級交換數(shù)據(jù)的格式,方便通信之間的傳遞同時方便接口程序和APP解析數(shù)據(jù)。
JSON 語法是 JavaScript[12]對象表示語法的子集,格式要點如下:
? 數(shù)據(jù)在鍵值對中
? 數(shù)據(jù)由逗號分隔
? 花括號保存對象
? 方括號保存數(shù)組
數(shù)據(jù)格式示例如下:
{"calnode1":"down","calnodes_num":"1","calnodes_num_free":"0","calnodes_num_down":"1"}
在IOS5以后,APPLE公司提供了對JSON數(shù)據(jù)的原生支持,使用NSJSONSerialization方法可以方便處理JSON數(shù)據(jù)。此方法可以將JSON數(shù)據(jù)轉為Object-C的字典類型數(shù)據(jù)以便程序進一步處理。關鍵處理代碼如下:
NSDictionary *Dir = [NSJSONSerialization JSONObjectWithData:[jsonData dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments|NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:nil];
在接口程序中,用如下代碼將數(shù)據(jù)轉為JSON:
echo json_encode(data);
3.1 實驗環(huán)境
本實驗在浪潮TS10K集群系統(tǒng)平臺上采用5臺(配置為:CPU Intel Xeon X5660 2.8 GHz,內(nèi)存24 GB,硬盤300 GB ,Redhat Enterprise Linux Server 5.5,OpenMPI并行環(huán)境)服務器作為計算節(jié)點,1臺(配置為:CPU Intel Xeon E5620 2.4 GHz,內(nèi)存24 GB,硬盤300 GB ,Redhat Enterprise Linux Server 5.5操作系統(tǒng))服務器作為管理節(jié)點,搭建實驗所需的計算集群;在移動端的IOS平臺下進行了真機測試和模擬器測試。
3.2 實驗與結果分析
3.2.1 移動端APP登錄集群系統(tǒng)
登錄測試如圖4-圖6所示。

圖4 登錄測試_初始界面

圖5 登錄測試_密碼錯誤

圖6 登錄測試_密碼或用戶名為空
由圖4-圖6可以看出,在登錄階段采取了本地和網(wǎng)絡檢測賬戶密碼的兩種方式。本地先對賬戶密碼采取判斷為空的情況,在這種情況下,賬戶密碼不會提交給服務器而是直接判斷登錄失敗并給出相關說明。在賬戶密碼為合理的組合情況下,提交服務器判斷賬戶密碼是否正確并作出相應的響應。
3.2.2 集群及計算作業(yè)狀態(tài)監(jiān)控
通過在實驗集群上采用PBS作業(yè)調(diào)度系統(tǒng)提交VASP、Matlab、和MPI并行計算程序作為計算作業(yè),在移動端APP上對集群和計算作業(yè)的運行狀態(tài)進行監(jiān)控。
集群狀態(tài)視圖如圖7所示。

圖7 高性能計算集群狀態(tài)視圖
計算作業(yè)狀態(tài)視圖如圖8所示。

圖8 計算作業(yè)狀態(tài)視圖
由圖7,集群視圖展示繁忙、空閑兩類計算節(jié)點的使用情況,并用柱狀圖和數(shù)字顯示的方式進行直觀的狀態(tài)呈現(xiàn)。由圖8,計算作業(yè)的運行狀態(tài)內(nèi)容包括作業(yè)名稱、所屬用戶、所處狀態(tài)和計算完成所剩余時間,都可以在移動APP端較好地呈現(xiàn),對用戶關注的計算作業(yè)的屬性,已經(jīng)可以較全面地呈現(xiàn)。
本文通過IOS前端設計、信息交互和接口程序設計等方面介紹了高性能計算作業(yè)監(jiān)控系統(tǒng)移動APP的設計和開發(fā)。本APP為專業(yè)人員學習PBS、TORQUE高性能計算集群作業(yè)調(diào)度系統(tǒng),使用高性能計算集群提供了方便。今后的工作將對高性能計算作業(yè)監(jiān)控系統(tǒng)移動APP與計算集群的交互和統(tǒng)計功能、軟件的性能等方面做進一步的實現(xiàn)和完善。
[1] 趙毅, 朱鵬, 遲學斌,等. 淺析高性能計算應用的需求與發(fā)展[J]. 計算機研究與發(fā)展, 2007, 44(10):1640-1646.
[2] 李源, 鄭全錄, 曾韻. PBS作業(yè)管理系統(tǒng)分析[J]. 現(xiàn)代計算機(專業(yè)版),2004(3):17-19,23.
[3] 米軍. 一種基于C/S架構的圖書館管理系統(tǒng)設計[J]. 煤炭技術,2010,29(9):248-251.
[4] 鄭雷雷, 宋麗華, 郭銳, 等. B/S架構軟件的安全性測試研究[J]. 計算機技術與發(fā)展,2012,22(1):221-224.
[5] IOS[EB/OL]. [2016-5-19] http://zh.wikipedia.org/zh-cn/iOS.
[6] XCode[EB/OL]. [2016-5-19]. http://en.wikipedia.org/wiki/Xcode.
[7] Scott Knaster,Waqar Malik,Mark DalryMple. Object-C基礎編程[M].2版. 周慶成, 譯. 北京, 人民郵電出版社.
[8] 劉樂廷, 李敬兆. IOS內(nèi)存開發(fā)管理機制的研究[J]. 計算機與現(xiàn)代化,2013(3):196-199,203.
[9] 徐健, 王濤. HTTP/1.1的分析[J]. 西南師范大學學報(自然科學版),2004,29(2):315-319.
[10] 肖維明. 基于PHP+MySQL的網(wǎng)站開發(fā)[J]. 物流工程與管理,2009,31(6):90-92.
[11] JSON[EB/OL].[2016-5-19]http://baike.baidu.com/link?url=DmAB7VdaP3Thr6TREqDCHp21uPosO9Nw2ERePZ 75kJkito6LvGOfrZ9axASacwAuY-wWiizUvDZbVu7uta BRqa.
[12] 曹宇,陳海峰. 基于JSON、JavaScript、HTML5和前端存儲技術的均衡運算框架[J]. 實驗室研究與探索,2014,33(5):116-119.
A HIGH-PERFORMANCE COMPUTING MONITORING SYSTEM FOR MOBILE APP OPERATIONS
Wang Wei Li Xuejian*Yu Yihao Hua Songjian Qian Fei
(SchoolofComputerScienceandTechnology,AnhuiUniversity,Hefei230601,Anhui,China)
According to the current high performance computing technology has a very high value in use. But there are many defects such as complex operation, time and space limit and non-intuitive data display exist in PBS Job Management System. Combined with the current rapid development of information technology, intelligent terminal and smart phones are further popularized. Xcode integrated development tool of IOS platform is used to write mobile terminal APP, and PHP language is used to write intermediate interface program, designed for high-performance mobile terminal computing monitoring system. The use of the mobile terminal monitoring system can avoid some of the defects of PBS, with good efficiency and high practicality. The experimental results show that the APP has less resources consumption on mobile terminal, and can be well applied to the monitoring of high performance computing and dispatching system.
Mobile APP High performance computing PBS job management system IOS platform
2016-05-25。國家自然科學基金項目(61300169)。王瑋,學士,主研領域:高性能計算,作業(yè)調(diào)度。李薛劍,講師。俞昳豪,學士。華松健,學士。錢菲,學士。
TP311
A
10.3969/j.issn.1000-386x.2017.07.032