生物信息学高性能计算作业调度及系统管理套件的制作方法

文档序号:11774205阅读:361来源:国知局

本发明涉及生物信息领域,具体涉及一种生物信息学高性能计算作业调度及系统管理套件。



背景技术:

在传统的高性能计算集群系统(例如toruqe+maui或sge)使用中,由于生物信息学和其他学科对比绝大多数应用软件为开源且种类繁多、结构混乱,所以用户在计算过程中会经常出现计算节点负载过高发生死机导致应用软件无法正常运行的现象。而且由于作为科研人员的用户大多数将精力放在本专业项目上并不具备很强的计算机专业知识,使得用户在使用传统作业调度系统时需要花费太多时间学习该系统如何使用。



技术实现要素:

针对现有技术存在的不足和缺陷,本发明提供一种生物信息学高性能计算作业调度及系统管理套件。

本发明实施例提出一种生物信息学高性能计算作业调度及系统管理套件,包括:

用户作业调度策略模块、高性能计算系统管理模块、普通用户操作模块和web页面用户管理平台模块;其中,

所述用户作业调度策略模块,用于通过按照预先制定的策略对用户提交到高性能集群系统的作业进行分析,确定出满足作业运算需要的计算节点,从所述计算节点中确定出核数占用量最低的计算节点,并通知所述高性能集群系统将作业分配到该核数占用量最低的计算节点;

所述高性能计算系统管理模块,用于对分布式计算系统进行集中管理;

所述普通用户操作模块,用于实现普通用户对作业的提交;

所述web页面用户管理平台模块,用于通过web页面实现用户对高性能集群系统的操作。

优选地,所述用户作业调度策略模块,具体包括根据计算节点核数和内存分配作业功能、根据计算节点负载高低自动上下线功能、用户优先级设置功能,限制用户计算资源使用周期功能、作业资源限制功能;其中,

所述根据计算节点核数和内存分配作业功能:对用户提交到高性能集群系统的作业队列中的作业进行分析,确定满足作业运算条件且核数占用量最低的计算节点,通知所述高性能集群系统将作业分配到该节点,并在没有计算节点满足作业运算条件时将作业放回所述作业队列继续排队;

所述根据计算节点负载高低自动上下线功能:每隔预设的周期探测每个计算节点linux系统的平均负载,在所述平均负载大于预设的数值时,将对应的计算节点自动下线,以使该计算节点不再接收用户作业,并在预设的时间段后,若判断获知该计算节点linux系统的平均负载不大于所述数值,将该计算节点自动上线,以使该计算节点继续接收用户作业;

所述用户优先级设置功能:将高性能集群系统中用户进行优先级划分,其中,所述根据计算节点核数和内存分配作业功能中对用户作业进行分析时会根据对应用户的优先级优先对优先级高的用户作业进行分析,且如果用户的优先级相同,则将按先进先出的策略对优先级相同的用户的作业进行分析;

所述限制用户计算资源使用周期功能:禁止超过使用周期的受限用户提交新作业到受限队列,允许超过使用周期前已经运行的作业继续执行直到结束;

所述作业资源限制功能:限制用户能够提交到高性能集群队列中每个作业的资源最大值以及最大运算时间。

优选地,所述高性能计算系统管理模块,具体用于:

通过用户管理命令对普通用户进行创建、修改、删除并同步到所有计算节点,以及通过批处理命令对部分或者所有计算节点进行统一操作。

优选地,所述普通用户操作模块,具体包括:

提交作业功能、用户作业监控功能、高性能集群资源剩余量查看功能以及用户修改提交任务功能;其中,

所述提交作业功能:通过申请作业运行需要的计算资源,将作业提交到高性能集群系统;

所述用户作业监控功能:对用户作业的运行进行监控,并提供对用户作业实际情况以及单个作业详细运行情况的查看;

所述高性能集群资源剩余量查看功能:对高性能集群系统的资源使用进行监控,并提供对高性能集群系统整体资源状态的评估;

所述用户修改提交任务功能:修改排队作业的资源占用量、在运行或排队作业的最大运算时间以及更换排队作业的队列。

优选地,所述提交作业功能中用户通过linux命令行方式或web方式提交作业。

优选地,所述web页面用户管理平台模块,具体包括:

用户注册功能、编辑提交脚本功能、作业监控功能和数据上传功能;其中,

所述用户注册功能:实现高性能集群系统用户的账户开设;

所述编辑提交脚本功能:用户通过编辑提交脚本生成作业模板,将所述作业模板提交到高性能集群系统,并通过所述用户作业调度策略模块提供的策略分析所述作业模板给出最优计算节点反馈给高性能集群系统;

所述作业监控功能:对用户通过页面提交的作业进行监控;

所述数据上传功能:将应用数据上传到高性能集群系统存储空间。

本发明实施例提供的生物信息学高性能计算作业调度及系统管理套件,通过用户作业调度策略模块,按照预先制定的策略对用户提交到高性能集群系统的作业进行分析,抽取满足作业运算需要且核数占用量最低的计算节点通知高性能集群系统将作业分配到该计算节点;通过高性能计算系统管理模块对分布式计算系统进行集中管理;通过普通用户操作模块实现普通用户对作业的提交;通过web页面用户管理平台模块借助于web页面实现用户对高性能集群系统的操作,整个方案能够将用户作业合理地分配给计算节点运行,通过上述多个模块,能够提高高性能集群系统的稳定性,降低计算节点负载过高发生死机导致应用软件无法正常运行现象的出现,且通过web页面可以方便用户进行操作。

附图说明

图1为本发明生物信息学高性能计算作业调度及系统管理套件一实施例的结构示意图。

具体实施方式

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

参看图1,本实施例公开一种生物信息学高性能计算作业调度及系统管理套件,包括:

用户作业调度策略模块(hschedd-dispatcherkit)、高性能计算系统管理模块(hscheddsystemkit)、普通用户操作模块(hschedduserkit)和web页面用户管理平台模块(hschedd-webkit);其中,

所述用户作业调度策略模块,用于通过按照预先制定的策略对用户提交到高性能集群系统的作业进行分析,确定出满足作业运算需要的计算节点,从所述计算节点中确定出核数占用量最低的计算节点,并通知所述高性能集群系统将作业分配到该核数占用量最低的计算节点;

所述高性能计算系统管理模块,用于对分布式计算系统进行集中管理;

所述普通用户操作模块,用于实现普通用户对作业的提交;

所述web页面用户管理平台模块,用于通过web页面实现用户对高性能集群系统的操作。

本发明实施例提供的生物信息学高性能计算作业调度及系统管理套件,通过用户作业调度策略模块,按照预先制定的策略对用户提交到高性能集群系统的作业进行分析,抽取满足作业运算需要且核数占用量最低的计算节点通知高性能集群系统将作业分配到该计算节点;通过高性能计算系统管理模块对分布式计算系统进行集中管理;通过普通用户操作模块实现普通用户对作业的提交;通过web页面用户管理平台模块借助于web页面实现用户对高性能集群系统的操作,整个方案能够将用户作业合理地分配给计算节点运行,通过上述多个模块,能够提高高性能集群系统的稳定性,降低计算节点负载过高发生死机导致应用软件无法正常运行现象的出现,且通过web页面可以方便用户进行操作。

下面对本发明生物信息学高性能计算作业调度及系统管理套件进行详细说明。

生物信息学高性能计算作业调度及系统管理套件(hschedd)采用了分布式软件体系结构,并根据实际系统管理及用户业务需求设计了4个功能模块:用户作业调度策略模块、高性能计算系统管理模块、普通用户操作模块和web页面用户管理平台模块。

i.用户作业调度策略模块(hschedd-dispatcherkit):实现了用户作业与高性能集群系统的无缝连接。根据hschedd-dispatcherkit制定的策略告知高性能集群系统如何运行用户提交的作业。在策略的应用中根据用户任务的要求设计了5个功能要点,即根据计算节点核数和内存分配作业功能、根据计算节点负载高低自动上下线功能、用户优先级设置功能、限制用户计算资源使用周期功能和作业资源限制功能。

1)根据计算节点核数和内存分配作业功能:用户提交到高性能集群系统的作业会根据hschedd-dispatcherkit的算法对用户作业进行分析,抽取满足作业运算条件且核数占用量最低的的计算节点通知高性能集群系统将作业分配到该节点。如整个系统没有任何节点满足用户作业条件的计算资源(所有计算节点资源已被占用)用户作业将继续排队。

2)根据计算节点负载高低自动上下线功能:hschedd-dispatcherkit会每隔预设的周期(比如5分钟)探测每个计算节点系统的平均负载,如果平均负载大于调度策略设置阈值,将对应的计算节点自动下线,如果预设的时间段(比如12小时)后计算节点平均负载低于阈值将会自动上线继续接收用户新任务。

3)用户优先级设置功能:具备用户优先级功能,管理员只需将需要提高或降低优先级的用户添加到配置文件priority.conf,高性能集群系统中用户划分优先级,包括0-5一共6个等级,数字越大优先级越高,会优先被hschedd-dispatcherkit识别,默认级别为0。如果优先级相同将按先进先出的策略对作业进行分析。

4)限制用户计算资源使用周期功能:hschedd-dispatcherkit具备限制一个或多个高性能集群系统作业队列的使用周期的功能。超过使用周期的受限用户将不能提交新作业到受限队列但超过使用周期前已经运行的作业将继续执行直到结束。若使用该功能,管理员只需在配置文件limit_que_user.conf中添加需要限制的用户,队列名,到期时间。

5)作业资源限制功能:限制用户能够提交到高性能集群队列中每个作业的资源占用最大值(内存和核数)以及最大运算时间。需要说明的是,每个作业的最大运算时间必须预估防止程序出现死循环长期运行下去浪费计算资源。不同的高性能集群队列资源限制可以不同。

ii.高性能计算系统管理模块(hscheddsystemkit):主要用于分布式计算系统(基于linux操作系统)的集中管理。本部分主要采用了perlsocket编程,通过该部分提供的用户管理命令,管理员可以实现对普通用户的创建、修改和删除,并同步到所有计算节点。通过提供的批处理命令,管理员可以对部分或者所有计算节点进行统一操作。任何单台服务器执行的linux命令均可以通过批处理命令对设定的计算节点统一操作。

iii.普通用户操作模块(hschedduserkit):通过提交作业功能可以实现普通用户通过申请作业需要的计算资源,将作业提交到高性能集群系统并通过hschedd-dispatcherkit调度策略告知高性能集群系统将作业分配到哪个计算节点。通过高性能集群资源剩余量查询功能用户可以了解当前系统可用的计算节点剩余内存量和核数,不可用节点数及整体系统资源利用率。通过用户作业监控功能可以查看当前用户运行所有作业资源占用情况(内存、核数、运算时间和节点状态等)及运行当前用户作业的节点是否为正常状态及单个作业实际运行详细信息和运行当前作业的计算节点的负载,网络的流量情况等。用户修改提交任务功能使用户可以修改自己排队作业的内存,核数及运算队列和作业的申请计算时间。

需要说明的是,提交作业功能具体包括如下提交方式:

(1)linux命令行方式提交作业

普通用户通过hschedd提供的使用指南和高性能集群系统配置的队列限制编辑自己的提交脚本。脚本抬头信息包括作业队列名称,单任务占用的核数,内存,作业允许运行的最大时间。当用户编辑的提交脚本超过队列限制的每个任务占用最大核数和最大内存数时用户作业将不能提交到队列并反馈错误。当运行任务超过最大允许时间将强制退出。用户也可以通过命令行参数(不需要编辑提交脚本)根据说明提交单节点运行作业。当用户通过命令行提交作业以后会将脚本提交到高性能系统,并通过hschedd提供的调度策略分析用户脚本给出最优计算节点反馈给高性能系统。

(2)web方式提交作业及数据上传

hschedd的web页面通过perlcgi编程语言开发,考虑到整个高性能集群系统安全性,web页面并不提供在线注册方式,需通过管理员后台申请用户。用户可以通过页面填写包括作业提交方式,作业队列名称,任务使用的核数,内存,作业允许运行的最大时间及应用程序等信息生成提交模板。用户也可通过uploaddat选项上传数据到高性能集群系统存储空间。当用户通过页面提交作业以后会将任务模板传递到高性能集群系统,并通过hschedd提供的作业调度策略分析用户脚本给出最优计算节点反馈给高性能系统。同时在页面反馈作业id,如果报错会返回错误信息。

当作业提交到高性能系统以后用户可以通过hschedduserkit工具中的作业监控工具了解自己作业实际情况,主要包括作业id,用户名,队列名,作业名,作业可允许运行的最大时间,作业当前状态,已经运行时间,作业占用核数,运行作业的节点状态。并可通过该工具的菜单选项了解单个作业详细运行情况(作业后台运行状态,消耗机时,应用程序资源占用等内容)。

为了方便用户了解当前集群实际资源使用情况,用户可以通过hschedduserkit工具中的资源剩余量查询工具详细了解每个队列中计算节点可用的核数及内存数,整个集群的核数占用百分比,内存占用百分比,已经发生故障的节点名。通过了解系统资源整体情况便于有针对性编辑自己的作业提交脚本。

当作业提交到高性能系统以后,用户可以通过hschedduserkit工具中的作业修改工具修改排队任务的资源占用量(内存或核数),在运行或排队任务的最大运算时间,更换排队任务的队列等。

iv.web页面用户管理平台模块(hschedd-webkit):为了方便用户对高性能集群系统的操作提供了web页面。web页面主要包括如下功能:

用户注册:高性能集群用户如需使用页面操作需通过管理员审核开设账户;

编辑提交脚本:通过web界面作业提交模块用户可以根据自己作业占用资源的情况(内存和核数)通过编辑提交脚本生成模板(填写队列、内存、核数、计算时间和应用程序的参数)将作业提交到高性能集群系统经hschedd-dispatcherkit调度策略告知作业分配到哪个计算节点;

作业监控:用户监控自己通过页面提交的作业;

数据上传:用户可将应用数据上传到高性能计算系统存储空间。

本发明具有如下有益效果:

(1)hschedd分布式软件系统,方便部署

hschedd整个系统主要采用perl编程语言进行开发设计,其中部分模块用到了perlsocket及perlcgi方面的编程技术。该软件主要基于linux(centos,redhat)操作系统的高性能集群,具有简单易懂的部署方式。管理员只需将计算节点的核数,总内存数,每个任务可占用最大核数,每个任务可占用最大内存数,及队列,用户优先级,队列使用周期等信息添加到conf目录下面的配置文件即可(每个配置文件里均有对应的说明信息)。作业监控及用户同步方面用户需要将hschedd开发的守护进程拷贝到所有参与计算的节点。提供了用户作业编辑、提交、监控、修改(命令行或页面)及系统资源查看,作业调度策略,高性能计算系统管理等几大模块。

(2)用户应用程序操作,简单易懂

hschedd提供了4种命令行提交方式或web页面、作业监控、资源剩余量查询工具及作业修改工具等方便用户使用的工具。hschedd的作业提交部分采用了应用程序资源预估方式。数据分析人员在提交作业之前必须申请应用软件占用资源(计算节点核数和内存)并通过作业监控工具可以查看当前用户运行所有作业资源占用情况及运行当前用户作业的节点是否为正常状态及单个作业实际运行详细信息和运行当前任务的计算节点的负载,网络的流量情况。资源剩余量查询工具能够提供高性能集群资源剩余量查询。用户可以针对高性能集群系统资源剩余情况评估自己应用程序是否有计算节点符合要求。作业修改工具可以帮助用户直接修改排队的任务或在运行任务的申请计算时间,而不必重新提交,从而简化用户操作。hschedd提供了较为简单易懂的用户操作过程,降低操作难度。和传统作业调度系统相比用户不必花费太多时间学习本系统如何使用。

(3)用户作业调度策略高效,稳定

hschedd的户作业调度策略模块(hschedd-dispatcherkit)为本系统负责作业调度的主程序。hschedd-dispatcher目前运行在500节点高性能集群(生物信息计算平台)时具有高效性,稳定性。在整个高性能集群系统中hschedd-dispatcherkit作为用户作业到高性能集群系统的中间件,很好的协调了整个系统的工作。

(4)高性能计算系统管理统一,简单,快捷

系统管理员可以通过hschedd的高性能计算系统管理模块(hscheddsystemkit)对整个集群系统统一操作。管理员通过该模块在管理节点对整个高性能集群系统集中管理。

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

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