一种基于Web的作业计算系统的制作方法

文档序号:11582353阅读:332来源:国知局
一种基于Web的作业计算系统的制造方法与工艺

本发明涉及高性能计算领域,特别涉及一种基于web的作业计算系统。



背景技术:

随着现代社会科技的发展,对于大量数据构成的作业的高性能计算越来越受到人们的重视。在当今许多科学领域中计算管道或工作流已成为分析大量数据的重要工具。这些工作流的计算复杂度有着显着不同,但通常需要数天的计算时间和大量的计算能力。为了加快这些作业的执行,并行算法和高性能计算集群的应用已经变得越来越普遍。

计算机集群通过聚合来自多个单个计算机的资源来提供高性能。资源管理器是管理在这些集群上的作业的提交和调度以及对单个作业的资源(如存储器和处理核)分配所需的软件系统。随着计算建模和大数据分析在各领域中的普及,越来越多的研究人员需要使用高性能计算资源。

现有技术中,研究人员对作业的高性能计算,需要通过自身将作业和计算作业所需的工作流编写成资源管理器可以执行的脚本,使得研究人员对于编写脚本和开发工具的存在一定的障碍。并且由于不存在专门对作业进行高性能计算的系统,并无法对资源管理器的计算机集群进行整合,使得计算机集群对于作业的计算的能力不足。因此,如何提供一种对作业进行高性能计算的系统,使专业领域用户更容易使用高性能计算,是现今急需解决的问题。



技术实现要素:

本发明的目的是提供一种基于web的作业计算系统,以消除用户编写脚本和开发工具的障碍,使用户更容易对作业进行高性能计算,提升用户体验。

为解决上述技术问题,本发明提供一种基于web的作业计算系统,包括:

接收模块,用于通过网络接收作业和计算所述作业所需的工作流;其中,所述工作流由文件组成;

脚本生成模块,用于根据所述作业和所述工作流生成作业脚本;

执行模块,用于通过资源管理器执行所述脚本,获取所述作业的计算结果文件;

记录模块,用于记录所述计算结果文件。

可选的,所述接收模块,包括:

接收单元,用于通过网络接收预先设置的web界面发送的所述作业和所述工作流。

可选的,所述脚本生成模块,包括:

第一生成单元,用于根据所述作业、所述工作流和预设的请求资源,生成作业脚本;

第二生成单元,用于根据所述作业、所述工作流和所述web界面发送的请求资源,生成作业脚本;其中,所述请求资源包括计算所述作业所需的内存、内核数以及分配给所述作业的挂起时间。

可选的,该系统还包括:

访问模块,用于按预设时间间隔访问所述资源管理器,获取所述脚本执行状态对应的数据;

解析模块,用于解析所述数据,获取所述数据对应的所述作业的状态信息,并将所述状态信息保存到所述记录模块。

可选的,所述记录模块,包括:

展示单元,用于根据所述web界面发送的展示请求,将所述展示请求对应的所述数据的所述状态信息发送到所述web界面,以通过所述web界面向用户展示所述状态信息。

可选的,所述执行模块,还包括:

管理单元,用于根据所述web界面发送的管理请求,对所述作业执行对应的操作;其中,所述管理请求包括删除请求、取消请求、暂停请求和更改请求中至少一项。

可选的,所述管理单元,包括:

删除子单元,用于根据所述删除请求,删除所述资源管理器并未执行的所述脚本;

取消子单元,用于根据所述取消请求,取消所述资源管理器正在执行的所述脚本;

暂停子单元,用于根据所述暂停请求,暂停所述资源管理器并未执行或正在执行的所述脚本;

更改子单元,用于根据所述更改请求,对暂停的所述脚本进行对应的更改。

可选的,该系统还包括:

验证模块,用于根据所述接收模块通过网络接收的用户登录信息,判断所述用户登录信息是否为预设用户的登录信息;若是,则通过所述接收模块接收所述用户登录信息对应的用户的所述作业和所述工作流。

可选的,该系统还包括:

显示模块,用于获取所述资源管理器对应的集群的当前状态的总结信息;其中,所述总结信息包括所述集群中在线节点数量、离线节点数量、正在运行的处理器的比例、正在运行的作业数量、等待运行的作业数量和可用的磁盘空间量中至少一项。

可选的,该系统还包括:

共享模块,用于保存所述工作流和/或所述工作流中的预定的文件。

本发明所提供的一种基于web的作业计算系统,包括:接收模块,用于通过网络接收作业和计算所述作业所需的工作流;其中,所述工作流由文件组成;脚本生成模块,用于根据所述作业和所述工作流生成作业脚本;执行模块,用于通过资源管理器执行所述脚本,获取所述作业的计算结果文件;记录模块,用于记录所述计算结果文件;

可见,本发明通过脚本生成模块根据作业和工作流生成作业脚本,可以消除用户编写脚本和开发工具的障碍,使用户可以更加方便的通过资源管理器管理的计算机集群对作业进行高性能计算;通过记录模块记录计算结果文件,使用户可以通过网络在任意地点便捷的下载计算结果文件;并且通过本系统可以对多个资源管理器管理的计算机集群进行整合,提高了对于作业的高性能计算的效果,提升了用户体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例所提供的一种基于web的作业计算系统的结构图;

图2为本发明实施例所提供的另一种基于web的作业计算系统的结构图;

图3为本发明实施例所提供的另一种基于web的作业计算系统的软件架构的示意图;

图4为本发明实施例所提供的另一种基于web的作业计算系统的系统架构的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例所提供的一种基于web的作业计算系统的结构图。该系统可以包括:

接收模块100,用于通过网络接收作业和计算作业所需的工作流;其中,工作流由文件组成。

脚本生成模块200,用于根据作业和工作流生成作业脚本。

执行模块300,用于通过资源管理器执行脚本,获取作业的计算结果文件。

记录模块400,用于记录计算结果文件。

其中,对于接收模块100通过网络作业和工作流的方式,也就是用户上传或设置作业和工作流的位置,可以为本系统所处的web服务器通过web接口获取用户在web中上传或设置作业和工作流;也可以为web服务器通过其他接口获取用户在对应的其他位置中上传或设置作业和工作流,如web服务器通过网络接收用户在的应用程序中上传或设置作业和工作流。本实施例对此不受任何限制。

可以理解的是,脚本生成模块200根据作业和工作流生成作业脚本的过程中,需要对如计算作业所需的内存、内核数以及分配给作业的挂起时间的请求资源进行设置。对于请求资源的设置方式,可以为直接使用预设的请求资源,也就是系统默认的请求资源或对作业进行分析后得到的请求资源;也可以为通过接收模块100接收的用户设置的请求资源,如用户在web界面中上直接传或设置了作业、工作流和请求资源。本实施例对此不做任何限制。

需要说明的是,本实施例所提供的系统中的执行模块300,可以通过资源管理器执行脚本生成模块200生成的脚本,获取作业的计算结果文件;也可以通过资源管理器直接执行接收模块100接收的脚本,获取作业的计算结果文件。只要可以通过资源管理器执行脚本,获取作业的计算结果文件,对于脚本的获取方式和过程,本实施例不做任何限制。

优选的,本实施例所提供的系统还可以包括访问模块和解析模块,以监视脚本的执行状态,并将脚本的执行状态也就是作业的计算状态保存的记录模块,以方便用户查看。如用户可以通过web界面向记录模块发送展示请求,以在web界面中查看任务的计算状态。

优选的,本实施例所提供的系统还可以包括管理单元,以方便用户可以对作业进行管理。如用户可以通过web界面删除作业、取消正在运行的作业、在开始运行之前或之后暂停并保留作业,并且之后将来用户能够请求更改作业。

优选的,本实施例所提供的系统还可以包括验证模块,使得用户需要先在预设的web网页或app中登陆,再对作业进行高性能计算,提高本系统的安全性。

优选的,本实施例所提供的系统还可以包括显示模块,以方便用户查看资源管理器管理的计算机集群的当前状态的总结信息,进一步方便用户对请求资源的设置。

优选的,本实施例所提供的系统还可以共享模块,以保存工作流或工作流中的文件,方便自身或其他用户可以方便的使用,以提升研究人员和研究团体之间的协作。

具体的,对于本实施例所提供的系统的具体设置,可以包括只包括本实施例所提供的4个模块,也可以包括上述优选方案中的一个或多个模块,还可以包括其他模块以达到更优的效果。只要可以根据接收的作业和工作流,通过资源管理器计算该作业,达到对作业的高性能计算的目的,本实施例对此不做任何限制。对于本实施例所提供的系统中各模块的具体设置位置和设置方式,可以由设计人员根据实用场景和用户需求自行设置,如本实施例中的脚本生成模块200和执行模块300可以作为本实施例所提供的系统中计算作业功能的体现,设置在web服务器的数据库。本实施例对此同样不做任何限制。

本实施例中,本发明实施例通过脚本生成模块200根据作业和工作流生成作业脚本,可以消除用户编写脚本和开发工具的障碍,使用户可以更加方便的通过资源管理器管理的计算机集群对作业进行高性能计算;通过记录模块400记录计算结果文件,使用户可以通过网络在任意地点便捷的下载计算结果文件;并且通过本系统可以对多个资源管理器管理的计算机集群进行整合,提高了对于作业的高性能计算的效果,提升了用户体验。

请参考图2、图3和图4,图2为本发明实施例所提供的另一种基于web的作业计算系统的结构图;图3为本发明实施例所提供的另一种基于web的作业计算系统的软件架构的示意图;图4为本发明实施例所提供的另一种基于web的作业计算系统的系统架构的示意图。该系统可以包括:

接收单元110,用于通过网络接收预先设置的web界面发送作业和计算作业所需的工作流;其中,工作流由文件组成。

脚本生成模块200,用于根据作业和工作流生成作业脚本。

执行模块300,用于通过资源管理器执行脚本,获取作业的计算结果文件。

记录模块400,用于记录计算结果文件。

验证模块500,用于根据接收单元110通过网络接收的用户登录信息,判断用户登录信息是否为预设用户的登录信息;若是,则通过接收单元110接收用户登录信息对应的用户的作业和工作流。

访问模块600,用于按预设时间间隔访问资源管理器,获取脚本执行状态对应的数据;

解析模块700,用于解析数据,获取数据对应的作业的状态信息,并将状态信息保存到记录模块400。

其中,对于本实施例所提供的系统的软件架构,可以如图3所示,通过web界面为用户的提供作业的高性能计算系统,可以使用相关架构进行开发,本实施例对此不受任何限制。

如图3所示,本系统的软件架构可以采用三层架构:由表示层,应用层和数据存储层组成。表示层负责接收用户输入并将其传递到应用层,也就是提供一个供用户输入作业和工作流的web界面,本实施对此不受任何限制。还可以提供访问模块600和解析模块700对应的展示选项,可以允许用户在移动设备上监视和管理作业。

应用层由两个模块(或应用)组成,即图1中的用户模块和作业模块,负责根据从表示层接收的输入来执行任务。用户模块也就是验证模块500负责用户管理和认证,并执行安全功能,还负责提供作业计算系统中内置的协作功能。作业模块可以包括脚本生成模块200和执行模块300以及与作业计算有关的模块,负责提供工作流的创建、管理、提交,作业和作业历史记录的管理和监视,以及资源管理器插件管理、交互和配置资源管理器设置相关的功能。

除了上述两个模块,应用程序层还包括一个后台服务和认证服务器。后台服务也就是访问模块600和解析模块700的目的是持续轮询底层的资源管理器,以确保作业记录在记录模块400(数据库)中保持最新。认证服务器用于验证模块500可以通过linux身份验证系统验证用户身份,以便用户通过ssh登录服务时具有相同的权限,若本系统可以自行验证用户身份,则不需要设置认证服务器。

数据存储层(数据库)负责存储作业、工作流和用户详细信息以及资源管理器配置数据和设置。

如图4所示,本系统作为现有高性能计算集群之上的单独组件进行安装和配置,以形成双层的系统架构。即现有的高性能计算软件可以保持不变,并且不需要以任何方式修改或调整。为了使作业计算系统与尽可能多的资源管理器兼容,设计了一个自定义插件架构。使用这种架构,添加对其他资源管理器的支持只需为资源管理器编写插件。这些插件需遵循三个规则:

一、插件必须从基本资源管理器类继承。这个类提供了作业计算系统所需的一些重要功能,但也需要插件来覆盖一些未实现的函数。

二、创建了多个预定义对象作为插件必须覆盖的基本函数的输出。插件必须用来自资源管理器的数据填充这些对象,并将它们返回到作业计算系统。通过这样做,作业计算系统接收并知道如何处理对象或对象的列表。底层资源管理器对象内容可能不同,所以对象包含描述他们持有哪种类型数据的元数据,以便作业计算系统调整其接口来适应数据。

三、必须将插件复制并粘贴到作业计算系统知道要查找的特定文件夹中。要使用插件,必须在作业计算系统配置文件中指定插件名称。

使用这种架构,将能够快速增加支持的资源管理器的数量。

具体的,本系统可以为三种类型的用户提供作业计算的功能,即开发人员,管理员和研究人员。这些功能包括如下内容:

1.作业计算和管理。作业计算系统可以允许用户在运行时向集群提交新作业、监视和管理作业,并在作业完成后获取作业的结果。它通过与底层资源管理器以及工作流管理服务连接来实现。

作业计算系统允许用户上传或创建要提交到集群的脚本,然后请求资源,包括所需的内存、内核数以及要分配给作业的挂起时间。基于这些输入,作业计算系统通过脚本生成模块200生成作业脚本并将其提交给资源管理器执行。作业计算系统能够运行可以从命令行执行的任何程序或脚本,监视作业,直到其完成。依赖于资源管理器插件,包括所使用的资源,作业的输入和输出流以及作业的工作目录。与输出流组合的作业退出状态用于确定执行是否成功。完成后,用户可以从输出和错误流访问作业的结果,或从记录模块400下载计算结果文件。所有结果都可以通过web界面的“作业历史记录”选项卡访问。

作业的实时监视通过访问模块600与资源管理器插件交互来完成。访问模块600由后台服务持续轮询以更新作业详细信息。返回的数据被解析模块700解析并存储在作业计算系统数据库(记录模块400)中,以保留所有作业的永久记录。

除了监视作业的状态,作业计算系统为用户提供作业管理功能。如用户可以从其作业历史记录中删除作业、取消正在运行的作业、在开始运行之前或之后暂停或保留作业,并且将来用户能够请求更改作业。由于更改请求可能包括对其他资源的请求,因此它们需要管理员用户的批准。如果非管理员用户请求对其任务之一进行更改,则该请求将转发给管理员用户以授予或拒绝。

2.工作流管理。除了与底层资源管理器连接之外,作业计算系统还提供允许用户构建和执行复杂计算管道或工作流的功能。工作流由一组模块组成,每个模块表示已添加到作业计算系统的一个工具。

工具可以是已安装在集群上的任何命令行实用程序,也可以是用户上传的自定义脚本或可执行文件。对于每个工具,用户向作业计算系统提供详细信息,包括用于从终端运行工具或脚本的命令、命令可以采用的参数、应由资源管理器分配给工具的资源、以及工具将生成的预期输出。所有这些细节通过web界面输入到本系统中,然后存储在数据库后端。此外,用户上传的脚本和可执行文件自动存储在由作业计算系统管理的目录层次结构中。

作业计算系统提供一个工作流创建界面,其中各种工具可安排到复杂的工作流中。工具添加到工作流上,可以被重新排列,并且可以通过拖放在它们之间创建依赖关系。

作业计算系统允许工作流中的某些模块按并行运行,同时其他模块按顺序运行。从作业计算系统界面的相应“工作流程”和“工具”选项卡中选择和执行工作流和工具。要运行一个工具或工作流,作业计算系统提供自动生成的web界面。此界面允许用户为创建的工具指定每个参数的值。

3.显示面板。作业计算系统提供了一个包含详细状态信息的显示面板。面板为用户提供描述集群当前状态的总结信息,包括有多少节点在线/离线、在整个群集中使用的处理器的比例、当前正在运行或等待运行的作业数以及仍然可用的磁盘空间量。

用户可通过面板检查集群中每个节点的状态以及提交到集群的作业的当前队列。显示面板显示的具体信息将取决于正在使用的资源管理器插件。如果用户具有适当的权限,则该用户能够直接从队列中取消作业。

4.访问控制和协作。一旦用户创建了工具或工作流,就可以与系统中的其他用户共享。工具或工作流的创建者可以向某些用户分配管理员权限。除了以管理员身份移除创建者,管理员拥有创建者拥有的所有权限。管理员可以向其他用户分配权限。这些权限包括执行工具或工作流的能力、导出和下载要导入到作业计算系统的另一个实例中的工具或工作流、编辑工具等。工具和工作流也可以公开,这样则所有用户都有权运行它们。

5.集群配置。除了与底层资源管理器连接以提供作业管理功能之外,作业计算系统还提供集群配置功能。这允许管理员设置和管理队列、配置服务器、设置和添加计算节点。此页面提供的功能将取决于正在使用的资源管理器插件。

对于本实施例所提供系统中各模块的具体设置和数量,可以本实施所示,也可以通过上述功能的描述对应设置或增加其他模块。本实施例对此不受任何限制。

本实施例中,本发明实施例通过验证模块500,使得用户需要先在预设的web网页中登陆,再对作业进行高性能计算,提高了本系统的安全性;通过访问模块600和解析模块700在记录模块400中保存作业的状态信息,使用户可以方便的查看作业的计算状态,提升了用户体验;通过预先设置的web界面,提供了用户可以使用本系统的页面,有利于本系统与用户的交互,提高了用户体验。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见系统部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同系统来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的系统或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的基于web的作业计算系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的系统及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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