APP下载

MATLAB 计算集群在校园云上的SaaS 自动化解决方案

2021-03-25姚青洲文敏华

软件导刊 2021年3期
关键词:工具箱管理器许可证

许 天,姚青洲,文敏华,罗 萱

(1.上海交通大学网络信息中心;2.上海交通大学学生创新中心,上海 200240)

0 引言

从2006 年Google 提出云计算概念至今,云计算技术已经逐渐成熟、稳定。除为IT 管理员提供的基础设施服务(Infrastructure as a Service,IaaS)、为开发者提供的平台服务(Platform as a Service,PaaS)外,云服务供应商开始将更多关注点放在面向用户的SaaS(Software as a Service)云计算模式上[1-3]。在传统的软件服务模式中,消费者需要将自行购买的软件部署在IT 基础设施上。然而在部署过程中,不同软件版本会对IT 基础设施的系统兼容性有所要求,应用主体及其相关组件安装工程量较大,商业软件的许可证需要定期调整等,这些问题都要求消费者在部署与维护过程中具备一定的技术能力并投入时间,而同时软件的购入、升级和每年的维护也会产生高昂的费用[4-5]。因此,SaaS 凭借着灵活性与扩展性强、安全性高和费用低的优势被逐渐应用于很多企业的软件系统中,例如银行、电子商务企业等[6]。

MATLAB 是由美国MathWorks 公司出品的商业数学软件,是一款用于算法开发、数据可视化、数据分析以及数值计算的应用软件,为用户提供高级技术计算语言和交互式环境。MATLAB 提供的多种工具箱使其除能实现数值运算外,还能适用于控制系统设计、图像处理、信号处理与通讯、金融建模与分析等多个领域[7-8]。

作为一款跨领域的软件,MATLAB 在高校各学科的教学和科研中有着广泛应用。但在校内各个课题组的实际使用过程中,经常会出现IT 基础设施计算能力不足和软件授权激活繁琐等一系列问题,主要表现在传统IT 基础设施难以支持大规模的计算量和数据量等方面,而MATLAB 在高校科研中涉及到的数值矩阵计算、机械模型仿真、医学图像三维分析等案例,对硬件计算能力和数据读写能力有着较高要求。传统的IT 基础设施硬件资源有限,难以满足计算需求。虽然MATLAB 支持集群计算功能,但集群的搭建过程较为复杂,且大规模的计算集群受限于硬件资源,在高校院系服务器环境中未被普遍使用。MATLAB 校园版提供给用户的软件授权通常需要用户发起账号注册申请,经软件管理员审核后,再由用户在服务器上手动激活,整个操作流程花费时间较长,且较为繁琐。

相关研究提供了MATLAB 在云上和高性能计算(High Performance Computing,HPC)上的解决方案。部分公有云供应商提供MATLAB 云上支持,如亚马逊AWS[9]和微软Microsoft Azure[10]的SaaS 方案能够实现MATLAB 在其云平台上的安装,但涉及集群功能实现的分布式工具箱MATLAB Parallel Server 仍需要用户手动安装及配置,且需要用户自己提供对应版本的许可证并手动完成授权激活过程。当集群规模较大、节点较多时,配置需要耗费较长时间。HPC 方案是由服务提供商在HPC 系统中部署分布式工具箱、授权激活并完成集群配置[11-12],用户从客户端提交作业至HPC 集群进行计算。但HPC 是一个相对集成的系统,不同的HPC 系统需要用户掌握不同的作业提交方式,且HPC 提供的应用运行环境与传统操作系统运行环境差别较大。另一方面,HPC 的设计一般为所有用户共享同一资源池,在作业较多的时间段需要排队等候。

针对上述问题,本文提出一种MATLAB 在校园云上的SaaS 技术设计方案,将云计算丰富的硬件资源与MATLAB集群功能相结合,以满足高校科研计算对硬件资源量、计算速度的要求,同时在多个计算集群间采用相互隔离的策略,以保障系统的并发性和稳定性。通过在云上搭建MATLAB 许可证集群和云平台脚本编排的方式,简化用户在计算环境部署和软件授权过程中的手动操作,实现云计算自动化对高校科研工作的支撑。

1 准备工作

1.1 MATLAB 集群分布式计算实现

MATLAB 并行计算功能由MATHWORKS 公司提供的Parallel Computing Toolbox 实现,该工具箱可以利用并行for 循环、特殊数组类型和并行化数值算法等,无需进行CUDA 或MPI 编程,即可实现计算程序的并行处理[13]。

MATLAB 分布式集群构建需要使用MATLAB Parallel Server,该工具箱可将分散在不同节点上的CPU 资源池汇聚成一整个资源池,结合Parallel Computing Toolbox 完成计算任务对整个CPU 资源池中资源的调度,以实现MATLAB在云上的扩展。MATLAB 分布式集群计算系统如图1 所示[14]。

Fig.1 MATLAB distributed cluster computing system图1 MATLAB 分布式集群计算系统

1.2 jCloud 二期校园云平台

jCloud 二期校园云平台简称jCloud2.0,是上海交通大学网络信息中心于2018 年6 月开始建设的校级云计算平台。云平台基于OpenStack 框架,并采用社区云[15]的部署模式,由网络信息中心员工负责运维工作,服务对象为上海交通大学的院系、部门、研究团队和附属单位等。云平台的操作模式类似公有云[16],向服务对象提供可供操作的控制台界面。用户可通过校内统一账号登录云平台控制台界面,进入与个人账号绑定的独立项目进行资源服务的自助创建与管理。

除服务校内的信息化系统外,jCloud2.0 的另一个主要用途是为院系项目组日趋增长的科研计算需求提供计算能力。为此,云平台配备了丰富的计算硬件资源,资源池中包含12320 核CPU、118TB 内存以及12PB 存储。

2 方案实施

2.1 云上许可证管理器集群搭建

作为一款商业软件,MATLAB 的使用需要得到授权。在云上部署MATLAB 集群计算环境需要的授权包含MAT⁃LAB 主程序及应用工具箱、MATLAB Parallel Server、许可证管理器(License Manager)。

作为MATLAB 许可证管理器的主机可以向需要授权的客户端机器提供浮动授权文件,文件中包含许可证管理器主机的MAC 地址。由于物理主机MAC 地址的唯一性,一旦更换作为许可证管理器的主机,会出现与该主机交互的客户端机器无法正常授权使用的情况。采用云主机作为许可证管理器,可将指定的MAC 地址移植至新的云主机,避免了在更换许可证管理器时,由于新主机的MAC 地址与浮动授权文件中写入MAC 地址不对应而产生软件授权失败的问题。

MATLAB 许可证管理器使用的是FlexNet Publisher 软件授权管理器,支持Three-Server Redundancy[17],即通过3 台作为许可证管理器的主机搭建高可用授权许可集群。创建3 台云主机作为许可证管理器,并为这3 台云主机绑定可供校园网客户端机器访问的互联网IP 地址,完成与客户端机器的授权交互,如图2 所示。克服了传统模式下将整台物理服务器专用于授权服务造成的硬件资源浪费,并节约了物理服务器管理所投入的人力成本。

Fig.2 Authorization management of MATLAB on cloud图2 云上MATLAB 的授权管理

在该方案中,3 台许可证管理器云主机放置于云平台管理员账号下,始终开启并提供服务。浮动授权文件中包含MATLAB 主程序和应用工具箱,以及MATLAB Parallel Server 的授权声明。MATLAB 在激活时会自动与许可证管理器云主机交互完成所有功能的授权,无需任何用户或管理员手工操作。

2.2 科研模板解决方案

科研模板是jCloud2.0 上IT 基础设施及软件部署的“一键式”解决方案。使用科研模板功能,用户可在没有任何IT 背景的情况下,通过简单的参数定义在几分钟时间内快速完成所需科研软件计算环境的搭建。

2.2.1 用户自定义参数

科研模板的核心是依靠OpenStack 编排服务(Open⁃Stack Heat[18]),以脚本的方式实现云主机、网络、存储等相关资源的编排。相应的参数接口如云主机数量、云主机硬件配置模板(flavor)、用户名、密码、网络带宽等将通过OpenStack 控制台服务(OpenStack Horizon[19])暴露给用户以供选择,如图3 所示。

以图3 中的“配置”参数为例,该参数提供了多种计算集群云主机硬件配置模板类型,用户可根据需要选择对应配置,编排脚本会在启用过程中调用所选择的配置,并完成科研模板创建。以下为编排脚本中对“配置”的声明及调用。

Fig.3 User definable parameters of APP template图3 科研模板用户可定义参数

2.2.2 计算环境实现

用户创建MATLAB 科研模板时所调用的云主机镜像由云平台管理员上传,其基于标准操作系统(CentOS7.4 和Windows Server 2012 R2)镜像,部署了MATLAB 应用程序及所需工具箱。科研模板创建完成后无需用户再进行软件安装工作。

用户在控制台界面确认了参数配置后会启动Heat-Engine,OpenStack 编排服务根据模板的内容参数执行以下步骤:选择对应的MATLAB 科研模板镜像,匹配硬件配置模板,挂载根磁盘,创建云主机与私有网络并为云主机挂载网卡,创建安全组并将私有网络加入安全组以及绑定互联网IP 等,如图4 所示。

Fig.4 Implementation procedure of APP template图4 科研模板实现流程

通过以上步骤,根据编排脚本的内容在用户的云平台项目内创建并配置包含主机、存储、网络在内的基础设施资源,完成计算环境的自动化部署。计算结束后,用户可在控制台界面上点击“删除”按钮,由后台调用相应的编排脚本,实现“一键式”的资源释放,完成本次云计算资源的租用周期。

2.2.3 主从节点服务启动

开启MATLAB 并行资源池需要进入操作系统安装并启动MDCE(MATLAB Distribute Computing Engine)服务。由于MATLAB Parallel Server 工具箱在安装完成后生成了MDCE 服务的安装和启动脚本,本文在编排脚本中加入调用命令,在计算集群所有节点上运行MDCE 服务安装和启动脚本。以Windows 版本为例,命令如下:

此外,开启MATLAB 并行资源池需要在主节点上启动MDCE 任务管理器。为了保证服务启动时间和计算集群效率,本文获取了计算集群的CPU 总核数,并设置Worker 工作端数量与集群CPU 总核数相对应,以编排脚本调用MDCE 任务管理器脚本(startjobmanager.bat)的方式启动MDCE 任务管理器。

主从节点的服务启动为科研模板创建流程的最后一步。完成创建后,可直接在MATLAB 应用程序界面发现配置完成的集群配置文件(Cluster Profile),加载该配置文件即可调用计算资源池,如图5 所示。

Fig.5 Dual-node 16 core MATLAB cluster configuration file discovery图5 双节点16 核的MATLAB 集群配置文件发现

2.3 性能测试

2.3.1 集群扩展能力

在一个计算任务可被均匀分割的前提下,并行系统计算效率及计算使用的线程数应呈线性关系[20-22]。为了验证MATLAB 科研模板在jCloud2.0 上的扩展能力符合该趋势,本文进行了大规模的扩展性测试。

在扩展性测试中采用16 节点64 核CPU 集群,集群配置文件包含1 024 个Worker 工作端,每个工作端对应一个CPU。所采用的测试案例为大规模的循环累加程序,以尽可能为集群中每个节点均匀分配任务,并减少节点间数据传输和网络通信对扩展性测试造成的影响。测试脚本如下:

测试结果如表1 所示。

Table 1 Scalability test of MATLAB distributed system表1 MATLAB 分布式系统扩展性测试

从表1 可以看出,随着计算集群工作端数量的增加,计算时间逐渐减少,且两者线性对应。计算效率与参与计算的集群CPU 之间的关系符合预期,MATLAB 在云平台上有着符合期望的扩展能力。

同时,本文采用相同算例,对一般学院的计算环境(单台32 核CPU 服务器)和jCloud2.0 上云主机集群的扩展能力进行对比,测试结果如图6 所示。由于CPU 型号主频不同,在使用小于等于32 个工作端进行计算时,学院服务器的计算时间略长于云主机集群,而在开启32 个以上的工作端后,学院服务器会出现多个工作端同时占用一个CPU的情况,实际计算能力受限于CPU 的核数,扩展能力受到限制。

Fig.6 Comparison of scalability between jCloud2.0 computing cluster and faculty server图6 jCloud2.0 计算集群与学院服务器扩展能力对比

2.3.2 系统并发性及稳定性

MATLAB 科研模板创建的计算集群为独立的系统,创建多个科研模板时,将集群之间互相隔离以保证在每个集群中进行的计算任务不会被干扰。对此,本文采用3 个4节点16 核CPU 集群进行验证,每个集群包含64 个Work⁃er 工作端。3 个集群同时运行复杂度较高的整数因式分解算例(计算密集型算例)[23],结果如表2 所示。

Table 2 Concurrency test of MATLAB distributed system表2 MATLAB 分布式系统并发性测试

从表2 可以看出,在同时运行相同算例的情况下,3 个集群表现出的性能相近。每个集群独享所占用云平台计算、存储和网络资源的设计在一定程度上保障了系统的并发性和稳定性,避免了因“整体式资源池”架构中多个计算任务间资源争夺造成性能不稳定的情况。

2.4 数据后处理

除jCloud2.0 云平台服务外,上海交通大学网络信息中心也向全校师生提供高性能计算平台服务。但高性能计算平台不向普通用户提供图形化界面,用户通常需要将计算结果从高性能计算平台拷贝到自己的本地服务器上,再在本地服务器上完成数据的可视化和绘图等后处理工作。在数据量较大的情景中,该操作较为复杂、繁琐。

针对这一问题,本文打通了云平台与高性能平台的数据通道,用户可通过简单的挂载操作,在MATLAB 科研模板创建的云主机上挂载自己在高性能计算平台上的用户目录,从而实现对文件、数据的访问。由于云主机支持图形化界面,用户可直接在云主机上使用MATLAB 进行结果数据的后处理,而无需复杂的数据搬迁工作。

3 运行成效

据统计,截至目前有超过10 个院系的多个课题组在云平台上使用MATLAB 进行科研工作,较之前的计算能力整体提升了3~10 倍,满足了科研课题组对计算能力的需求。同时在教学过程中,用户可通过简单的操作获得部署了MATLAB 的云主机资源,从而节约了安装软件、授权激活等操作消耗的时间,提升了实验课程教学效率。

4 结语

本文提出一种MATLAB 在校园云上的SaaS 解决方案,该方案通过在云上搭建MATLAB 许可证管理器集群、实现MATLAB 分布式集群、科研模板编排脚本自动化部署计算环境以及与校级高性能计算平台的数据互通,解决了MATLAB 在高校传统使用方式中存在的授权繁琐、集群部署耗时长、计算扩展能力差、后期处理过程中数据传输困难等问题,并就当前研究中的难点如高可用授权管理、保障系统并发稳定性等进行了优化设计,旨在进一步发挥校园云对高校软件科研及教学工作的支撑作用。随着高校信息化的发展,如何在校园云上为用户提供更优质的软件服务体验,如预置仿真模型脚本、实验数据后处理一键式服务等,将是下一步的研究方向。

猜你喜欢

工具箱管理器许可证
爆笑三国之打架许可证
秦山核电厂运行许可证延续研究与应用
应急状态启动磁盘管理器
Windows文件缓冲处理技术概述
基于MATLAB优化工具箱优化西洋参总皂苷提取工艺
全国首批排污许可证落地
Matlab曲线拟合工具箱在地基沉降预测模型中的应用
银川市放疗许可证发放现状分析
高集成度2.5A备份电源管理器简化锂离子电池备份系统
搜狗分号工具箱 输入更便捷