MPI并行作业在云计算平台上的测试研究
2014-07-24赵伟彪吴俊峰袁帅
赵伟彪 吴俊峰 袁帅
摘要:随着并行空间计算任务的不断增多,传统的MPI服务器集群容易出现排队时间长、拒绝服务甚至系统瘫痪等情况。利用虚拟化、作业调度等技术构建云计算平台上的MPI虚拟集群可以提升MPI服务性能,从整体上缩短排队等待的时间,从而使得服务质量QoS(Quality of Service) 得到保证。通过在OpenStack上部署MPI虚拟服务器集群、利用Torque实现MPI作业的调度管理的基础上,使用DEM(Digital Elevation Model) 等高线生成算法组成MPI作业队列,对传统MPI物理集群与MPI虚拟集群进行性能对比分析,结果显示了云计算平台上MPI并行环境在面对大量任务作业时的优势。
关键词: 并行计算;云计算;虚拟化;Torque作业调度;DEM;性能测试
中图分类号:TP30 文献标识码:A 文章编号:1009-3044(2014)15-3665-03
Research on the Testing of MPI Parallel Computing Tasks Based on Cloud Computing Platform
ZHAO Wei-biao, WU Jun-feng, YUAN Shuai
(School of Resources and Environment, University of Electronic Science and Technology of China, Chengdu 611731, China)
Abstract: With the number of the MPI tasks scheduled in the queue rising steadily, to certain tasks, such phenomena will be easily to appear, e.g., waiting long time, being delayed or even denied to service. Utilizing the virtualization, job scheduling and related technologies in the field of cloud computing can enhance the QoS (Quality of Service) in the MPI server cluster, and the mentioned problem would be solved to a certain degree. In the experiments, some Geo-spatial MPI parallel tasks, the parallel contour generation algorithm from DEM with MPI, are scheduled by Torque PBS to the different computing platforms respectively, i.e., the combined platform with cloud computing (OpenStack) and parallel computing, and the traditional parallel computing platform. From the simulation tests results, it can be easily found that the combined computing environment has dominant advantages than the traditional finally.
Key words: parallel computing; cloud computing; virtualization; Torque PBS; performance test
1 概述
随着对地观测技术、地面传感器等的不断发展,空间数据的数据量呈现出几何级增长[1],并由此带来了计算密集(Computing Intensity)、数据密集(Data Intensity)、并发访问密集(Concurrent Intensity)等一系列的空间信息科学计算问题[2]。运用并行计算(Parallel Computing)技术解决空间数据处理问题是高性能地学计算中最为重要的方式之一。并行计算具有原理简单、计算能力强、灵活方便等优点,同时也具有资源利用率低、扩展性差等缺陷,尤其在面对MPI作业队列时易出现排队等待时间过长的问题。面对这些问题,现有解决方式大多是从购置专用平台、提升物理服务器性能等角度进行,往往具有购置成本高、维护复杂等不足。云计算(Cloud Computing)的出现提供了一种新的解决方式。云计算是一种通过网络以服务的方式提供动态的、可伸缩的、资源虚拟化的计算模式[3]。用云计算解决并行计算中存在的问题,现有的研究大多是从云计算中分布式文件系统(如Google的GFS(Google File System)、并行編程模型MapReduce)等角度进行的[4][5],存在效率低、性能差、适用性不足以及空间数据不完全兼容等的问题。从云计算的基础设施层面IaaS(Infrastructure as a Service)入手,直接构建底层的MPI运行环境,能够很好地实现并行计算与云计算的结合,并将MPI并行空间算法迁移到云计算平台上,从基础层面充分利用云计算的可共享性(Share-ability)、高容错性(High Fault-tolerant)、高扩展性(High Scalability)等特点[6],可以充分实现高性能地学计算的计算优势,从而有效地解决海量的空间数据处理中遇到的数据密集、计算密集、并发访问密集[7]等高性能地学计算问题。
2 并行计算与云计算基本概念
2.1 并行计算
并行计算的基本思想是利用多个处理机协同解决同一个算法问题,即将被求解的计算问题分解成若干个部分,各部分均由一个独立处理机来同时进行处理[8]。MPI (Message Passing Interface)[9]是目前集群系统中尤其是在高性能地学计算领域最重要的并行编程工具之一,它通过消息传递这一方式实现并行运行的程序之间进行相互通信,具有运算效率高、功能强大、移植性能好等多种优点[10],而且拥有较多的实现版本,常见的如MPICH、IBM MPL、LAM等,这些版本在并行计算中的应用非常广泛,加之各大厂商的大力支持,使其成了广泛采用的并行编程标准。本研究中所用到的空间算法的测试用例即为该编程标准下的并行实现。
2.2 云计算的概念
云计算目前还没有一个公认的定义。澳大利亚墨尔本大学的Rajkumar Buyya认为云计算是一种并行的分布式系统,包含了众多互联的虚拟化计算机,按需提供可扩展的服务[11]。芝加哥大学的Ian Foster将云计算与网格计算做了全面的比较后指出,云计算是由规模经济驱动的大规模分布式计算范例,通过因特网向外部用户分发按需的抽象的、虚拟化的、动态扩展的、被管理的计算能力、存储、平台和服务[12]。维基百科对云计算的定义是:云计算是一种通过Internet以服务的方式提供动态可伸缩的虚拟资源的计算模式[13],其核心思想是利用虚拟化技术使网络上的资源和计算能力更有效地被分享,以达到高效率、低成本计算的目的。按照服务模式划分,云计算可以分为公有云(Public Cloud)、私有云(Private Cloud)以及混合云(Hybrid Cloud)[14],其中混合云可以认为是公有云和私有云的混合。由于私有云具有专用的硬件资源和特定的用户,在计算精准性、安全性等方面大大优于公有云,因此更适合用于地学计算领域的相关研究。
3 整体实验方案设计
利用云计算技术实现虚拟化的MPI并行集群环境,从IaaS层面实现云计算与并行计算的紧密结合,可以提升MPI并行空间算法作业的执行效率,减少整体上的排队、运行时间。为了测试云计算平台上的MPI虚拟集群平台的这种优势,下面从实验方法、实验架构以及测试方法三个方面进行设计。
3.1 实验方法
为了实现云计算平台上的MPI并行环境,采用开源云计算项目OpenStack[15]在普通物理机上搭建云计算平台,采用KVM虚拟化技术[16]创建MPI虚拟机镜像模板,利用虚拟机克隆技术实现云计算平台上的MPI并行环境,使用Torque PBS[17]作为调度管理,并选择具有代表性的测试用例对上述环境进行测试。为了使测试具有对比性,对具有同样配置的MPI传统物理集群进行相同测试,对测试结果进行分析比对,得出结论。
3.2 实验架构
总体结构由基础设施层、虚拟化层、云平台管理层、作业调度器以及MPI虚拟集群层组成。基础设施层由物理服务器、网络设备等硬件以及操作系统等软件组成,其中物理设施必须能够支持虚拟化技术;虚拟化层主要负责对物理基础设施进行虚拟化的具体实现,包括虚拟机的创建、启动等底层操作;云平台管理层负责云计算上MPI虚拟节点的调度、管理;最顶层是MPI虚拟服务器集群,负责对外提供基于Internet的MPI并行计算服务;作业调度器则根据负载分配策略对MPI作业任务队列进行分发调度和管理。总体架构如图1所示:
3.3 测试设计
采用DEM等高线生成算法的MPI并行化算法对云计算平台上的MPI虚拟集群平台(称为“Platform 1”)和具有完全相同配置的传统物理集群平台(称为“Platform 2”)进行对比测试。在此分别选择不同的数据进行并行计算任务并组成MPI作业队列。具体选择SRTM 90m分辨率的DEM数据作为处理对象(下载地址http://srtm.csi.cgiar.org/),使用Torque PBS按照跨节点平均调度的策略进行调度分配,测试两平台中各个任务的运行时间以及整体运行时间,分析并得出结论。
4 测试结果与分析
5 结束语
为了提升并行环境服务性能,采用开源云计算技术OpenStack构建了云计算平台上的MPI并行环境,从基础设施层面实现了MPI并行计算与云计算的有效结合,并通过Torque PBS功能的组合部署,实现了云计算平台上MPI作业的有效调度。DEM并行空间算法的测试结果显示,在处理并行空间算法时,云计算平台上的MPI并行环境能够同时处理更多的作业任务,具有更优的性能。这为并行空间算法向云计算平台的迁移提供了借鉴价值,具有一定的研究意义。
参考文献:
[1] 刘异,呙维,江万寿,等.一种基于云计算模型的遥感处理服务模式研究与实现[J].计算机应用研究,2009, 26(9):3428-3431.
[2] Yang C., Goodchild M,Huang Q,Nebert D,Raskin R,Xu Y,Bambacus M,Fay D.Spatial cloud computing: how can the geospatial sciences use and help shape cloud computing[J].International Journal of Digital Earth,2011, 4(4):305-329.
[3] Wikipedia. Cloud Computing[EB/OL].http://en.wikipedia.org/Wiki/Cloud_computing, July 16, 2011.
[4] 郭本俊,王鵬,陈高云,黄健.基于MPI的云计算模型[J].计算机工程,2009,35(24):84-86.
[5] 丁文劍.云计算中消息传递相关问题探讨[J].无线互联科技,2012(1):67-68.
[6] 陆嘉恒,文继荣,毛新生,等.分布式系统及云计算概论[M].北京:清华大学出版社,2011.
[7] 万鹏,黄方,赵伟彪,卜栓栓,董蕾,冯杰.基于云计算的并发访问密集型WebGIS QoS研究[J].地理信息世界,2013,20(4):20-26.
[8] 王小会,张立群,李秀芳.RaraRete: 一种基于Rete算法的并行性匹配算法[J].计算机科学,2004,31:112-114.
[9] 都志辉.高性能计算之并行编程技术——MPI并行程序设计[M].北京:清华大学出版社,2001:13-14.
[10] 洪熊,戴光明,冷春霞.构架Linux环境下基于MPICH的工作站机群[J].微计算机信息,2006,3(3):124-126.
[11] Rajkumar Buyya, Chee Shin Yeo, Srikumar Venugopal. Market-Oriented Cloud Computing: Vision, Hype, and Reality for Delivering IT Services as Computing Utilities[C]. In Proceedings of the 10th IEEE International Conference on High Performance Computing and Communications (HPCC 08). Dalian: IEEE. 2008:5-13.
[12] Ian Foster, Yong Zhao, Ioan Raicu, Shiyong Lu. Cloud Computing and Grid Computing 360-Degree Compared[C]. In Proceedings of the 2008 Grid Computing Environments Workshop (GCE08). Austin: IEEE. 2008:1-10.
[13] Derrick Kondo, Bahman Javadi, Paul Malecot, Franck Cappello, David P. Anderson. Cost-Benefit Analysis of Cloud Computing versus Desktop Grids[C]. In Proceedings of the 2009 IEEE International Symposium on Parallel & Distributed Processing (IPDPS 2009). Rome: IEEE. 2009:1-12.
[14] Vaquero L M, Rodero-Merino L, Caceres J, et al. A break in the clouds: towards a cloud definition[J]. ACM SIGCOMM Computer Communication Review, 2008,39(1):50-55.
[15] OpenStack. Open source software for building private and public clouds[EB/OL]. http://www.openstack.org/.
[16] Red Hat. Kernel Based Virtual Machine[EB/OL]. http://www.linux-kvm.org/page/Main_Page.
[17] Wikipedia. TORQUE Resource Manager[EB/OL].http://en.wikipedia.org/wiki/TORQUE_Resource_Manager.