一种基于Web框架的高性能地学计算服务系统的制作方法

文档序号:19042564发布日期:2019-11-05 23:17阅读:221来源:国知局
一种基于Web框架的高性能地学计算服务系统的制作方法

本发明属于地学计算领域,特别涉及到高性能地学计算领域,具体为一种基于Web框架的高性能地学计算服务系统。



背景技术:

高性能地学计算作为目前地学领域重要的研究方向之一,大幅提升了地学数据的处理速度。而将复杂操作的高性能计算平台如何方便地提供给没有高性能计算平台操作经验的地学用户,是当前高性能地学计算研究中重要的一环。因此,开发高性能地学计算使用平台对于高性能计算在地学领域的开展具有重要意义。

目前高性能计算(HPC)领域中,终端用户使用高性能计算资源主要有三种方式:一是通过命令行使用,二是通过客户端GUI的方式使用,三是通过Web的方式使用。

在命令行模式下,用户通过SSH命令连接到HPC系统中,使用各种命令完成作业管理工作,在这种方式下,系统为用户提供了丰富的操作命令和良好的交互性,但是用户需要掌握大量的命令行操作规范,同时对于一些运行环境的配置也必须熟悉,对于普通用户而言,操作复杂。

客户端GUI模式,客户端模式为用户提供了较好的操作界面,大大方便了用户的操作,同时还可以提供一些终端环境,功能丰富,在用户不需要掌握更多技术的情况下就可以操作。但是,GUI环境,对于用户来说还是有些麻烦,需要下载安装,同时也不利于后台提供新功能的添加,给用户也带来了一些不便。

Web模式下,用户通过网页完成各种作业任务的管理,操作简单方便,便于后台功能的添加,使用户在何时何地都可以便捷的使用高性能计算资源,同时Web天生跨平台的特性使得他在这方面具有很大优势。

目前,很多采用Web的方式使用HPC,这些平台都具有很大程度的相似,它们都具有的通用性,很难照顾到各个领域,而一些针对各领域的研究,将某一功能固化,使得平台扩展性不太好,同时也导致了用户的流失。

考虑到这些问题,开发高性能地学计算的Web平台,同时部署各种地学算法,满足大部分用户的使用,最终使用户在仅需少数计算机操作技能的用户就可以快速使用高性能计算平台,成为一种需求。



技术实现要素:

针对上述存在问题或不足,为实现操作简单、使用方便、易于管理的特点,使地学相关的用户可以更好地使用高性能计算平台完成地学相关的计算任务,本发明提供了一种基于Web框架的高性能地学计算服务系统。

该基于Web框架的高性能地学计算服务系统,包括集群信息模块、信息监控模块、算法管理模块、数据管理模块、任务管理模块和用户分享模块。

任务管理模块通过系统的算法管理模块获取系统中已有的算法,实现用户对所需要的算法的选择;通过集群信息模块获取高新能计算平台的平台信息;通过信息监控模块获取系统平台的实时信息,包括任务提交时间,开始运行时间,结束时间,共运行时间,以及任务结束后PBS生成的相关日志;通过数据管理模块获取集群计算结果生成的相关数据,并进行展现;

信息监控模块从集群信息模块中获取监控目标的信息为任务管理模块提供平台实时信息;

算法管理模块从集群信息模块中获取运行平台的信息,结合自身模块所存储的算法进行算法的选择,为任务管理模块提供相关算法;同时算法管理模块可通过用户分享算法的方式提供系统尚未存储的算法;

所述集群信息模块:包含所有连接的集群信息,提供集群的详细信息,包括集群的位置,IP地址,用户,相关数据的存储位置,以及集群的描述,以方便用户更好的了解集群的信息;用户通过给定的用户名以及IP地址连接到集群,并通过给定的各个目录实现对数据的操作;

所述信息监控模块:系统定时获取后台集群信息,通过解析集群的信息,经统计后以表格的形式呈现在网页,直观的显示当前集群的负载情况,以便用户预先对集群更好的了解,同时也可根据当前的负载选择合适的集群;

所述算法管理模块:负责针对系统提供的和用户分享的算法提供管理,呈现给用户使用;

所述数据管理模块:负责管理用户上传的数据,可进行简单的管理,该部分的操作首先需要用户查看相关算法需要的数据,根据需求上传所需要的数据,数据会暂时上传到Web服务器,再通过内部同步机制,实现和集群数据的同步;上传时,用户——数据——算法对应;

所述任务管理模块:供用户对任务的管理,涉及各种对任务的操作;

所述用户分享模块:用户可将自己定义的程序,通过固定的模板描述,上传给管理员,经管理员审核通过后,通过网页发布供所有用户使用;用户使用时需向管理员申请,填写申请信息,通过申请才可使用系统。

进一步的,所述算法管理模块,将各个算法分为基本信息、类型判定、输入输出和其他四部分,具体如下:

①基本信息,包括:来源,是否可为其他用户共享,程序路径,队列类型,所属集群,程序介绍;

②类型判定

③输入输出

通过上述判断输入输出,同时对于输入文件采取如下策略:对于单个算法,若有输入文件且不为目录,最多给予两个输入文件,若超过两个,可以修改采用目录形式输入,如若无法改变,可采用特定网页形式;输出选用输出文件和/或运行日志。

④其他,包括两个方面,一个是程序运行的其它参数,系统采用字符串的形式,管理员设置默认值,用户可以根据需要以及参数说明改写字符串,后台通过解析用户自定义的字符串参数,实现参数的修改;另一个是参数的说明,包括程序输入输出类型的说明,以及其它参数的范围的说明,便于用户对参数的修改。

进一步的,所述任务管理模块的任务状态具体如下:

系统后台通过定时向集群获取信息更新任务状态,根据上述任务状态信息触发相应事件完成对应操作;同时对于任务信息设计一个通用的模型,可以添加任务,模型分为基本信息、程序相关信息、运行集群信息、结果信息和其他信息。

①基本信息,提供任务的简单信息,包括任务归属,名称,任务ID,任务状态,脚本路径等信息,这些信息作为该任务的唯一身份,以快速的定位任务。

②程序相关信息,为算法提供基本的运行参数,主要包括程序ID、程序的输入输出信息、用户自定义参数部分、以及最终程序运行命令。

③运行集群信息,通过系统定时获取的集群信息对运行状态解析,并不断更新,从程序开始直到结束,包括任务提交时间,开始运行时间,结束时间,共运行时间,以及任务结束后PBS生成的相关日志等信息,以便用户掌握程序动态。

④结果信息,用来保存用户生成结果,从集群同步过来的数据存放,以及生成的预览图片存放信息等,为后期用户操作提供信息。

⑤其他信息为边缘性信息,即是否开启邮件支持,是否信息已发送等辅助性信息。

除了上述信息之外,平台还提供任务记录功能,以查看当前正在运行和等待的程序,方便了解其当前状态。

上述基于Web框架的高性能地学计算服务系统,其使用方法如下:

(1)查看集群信息,确认集群是否可用;

(2)选择需要的算法,了解算法信息,是否与需求匹配;

(3)若不匹配,可以分享自己的程序;若匹配,查看算法的输入输出规则;

(5)根据算法所需要的数据,选择数据进行上传;

(6)根据生成任务规则填写提交信息;

(7)提交任务后在管理页面对任务进行操作;

(8)任务结束后,可以通过任务详情页面下载或预览结果。

综上所述,本发明在最大程度上屏蔽后台信息,让用户在不接触任何后台信息的情况下实现对高性能集群资源的利用,最大程度的简化用户的操作,使用户可以像购物一样方便的使用。

附图说明

图1系统各模块间关系;

图2任务工作流程;

图3系统架构图;

图4任务管理页面视图;

图5系统各软件部署图示。

具体实施方式

下面结合附图和具体实施例对本发明做进一步的详细说明。

系统部署:

在部署系统中采用单台服务器和两个远程集群,服务器存放于本地实验室,服务器部署所有处理用户相关的软件,远程集群部署于一个机房,另一个位于实验室内,用于处理数据。

部署环境:

(1)远程集群,远程集群为地学程序运行的平台,在部署中远程集群主要有两个,一个为高性能计算平台,型号浪潮天梭TS10000。

表1集群硬件配置表

远程集群的软件环境如表2所示。

表2集群软件配置表

另一个集群为实验室已有的集群,具体配置如表3所示。

表3实验室集群配置表

(2)服务器端,服务器为系统运行的平台,所有服务均部署在此平台上,平台的部署环境如下:

硬件环境:Intel(R)Core(TM)i5-3570、千兆网络、1TB硬盘

软件环境:操作系统:Ubuntu Server 14.04

运行环境:Python 2.7.10

Web框架:Django 1.6.11

数据库:MySQL 5.5.47

其它软件:Celery 3.1.19,django-celery 3.1.17,virtualenv 13.1.2

RabbitMQ 3.2.4,uwsgi,Nginx 1.4.6,Supervisor 3.0b,Memcached 1.4.14,Pillow 3.0.0

系统部署实现:系统部署主要是将开发完成的服务运行在指定的服务器上,在本系统中采用了大量的软件,各种软件服务构建于Ubuntu Server之上,各个软件服务之间的关系如图5所示,图中的连线表明各应用之间的关系,同时也代表着数据的流向。

针对图中部署方式的说明:

(1)所有开发应用以及Python相关模块,同时还有应用服务器uwsgi部署于virtualenv建立的虚拟环境中,将部署应用的环境与系统原有的环境隔离开,可以防止在系统环境中安装过多模块,影响系统环境。

(2)应用服务分别由uwsgi和Celery启动,其中uwsgi启动Django应用服务,而对于异步队列和定时任务服务则需要由Celery启动。

(3)系统启动的uwsgi和celery进程由Supervisor管理,它在后台管理服务进程,遇到进程异常会自动重启进程。

(4)uwsgi启动服务以socket方式和Web服务器Nginx建立通信。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1