面向移动APP的高性能计算作业监控系统

2017-08-12 15:45李薛剑俞昳豪华松健
计算机应用与软件 2017年7期
关键词:高性能内存集群

王 玮 李薛剑 俞昳豪 华松健 钱 菲

(安徽大学计算机科学与技术学院 安徽 合肥 230601)



面向移动APP的高性能计算作业监控系统

王 玮 李薛剑*俞昳豪 华松健 钱 菲

(安徽大学计算机科学与技术学院 安徽 合肥 230601)

当前高性能计算技术应用广泛,然而PBS作业管理系统存在操作麻烦、数据显示不直观等诸多缺点。结合当前信息化高速发展、智能终端和移动APP进一步普及的现实,利用IOS平台的Xcode集成开发工具编写移动端APP、使用PHP语言编写中间接口程序,设计面向移动端的高性能计算监控系统。使用移动端的监控系统可以避免PBS存在的部分缺点,具有较好的效率和较高的实用性。实验表明,该APP对移动端的资源占用较少,并且可较好地应用于高性能计算作业调度系统的监控。

移动APP 高性能计算 PBS作业管理系统 IOS平台

0 引 言

高性能计算技术[1]已经成为推动科技发展、社会进步的重要工具,其涉及范围包括核武器研究、石油勘探、生物信息技术、医疗技术、计算化学、天气和灾害预报等方面。在国内外,高性能计算应用都已经具有相当的规模。高性能计算利用计算集群强大的计算能力来处理复杂的问题,然而以PBS[2]为代表的作业调度系统作为管理该机群的系统,仍然采用命令行方式。移动端是现在重要的信息交流工具,据2013年Google发布中国智能手机使用情况调查报告,中国城市智能手机的普及率大大提高。由于PBS采用命令行方式,较为复杂、不易操作,所以在移动端采用图形界面显示更为友好。

1 高性能计算作业监控APP

1.1 APP简介

高性能计算作业监控系统主要包括三个部分:(1)移动端APP;(2)服务器端的接口程序;(3)服务器端的PBS系统。通过网络通信与服务器端进行数据交互,移动端APP对数据进行处理和结果呈现。用户在移动端就可以方便查询机群和作业的运行状态。这里,移动端的APP和接口程序是系统实现的核心,需要采用设计合理且功能完善的设计思想以及实现能满足功能的中间接口程序。

1.2 软件架构

桌面应用已经逐渐从C/S架构[3]向B/S架构[4]转变,目的是为了提升用户的体验。而APP的架构恰恰相反,将主要工作交给服务器完成,客户端则是简单处理数据和显示数据。高性能计算作业监控APP同样是采用C/S架构,分为两个部分:移动端的APP和接口程序。

整个系统的框架图如图1所示。

图1 系统框架

1.3 软件功能

综合移动端的特点,确定高性能计算作业APP应该具有的基本功能,即机群概况查询功能、作业完成情况查询功能、用户登录及注销功能。

APP的框架如图2所示。

图2 APP框架图

APP的基本流程如图3所示。

图3 APP流程图

1.4 UI设计

由于手机屏幕比较小,并且需要在有限的空间里展示数据的处理结果,所以构造合理的布局显得十分重要。对于移动终端屏幕的底部放置toolbar所显示图标或者文字而言,不超过5个图标或者5个按钮显得比较合理;其次,机群概况使用图表的方式会更为直接;最后,对于作业查询可能出现比较多的作业条目的情况,使用tableview会使得布局较为合理。

对图标的形状和大小等细节部分的处理也显得较为重要,为了避免带来过于锋利的感觉,外框使用圆角框处理显得更加平滑。同时,用户由于一般用手指进行触控操作,对于按钮的大小也要适当,避免用户一次点击了多个相距较近的按钮,导致较差的用户体验。

2 APP实现涉及的相关工具和技术

2.1 IOS平台

IOS[5]是由苹果公司开发的操作系统,最初是为手机开发的系统,后来也逐渐被用于苹果公司其他设备,目前已经成为移动端非常流行的操作系统。在IOS系统上,Object-C[6]是必须要掌握的一门语言,最初源自NeXTSTEP系统,之后在OS X和IOS中继承下来。1988年,苹果公司CEO乔布斯开发出相关的语言库和开发环境,由此成为苹果操作系统极其API、Cocoa和Cocoa Touch的主要编程语言。Xcode[7]是用于在Mac OS和IOS编程的软件工具,从Xcode3.1开始就支持为IPhone编程。

通过审核的第三方应用程序可通过APP Store进行发布和下载。

2.2 APP关键技术

2.2.1 不同VIEW间的传值方式及分析

对于一个APP而言,一次请求的数据可能会使用多次,在IOS中,为每个View设计界面功能都会新建一个头文件和一个主文件。因而如果在不同View使用同一组值,请求多次会占用大量的资源,显然不合理。所以,如果对不同的View进行传值,会节省资源和时间,同时减轻本地数据处理的负担。在IOS当中,两个View传值大致有六种方式:

1) 正向传值方式

2) 使用代理传值

3) 通知传值

4) 使用全局变量传值

5) 单例传值

6) 使用AppDelegate传值

对上述六种传值方式:

1) 在面向移动APP的高性能计算作业监控系统中,除登录界面外,余下的视图都是同级并列关系,因而并不存在正向、反向的关系;代理传值和通知传值都是基于反向传值的方式,不适合该APP的设计。

2) 使用全局变量的方式最为简单,但是会引起一些不必要的问题,例如变量名重复等,显然这并不是好的办法。

3) 单例传值和使用AppDelegate传值有非常相似的地方,都是相当于把需要传值的东西交付到第三方的手中,经由第三方传给需要传给的对象。

单例传值(一个类中只有一个实例)需要声明和实现单例方法:

+(SingletonModel *) shareSingleModel;

AppDelegate传值方法与单例传值相似,是在AppDelegate中声明一个属性,然后在需要保存值的地方中创建一个AppDelegate对象进行保存,示例如下:

AppDelegate *myDelegate=[[UIApplicationsharedApplication]delegate];

myDelegate.un = self.userName.text;

myDelegate.up = self.userPassword.text;

2.2.2 内存管理方式及分析

内存管理在IOS开发中占据这重要地位,甚至是决定软件质量的关键因素。

Cocoa的内存管理规则[8]:

1) 当使用new、alloc或copy方法创建一个对象的时候,该对象的保留计数器就会被置为1。当你向该对象发送一条release或autorelease消息时,该对象将在使用寿命结束被销毁。

2) 如果通过其他方式获取一个对象(假设该对象的保留计数器为1)并且该对象被设置了自动释放,则不需要执行任何操作确保该对象得到清理。

3) 如果保留某个对象,就需要释放该对象。必须保持retain方法和release方法的使用次数相等。

在IOS中,内存管理存在两种方式,分别是MRC(MannulReference Counting)和ARC(automatic reference counting)。在Xcode4.2版本以前,内存管理只有MRC管理方式,即需要对每个对象手动编写语句释放内存。而ARC机制类似Java或Python语言中的垃圾回收,系统会自动识别并清理不再使用的对象。两者相对而言,MRC可以使开发者清楚地知道自己所要管理的对象内存,ARC则是系统自动管理,开发者可能会不清楚自己要管理的内存。与此同时,使用MRC机制容易导致内存泄漏,原因就在于开发者可能在编码的过程中漏写少数的release等语句,而使用ARC机制时,开发者能集中更多的精力在代码的功能实现上。

2.2.3 信息交互

IOS客户端上的APP要与接口程序进行信息交互,所采用的是HTTP[9]中的Get方式和Post方式,两者之间存在一定的差别。Get方式会将URL的一部分用浏览器保存起来,且Get方式的参数一般都跟在URL后面,支持的数据也比较小。相对于Post方式,Get方式更不安全,特别针对与用户登录的账户名和密码,因为Post方式的参数不会被浏览器记录下来的,而在Get方式中,数据作为URL的一部分是可以在浏览器的历史中被访问到的。以下是POST方式请求的关键代码,其中还要涉及到回调方法。

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 接口技术

接口开发主要使用PHP[10]语言以及PHP中的SSH2扩展,分为登录验证、作业查询、节点查询三个模块。其中登录验证模块从客户端接收包含用户名和密码的POST请求,作业和节点查询模块接收包含用户名、密码、指令和参数的POST请求。通过ssh2_connect方法连接目的PBS所在的服务器,然后通过ssh2_auth_password方法进行SSH登录验证,登录模块通过判断验证方法的返回值来返回登录结果。

查询模块通过ssh2_exec方法向远程主机发送指令并将输出重定向到文件中,然后调用ssh2_scp_recv方法将文本获取到服务器端,服务器端解析文本提取出有用数据并转换成JSON数据返回给客户端。

2.2.5 数据格式及处理

JSON[11]是一种常用的轻量级交换数据的格式,方便通信之间的传递同时方便接口程序和APP解析数据。

JSON 语法是 JavaScript[12]对象表示语法的子集,格式要点如下:

• 数据在键值对中

• 数据由逗号分隔

• 花括号保存对象

• 方括号保存数组

数据格式示例如下:

{"calnode1":"down","calnodes_num":"1","calnodes_num_free":"0","calnodes_num_down":"1"}

在IOS5以后,APPLE公司提供了对JSON数据的原生支持,使用NSJSONSerialization方法可以方便处理JSON数据。此方法可以将JSON数据转为Object-C的字典类型数据以便程序进一步处理。关键处理代码如下:

NSDictionary *Dir = [NSJSONSerialization JSONObjectWithData:[jsonData dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments|NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:nil];

在接口程序中,用如下代码将数据转为JSON:

echo json_encode(data);

3 实验及测试结果分析

3.1 实验环境

本实验在浪潮TS10K集群系统平台上采用5台(配置为:CPU Intel Xeon X5660 2.8 GHz,内存24 GB,硬盘300 GB ,Redhat Enterprise Linux Server 5.5,OpenMPI并行环境)服务器作为计算节点,1台(配置为:CPU Intel Xeon E5620 2.4 GHz,内存24 GB,硬盘300 GB ,Redhat Enterprise Linux Server 5.5操作系统)服务器作为管理节点,搭建实验所需的计算集群;在移动端的IOS平台下进行了真机测试和模拟器测试。

3.2 实验与结果分析

3.2.1 移动端APP登录集群系统

登录测试如图4-图6所示。

图4 登录测试_初始界面

图5 登录测试_密码错误

图6 登录测试_密码或用户名为空

由图4-图6可以看出,在登录阶段采取了本地和网络检测账户密码的两种方式。本地先对账户密码采取判断为空的情况,在这种情况下,账户密码不会提交给服务器而是直接判断登录失败并给出相关说明。在账户密码为合理的组合情况下,提交服务器判断账户密码是否正确并作出相应的响应。

3.2.2 集群及计算作业状态监控

通过在实验集群上采用PBS作业调度系统提交VASP、Matlab、和MPI并行计算程序作为计算作业,在移动端APP上对集群和计算作业的运行状态进行监控。

集群状态视图如图7所示。

图7 高性能计算集群状态视图

计算作业状态视图如图8所示。

图8 计算作业状态视图

由图7,集群视图展示繁忙、空闲两类计算节点的使用情况,并用柱状图和数字显示的方式进行直观的状态呈现。由图8,计算作业的运行状态内容包括作业名称、所属用户、所处状态和计算完成所剩余时间,都可以在移动APP端较好地呈现,对用户关注的计算作业的属性,已经可以较全面地呈现。

4 结 语

本文通过IOS前端设计、信息交互和接口程序设计等方面介绍了高性能计算作业监控系统移动APP的设计和开发。本APP为专业人员学习PBS、TORQUE高性能计算集群作业调度系统,使用高性能计算集群提供了方便。今后的工作将对高性能计算作业监控系统移动APP与计算集群的交互和统计功能、软件的性能等方面做进一步的实现和完善。

[1] 赵毅, 朱鹏, 迟学斌,等. 浅析高性能计算应用的需求与发展[J]. 计算机研究与发展, 2007, 44(10):1640-1646.

[2] 李源, 郑全录, 曾韵. PBS作业管理系统分析[J]. 现代计算机(专业版),2004(3):17-19,23.

[3] 米军. 一种基于C/S架构的图书馆管理系统设计[J]. 煤炭技术,2010,29(9):248-251.

[4] 郑雷雷, 宋丽华, 郭锐, 等. B/S架构软件的安全性测试研究[J]. 计算机技术与发展,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内存开发管理机制的研究[J]. 计算机与现代化,2013(3):196-199,203.

[9] 徐健, 王涛. HTTP/1.1的分析[J]. 西南师范大学学报(自然科学版),2004,29(2):315-319.

[10] 肖维明. 基于PHP+MySQL的网站开发[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)。王玮,学士,主研领域:高性能计算,作业调度。李薛剑,讲师。俞昳豪,学士。华松健,学士。钱菲,学士。

TP311

A

10.3969/j.issn.1000-386x.2017.07.032

猜你喜欢
高性能内存集群
海上小型无人机集群的反制装备需求与应对之策研究
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
培育世界级汽车产业集群
一种无人机集群发射回收装置的控制系统设计
一款高性能BGO探测器的研发
勤快又呆萌的集群机器人
高性能砼在桥梁中的应用
内存搭配DDR4、DDR3L还是DDR3?
SATA推出全新高性能喷枪SATAjet 5000 B