王 瑋 李薛劍 俞昳豪 華松健 錢 菲
(安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 安徽 合肥 230601)
?
面向移動APP的高性能計(jì)算作業(yè)監(jiān)控系統(tǒng)
王 瑋 李薛劍*俞昳豪 華松健 錢 菲
(安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 安徽 合肥 230601)
當(dāng)前高性能計(jì)算技術(shù)應(yīng)用廣泛,然而PBS作業(yè)管理系統(tǒng)存在操作麻煩、數(shù)據(jù)顯示不直觀等諸多缺點(diǎn)。結(jié)合當(dāng)前信息化高速發(fā)展、智能終端和移動APP進(jìn)一步普及的現(xiàn)實(shí),利用IOS平臺的Xcode集成開發(fā)工具編寫移動端APP、使用PHP語言編寫中間接口程序,設(shè)計(jì)面向移動端的高性能計(jì)算監(jiān)控系統(tǒng)。使用移動端的監(jiān)控系統(tǒng)可以避免PBS存在的部分缺點(diǎn),具有較好的效率和較高的實(shí)用性。實(shí)驗(yàn)表明,該APP對移動端的資源占用較少,并且可較好地應(yīng)用于高性能計(jì)算作業(yè)調(diào)度系統(tǒng)的監(jiān)控。
移動APP 高性能計(jì)算 PBS作業(yè)管理系統(tǒng) IOS平臺
高性能計(jì)算技術(shù)[1]已經(jīng)成為推動科技發(fā)展、社會進(jìn)步的重要工具,其涉及范圍包括核武器研究、石油勘探、生物信息技術(shù)、醫(yī)療技術(shù)、計(jì)算化學(xué)、天氣和災(zāi)害預(yù)報(bào)等方面。在國內(nèi)外,高性能計(jì)算應(yīng)用都已經(jīng)具有相當(dāng)?shù)囊?guī)模。高性能計(jì)算利用計(jì)算集群強(qiáng)大的計(jì)算能力來處理復(fù)雜的問題,然而以PBS[2]為代表的作業(yè)調(diào)度系統(tǒng)作為管理該機(jī)群的系統(tǒng),仍然采用命令行方式。移動端是現(xiàn)在重要的信息交流工具,據(jù)2013年Google發(fā)布中國智能手機(jī)使用情況調(diào)查報(bào)告,中國城市智能手機(jī)的普及率大大提高。由于PBS采用命令行方式,較為復(fù)雜、不易操作,所以在移動端采用圖形界面顯示更為友好。
1.1 APP簡介
高性能計(jì)算作業(yè)監(jiān)控系統(tǒng)主要包括三個(gè)部分:(1)移動端APP;(2)服務(wù)器端的接口程序;(3)服務(wù)器端的PBS系統(tǒng)。通過網(wǎng)絡(luò)通信與服務(wù)器端進(jìn)行數(shù)據(jù)交互,移動端APP對數(shù)據(jù)進(jìn)行處理和結(jié)果呈現(xiàn)。用戶在移動端就可以方便查詢機(jī)群和作業(yè)的運(yùn)行狀態(tài)。這里,移動端的APP和接口程序是系統(tǒng)實(shí)現(xiàn)的核心,需要采用設(shè)計(jì)合理且功能完善的設(shè)計(jì)思想以及實(shí)現(xiàn)能滿足功能的中間接口程序。
1.2 軟件架構(gòu)
桌面應(yīng)用已經(jīng)逐漸從C/S架構(gòu)[3]向B/S架構(gòu)[4]轉(zhuǎn)變,目的是為了提升用戶的體驗(yàn)。而APP的架構(gòu)恰恰相反,將主要工作交給服務(wù)器完成,客戶端則是簡單處理數(shù)據(jù)和顯示數(shù)據(jù)。高性能計(jì)算作業(yè)監(jiān)控APP同樣是采用C/S架構(gòu),分為兩個(gè)部分:移動端的APP和接口程序。
整個(gè)系統(tǒng)的框架圖如圖1所示。
圖1 系統(tǒng)框架
1.3 軟件功能
綜合移動端的特點(diǎn),確定高性能計(jì)算作業(yè)APP應(yīng)該具有的基本功能,即機(jī)群概況查詢功能、作業(yè)完成情況查詢功能、用戶登錄及注銷功能。
APP的框架如圖2所示。
圖2 APP框架圖
APP的基本流程如圖3所示。
圖3 APP流程圖
1.4 UI設(shè)計(jì)
由于手機(jī)屏幕比較小,并且需要在有限的空間里展示數(shù)據(jù)的處理結(jié)果,所以構(gòu)造合理的布局顯得十分重要。對于移動終端屏幕的底部放置toolbar所顯示圖標(biāo)或者文字而言,不超過5個(gè)圖標(biāo)或者5個(gè)按鈕顯得比較合理;其次,機(jī)群概況使用圖表的方式會更為直接;最后,對于作業(yè)查詢可能出現(xiàn)比較多的作業(yè)條目的情況,使用tableview會使得布局較為合理。
對圖標(biāo)的形狀和大小等細(xì)節(jié)部分的處理也顯得較為重要,為了避免帶來過于鋒利的感覺,外框使用圓角框處理顯得更加平滑。同時(shí),用戶由于一般用手指進(jìn)行觸控操作,對于按鈕的大小也要適當(dāng),避免用戶一次點(diǎn)擊了多個(gè)相距較近的按鈕,導(dǎo)致較差的用戶體驗(yàn)。
2.1 IOS平臺
IOS[5]是由蘋果公司開發(fā)的操作系統(tǒng),最初是為手機(jī)開發(fā)的系統(tǒng),后來也逐漸被用于蘋果公司其他設(shè)備,目前已經(jīng)成為移動端非常流行的操作系統(tǒng)。在IOS系統(tǒng)上,Object-C[6]是必須要掌握的一門語言,最初源自NeXTSTEP系統(tǒng),之后在OS X和IOS中繼承下來。1988年,蘋果公司CEO喬布斯開發(fā)出相關(guān)的語言庫和開發(fā)環(huán)境,由此成為蘋果操作系統(tǒng)極其API、Cocoa和Cocoa Touch的主要編程語言。Xcode[7]是用于在Mac OS和IOS編程的軟件工具,從Xcode3.1開始就支持為IPhone編程。
通過審核的第三方應(yīng)用程序可通過APP Store進(jìn)行發(fā)布和下載。
2.2 APP關(guān)鍵技術(shù)
2.2.1 不同VIEW間的傳值方式及分析
對于一個(gè)APP而言,一次請求的數(shù)據(jù)可能會使用多次,在IOS中,為每個(gè)View設(shè)計(jì)界面功能都會新建一個(gè)頭文件和一個(gè)主文件。因而如果在不同View使用同一組值,請求多次會占用大量的資源,顯然不合理。所以,如果對不同的View進(jìn)行傳值,會節(jié)省資源和時(shí)間,同時(shí)減輕本地?cái)?shù)據(jù)處理的負(fù)擔(dān)。在IOS當(dāng)中,兩個(gè)View傳值大致有六種方式:
1) 正向傳值方式
2) 使用代理傳值
3) 通知傳值
4) 使用全局變量傳值
5) 單例傳值
6) 使用AppDelegate傳值
對上述六種傳值方式:
1) 在面向移動APP的高性能計(jì)算作業(yè)監(jiān)控系統(tǒng)中,除登錄界面外,余下的視圖都是同級并列關(guān)系,因而并不存在正向、反向的關(guān)系;代理傳值和通知傳值都是基于反向傳值的方式,不適合該APP的設(shè)計(jì)。
2) 使用全局變量的方式最為簡單,但是會引起一些不必要的問題,例如變量名重復(fù)等,顯然這并不是好的辦法。
3) 單例傳值和使用AppDelegate傳值有非常相似的地方,都是相當(dāng)于把需要傳值的東西交付到第三方的手中,經(jīng)由第三方傳給需要傳給的對象。
單例傳值(一個(gè)類中只有一個(gè)實(shí)例)需要聲明和實(shí)現(xiàn)單例方法:
+(SingletonModel *) shareSingleModel;
AppDelegate傳值方法與單例傳值相似,是在AppDelegate中聲明一個(gè)屬性,然后在需要保存值的地方中創(chuàng)建一個(gè)AppDelegate對象進(jìn)行保存,示例如下:
AppDelegate *myDelegate=[[UIApplicationsharedApplication]delegate];
myDelegate.un = self.userName.text;
myDelegate.up = self.userPassword.text;
2.2.2 內(nèi)存管理方式及分析
內(nèi)存管理在IOS開發(fā)中占據(jù)這重要地位,甚至是決定軟件質(zhì)量的關(guān)鍵因素。
Cocoa的內(nèi)存管理規(guī)則[8]:
1) 當(dāng)使用new、alloc或copy方法創(chuàng)建一個(gè)對象的時(shí)候,該對象的保留計(jì)數(shù)器就會被置為1。當(dāng)你向該對象發(fā)送一條release或autorelease消息時(shí),該對象將在使用壽命結(jié)束被銷毀。
2) 如果通過其他方式獲取一個(gè)對象(假設(shè)該對象的保留計(jì)數(shù)器為1)并且該對象被設(shè)置了自動釋放,則不需要執(zhí)行任何操作確保該對象得到清理。
3) 如果保留某個(gè)對象,就需要釋放該對象。必須保持retain方法和release方法的使用次數(shù)相等。
在IOS中,內(nèi)存管理存在兩種方式,分別是MRC(MannulReference Counting)和ARC(automatic reference counting)。在Xcode4.2版本以前,內(nèi)存管理只有MRC管理方式,即需要對每個(gè)對象手動編寫語句釋放內(nèi)存。而ARC機(jī)制類似Java或Python語言中的垃圾回收,系統(tǒng)會自動識別并清理不再使用的對象。兩者相對而言,MRC可以使開發(fā)者清楚地知道自己所要管理的對象內(nèi)存,ARC則是系統(tǒng)自動管理,開發(fā)者可能會不清楚自己要管理的內(nèi)存。與此同時(shí),使用MRC機(jī)制容易導(dǎo)致內(nèi)存泄漏,原因就在于開發(fā)者可能在編碼的過程中漏寫少數(shù)的release等語句,而使用ARC機(jī)制時(shí),開發(fā)者能集中更多的精力在代碼的功能實(shí)現(xiàn)上。
2.2.3 信息交互
IOS客戶端上的APP要與接口程序進(jìn)行信息交互,所采用的是HTTP[9]中的Get方式和Post方式,兩者之間存在一定的差別。Get方式會將URL的一部分用瀏覽器保存起來,且Get方式的參數(shù)一般都跟在URL后面,支持的數(shù)據(jù)也比較小。相對于Post方式,Get方式更不安全,特別針對與用戶登錄的賬戶名和密碼,因?yàn)镻ost方式的參數(shù)不會被瀏覽器記錄下來的,而在Get方式中,數(shù)據(jù)作為URL的一部分是可以在瀏覽器的歷史中被訪問到的。以下是POST方式請求的關(guān)鍵代碼,其中還要涉及到回調(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 接口技術(shù)
接口開發(fā)主要使用PHP[10]語言以及PHP中的SSH2擴(kuò)展,分為登錄驗(yàn)證、作業(yè)查詢、節(jié)點(diǎn)查詢?nèi)齻€(gè)模塊。其中登錄驗(yàn)證模塊從客戶端接收包含用戶名和密碼的POST請求,作業(yè)和節(jié)點(diǎn)查詢模塊接收包含用戶名、密碼、指令和參數(shù)的POST請求。通過ssh2_connect方法連接目的PBS所在的服務(wù)器,然后通過ssh2_auth_password方法進(jìn)行SSH登錄驗(yàn)證,登錄模塊通過判斷驗(yàn)證方法的返回值來返回登錄結(jié)果。
查詢模塊通過ssh2_exec方法向遠(yuǎn)程主機(jī)發(fā)送指令并將輸出重定向到文件中,然后調(diào)用ssh2_scp_recv方法將文本獲取到服務(wù)器端,服務(wù)器端解析文本提取出有用數(shù)據(jù)并轉(zhuǎn)換成JSON數(shù)據(jù)返回給客戶端。
2.2.5 數(shù)據(jù)格式及處理
JSON[11]是一種常用的輕量級交換數(shù)據(jù)的格式,方便通信之間的傳遞同時(shí)方便接口程序和APP解析數(shù)據(jù)。
JSON 語法是 JavaScript[12]對象表示語法的子集,格式要點(diǎn)如下:
? 數(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ù)轉(zhuǎn)為Object-C的字典類型數(shù)據(jù)以便程序進(jìn)一步處理。關(guān)鍵處理代碼如下:
NSDictionary *Dir = [NSJSONSerialization JSONObjectWithData:[jsonData dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments|NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:nil];
在接口程序中,用如下代碼將數(shù)據(jù)轉(zhuǎn)為JSON:
echo json_encode(data);
3.1 實(shí)驗(yàn)環(huán)境
本實(shí)驗(yà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)境)服務(wù)器作為計(jì)算節(jié)點(diǎn),1臺(配置為:CPU Intel Xeon E5620 2.4 GHz,內(nèi)存24 GB,硬盤300 GB ,Redhat Enterprise Linux Server 5.5操作系統(tǒng))服務(wù)器作為管理節(jié)點(diǎn),搭建實(shí)驗(yàn)所需的計(jì)算集群;在移動端的IOS平臺下進(jìn)行了真機(jī)測試和模擬器測試。
3.2 實(shí)驗(yàn)與結(jié)果分析
3.2.1 移動端APP登錄集群系統(tǒng)
登錄測試如圖4-圖6所示。
圖4 登錄測試_初始界面
圖5 登錄測試_密碼錯(cuò)誤
圖6 登錄測試_密碼或用戶名為空
由圖4-圖6可以看出,在登錄階段采取了本地和網(wǎng)絡(luò)檢測賬戶密碼的兩種方式。本地先對賬戶密碼采取判斷為空的情況,在這種情況下,賬戶密碼不會提交給服務(wù)器而是直接判斷登錄失敗并給出相關(guān)說明。在賬戶密碼為合理的組合情況下,提交服務(wù)器判斷賬戶密碼是否正確并作出相應(yīng)的響應(yīng)。
3.2.2 集群及計(jì)算作業(yè)狀態(tài)監(jiān)控
通過在實(shí)驗(yàn)集群上采用PBS作業(yè)調(diào)度系統(tǒng)提交VASP、Matlab、和MPI并行計(jì)算程序作為計(jì)算作業(yè),在移動端APP上對集群和計(jì)算作業(yè)的運(yùn)行狀態(tài)進(jìn)行監(jiān)控。
集群狀態(tài)視圖如圖7所示。
圖7 高性能計(jì)算集群狀態(tài)視圖
計(jì)算作業(yè)狀態(tài)視圖如圖8所示。
圖8 計(jì)算作業(yè)狀態(tài)視圖
由圖7,集群視圖展示繁忙、空閑兩類計(jì)算節(jié)點(diǎn)的使用情況,并用柱狀圖和數(shù)字顯示的方式進(jìn)行直觀的狀態(tài)呈現(xiàn)。由圖8,計(jì)算作業(yè)的運(yùn)行狀態(tài)內(nèi)容包括作業(yè)名稱、所屬用戶、所處狀態(tài)和計(jì)算完成所剩余時(shí)間,都可以在移動APP端較好地呈現(xiàn),對用戶關(guān)注的計(jì)算作業(yè)的屬性,已經(jīng)可以較全面地呈現(xiàn)。
本文通過IOS前端設(shè)計(jì)、信息交互和接口程序設(shè)計(jì)等方面介紹了高性能計(jì)算作業(yè)監(jiān)控系統(tǒng)移動APP的設(shè)計(jì)和開發(fā)。本APP為專業(yè)人員學(xué)習(xí)PBS、TORQUE高性能計(jì)算集群作業(yè)調(diào)度系統(tǒng),使用高性能計(jì)算集群提供了方便。今后的工作將對高性能計(jì)算作業(yè)監(jiān)控系統(tǒng)移動APP與計(jì)算集群的交互和統(tǒng)計(jì)功能、軟件的性能等方面做進(jìn)一步的實(shí)現(xiàn)和完善。
[1] 趙毅, 朱鵬, 遲學(xué)斌,等. 淺析高性能計(jì)算應(yīng)用的需求與發(fā)展[J]. 計(jì)算機(jī)研究與發(fā)展, 2007, 44(10):1640-1646.
[2] 李源, 鄭全錄, 曾韻. PBS作業(yè)管理系統(tǒng)分析[J]. 現(xiàn)代計(jì)算機(jī)(專業(yè)版),2004(3):17-19,23.
[3] 米軍. 一種基于C/S架構(gòu)的圖書館管理系統(tǒng)設(shè)計(jì)[J]. 煤炭技術(shù),2010,29(9):248-251.
[4] 鄭雷雷, 宋麗華, 郭銳, 等. B/S架構(gòu)軟件的安全性測試研究[J]. 計(jì)算機(jī)技術(shù)與發(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基礎(chǔ)編程[M].2版. 周慶成, 譯. 北京, 人民郵電出版社.
[8] 劉樂廷, 李敬兆. IOS內(nèi)存開發(fā)管理機(jī)制的研究[J]. 計(jì)算機(jī)與現(xiàn)代化,2013(3):196-199,203.
[9] 徐健, 王濤. HTTP/1.1的分析[J]. 西南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),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和前端存儲技術(shù)的均衡運(yùn)算框架[J]. 實(shí)驗(yàn)室研究與探索,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。國家自然科學(xué)基金項(xiàng)目(61300169)。王瑋,學(xué)士,主研領(lǐng)域:高性能計(jì)算,作業(yè)調(diào)度。李薛劍,講師。俞昳豪,學(xué)士。華松健,學(xué)士。錢菲,學(xué)士。
TP311
A
10.3969/j.issn.1000-386x.2017.07.032