CN110781007B - 任务处理方法、装置、服务器、客户端、系统和存储介质 - Google Patents
任务处理方法、装置、服务器、客户端、系统和存储介质 Download PDFInfo
- Publication number
- CN110781007B CN110781007B CN201911052436.4A CN201911052436A CN110781007B CN 110781007 B CN110781007 B CN 110781007B CN 201911052436 A CN201911052436 A CN 201911052436A CN 110781007 B CN110781007 B CN 110781007B
- Authority
- CN
- China
- Prior art keywords
- task
- computing cluster
- server
- client
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 60
- 238000013515 script Methods 0.000 claims abstract description 140
- 238000012544 monitoring process Methods 0.000 claims description 76
- 238000000034 method Methods 0.000 claims description 54
- 238000012545 processing Methods 0.000 claims description 34
- 238000012795 verification Methods 0.000 claims description 24
- 238000012550 audit Methods 0.000 claims description 17
- 239000002002 slurry Substances 0.000 claims description 11
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 230000006837 decompression Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 239000002904 solvent Substances 0.000 claims 3
- 238000002955 isolation Methods 0.000 abstract description 3
- 230000015654 memory Effects 0.000 description 23
- 230000002452 interceptive effect Effects 0.000 description 16
- 230000000875 corresponding effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 5
- 230000002596 correlated effect Effects 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 238000012356 Product development Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 235000019580 granularity Nutrition 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种任务处理方法、装置、服务器、客户端、系统和存储介质,任务处理方法包括:接收客户端发送的任务提交请求,任务提交请求中包括任务的配置信息;生成包含配置信息的任务提交脚本;将任务提交脚本提交到计算集群,计算集群用于根据任务提交脚本中的配置信息运行任务。本发明实施例将任务提交分为客户端和服务器,用户仅需在客户端配置任务运行时的配置信息,无需用户深入学习计算集群的各种参数的含义,也无需用户编写任务提交脚本,一方面,降低了用户的学习成本和用户使用计算集群的门槛,另一方面,用户通过服务器与计算集群间接交互,实现了计算集群与用户端的安全隔离,为计算集群的安全性提供了保障。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种任务处理方法、服务器、客户端、系统和存储介质。
背景技术
随着信息推荐技术的发展,在线实时推荐逐渐成为了推荐领域研究的热点,实时推荐系统的关键在于大数据场景下模型的更新速度,而模型通常通过计算集群进行更新。
以部署有MPI(Message Passing Interface,信息传递应用程序接口)环境的MPI集群为示例,程序员开发程序后,需要将任务提交到MPI集群上运行,目前,MPI集群本身不具备资源调度功能,MPI集群通过Slurm(Simple Linux Utility for ResourceManagement)对MPI集群的资源进行管理和调度,Slurm是一个开源、容错、高可伸缩的集群管理和大型小型Linux集群作业调度系统,部署有Slurm的MPI集群称为Slurm集群。
MPI程序开发者向Slurm集群提交任务,需要MPI程序开发者学习一整套Slurm资源管理工具,深入学习Slurm的各种参数的含义,一方面,MPI程序开发者需要调用Slurm的API编写任务提交脚本,分散了MPI程序开发者的精力,提高了MPI程序的应用门槛;另一方面,每一位MPI程序开发者直接操作Slurm集群,增加了Slurm集群的安全风险。
发明内容
本发明实施例提供一种任务处理方法、装置、服务器、客户端、系统和存储介质,以解决现有Slurm集群存在使用门槛高和安全性低的问题。
第一方面,本发明实施例提供了一种任务处理方法,应用于服务器,所述服务器分别与客户端和计算集群连接,包括:
接收所述客户端发送的任务提交请求,所述任务提交请求中包括任务的配置信息;
生成包含所述配置信息的任务提交脚本;
将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
第二方面,本发明实施例提供了一种任务处理方法,应用于客户端,所述客户端与服务器连接,所述服务器与计算集群连接,包括:
获取任务的配置信息;
生成包含所述配置信息的任务提交请求;
将所述任务提交请求发送至所述服务器,所述服务器用于生成包含所述配置信息的任务提交脚本,以及将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
第三方面,本发明实施例提供了一种任务处理装置,应用于服务器,所述服务器分别与客户端和计算集群连接,包括:
任务提交请求接收模块,用于接收所述客户端发送的任务提交请求,所述任务提交请求中包括任务的配置信息;
提交脚本生成模块,用于生成包含所述配置信息的任务提交脚本;
任务提交模块,用于将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
第四方面,本发明实施例提供了一种任务处理装置,应用于客户端,所述客户端与服务器连接,所述服务器与计算集群连接,包括:
配置信息获取模块,用于获取任务的配置信息;
任务提交请求生成模块,用于生成包含所述配置信息的任务提交请求;
任务提交请求发送模块,用于将所述任务提交请求发送至所述服务器,所述服务器用于生成包含所述配置信息的任务提交脚本,以及将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
第五方面,本发明实施例提供了一种服务器,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的任务处理方法。
第六方面,本发明实施例提供了一种客户端,所述客户端包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第二方面提供的任务处理方法。
第七方面,本发明实施例提供了一种任务处理系统,包括计算集群、本发明实施例所述的客户端和服务器,所述服务器分别与所述计算集群和所述客户端连接。
第八方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所述的任务处理方法。
本发明实施例的任务处理系统包括服务器、客户端和计算集群,服务器接收到客户端发送的包括任务的配置信息的任务提交请求后,生成包含配置信息的任务提交脚本并将任务提交脚本提交到计算集群,以使得计算集群根据任务提交脚本中的配置信息运行任务,本发明实施例将任务提交分为客户端和服务器,用户仅需在客户端设置配置信息,无需用户深入学习计算集群的各种参数的含义,也无需用户编写任务提交脚本,一方面,降低了用户学习计算集群的学习成本和使用门槛,另一方面,用户通过服务器与计算集群间接交互,实现了计算集群与用户端的安全隔离,为计算集群的安全性提供了保障。
附图说明
图1是本发明实施例一提供的一种任务处理方法的流程图;
图2是本发明实施例二提供的一种任务处理方法的流程图;
图3是本发明实施例三提供的一种任务处理方法的流程图;
图4是本发明实施例四提供的一种任务处理方法的流程图;
图5是本发明实施例五提供的一种任务处理方法的流程图;
图6是本发明实施例六提供的一种任务处理方法的流程图;
图7是本发明实施例七提供的一种任务处理方法的流程图;
图8是本发明实施例八提供的一种任务处理方法的流程图;
图9是本发明实施例九提供的一种任务处理方法的流程图;
图10A是本发明实施例的任务处理系统的架构图;
图10B是本发明实施例的任务处理系统中服务器的模块化示意图;
图10C是本发明实施例的计算集群中任务队列的示意图;
图11是本发明实施例十提供的一种任务处理装置的结构框图;
图12是本发明实施例十一提供的一种任务处理装置的结构框图;
图13是本发明实施例十二提供的一种服务器或客户端的结构框图;
图14是本发明实施例十三提供的一种任务处理系统的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种任务处理方法的流程图,本发明实施例可适用于用户向计算集群提交任务以在计算集群运行任务的情况,该方法可以由任务处理装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的服务器中,具体地,如图1所示,本发明实施例的任务处理方法可以包括如下步骤:
S101、接收所述客户端发送的任务提交请求,所述任务提交请求中包括任务的配置信息。
在本发明实施例应用于用户通过客户端将任务提交到服务器,由服务器向计算集群提交任务的场景,其中,客户端可以是用户开发完成程序后提交到计算集群的终端,计算集群可以是部署有MPI环境的、由Slurm进行资源管理和调度的计算机集群,当然计算集群还可以是部署了其他计算环境的计算机集群,本发明实施例对计算集群的计算环境不加以限制,对计算集群的资源管理和调度方式也不加以限制。
本发明实施例中,服务器分别与客户端和计算集群连接,本发明实施例的任务处理方法应用于服务器,客户端提供与用户交互的交互界面,用户在客户端的交互界面配置任务的配置信息后,由客户端生成任务提交请求发送至服务器,服务器可以接收到该任务提交请求,其中,任务可以是各种计算任务,比如可以是离线模型训练任务、在线模型更新任务、离线模型更新任务等。
本发明实施例的任务提交请求中包含了任务的配置信息,其中,配置信息可以包括运行任务时所需资源的资源信息、任务在分布式文件系统中的任务目录、提交任务的用户的用户名、任务的任务名、任务的运行时长、任务所在的任务队列中的至少一项,当然,配置信息还可以是其他信息,本发明实施例对配置信息的内容不加以限制。
在配置信息中,资源信息可以是指在计算集群中运行任务时所需要的资源的信息,例如,需要CPU的数量、内存的数量等资源信息;任务目录可以是指任务在分布式文件系统中的工程目录,后续计算集群中的计算节点可以从该分布式文件系统中指定的工程目录下载或存储该任务的相关计算数据;任务所在的任务队列为该任务在计算集群中属于在线任务队列还是离线任务队列。
S102、生成包含所述配置信息的任务提交脚本。
服务器在接收到任务提交请求后,可以对该任务提交请求进行解析,获得任务提交请求中任务的配置信息,并生成包含该配置信息的任务提交脚本,例如,计算集群为Slurm集群,服务器可以调用Slurm的API将包含运行任务时所需资源的资源信息、任务在分布式文件系统中的任务目录、提交任务的用户的用户名、任务的任务名、任务的运行时长、任务所在的任务队列中的至少一项配置信息组装在任务提交脚本中。
S103、将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
服务器生成包含配置信息的任务提交脚本后,可以调用集群的任务提交接口将任务提交脚本提交到计算集群,由计算集群根据任务提交脚本中的配置信息为任务配置资源,在资源满足要求时在计算集群运行该任务。
本发明实施例中,用户在客户端配置任务运行时的配置信息后,客户端生成包含配置信息的任务提交请求发送至服务器,服务器根据配置信息自动生成任务提交脚本,本发明实施例将任务提交分为客户端和服务器,用户仅需在客户端设置配置信息,无需用户深入学习计算集群的各种参数的含义,也无需用户编写任务提交脚本,一方面,降低了用户学习计算集群的学习成本和使用门槛,另一方面,用户通过服务器与计算集群间接交互,实现了计算集群与用户端的安全隔离,为计算集群的安全性提供了保障。
实施例二
图2为本发明实施例二提供的一种任务处理方法的流程图,本发明实施例在实施例一的基础上进行优化,具体地,如图2所示,本发明实施例的任务处理方法可以包括如下步骤:
S201、接收所述客户端发送的任务提交请求,所述任务提交请求中包括任务的配置信息。
本发明实施例中,客户端可以以http请求的方式向服务器发送任务提交请求,该任务提交请求中包括任务的配置信息,该配置信息可以包括任务提交到ONLINE队列还是OFFLINE队列的选择信息、该任务所需要的CPU资源和内存资源的资源信息、任务最长运行时长信息等。
S202、生成所述任务的任务索引标识。
服务器接收到任务提交请求后,对任务提交请求进行解析,并且为该任务提交请求所请求提交的任务生成唯一的任务索引标识(job index),并将该任务索引标识返回至客户端。其中,该任务索引标识可以为任意的字符串,也可以是服务器按照一定规则生成的字符串,比如,按照任务的不同类型、所需要资源多少等规则生成任务的任务索引标识,本发明实施例对生成任务索引标识的方式不加以限制。
S203、将所述配置信息和所述任务索引标识关联存储在预先建立的任务信息数据库中。
服务器在生成任务索引标识后,可以将任务索引标识和解析任务提交请求后得到的任务的配置信息关联存储在预先建立的任务信息数据库中,以通过任务索引标识对各个任务的配置信息进行存储和管理,以提高后续执行任务提交操作时的效率。
S204、采用所述任务索引标识在所述任务信息数据库中查找所述任务的配置信息。
由于配置信息和任务索引标识关联存储,当需要启动一个任务时,可以采用任务索引标识从任务信息数据库中查找该任务的配置信息。
S205、将所述配置信息封装为所述任务的任务提交脚本。
具体地,对于不同的计算集群可以具有不同的提交脚本的组装组件,在实际应用中可以调用计算集群相应的组装组件将配置信息组装为任务提交脚本,以slurm集群为示例,服务器通过任务索引标识从任务信息数据库中查找到任务的配置信息后,可以通过slurm集群的API调用slurm集群的sbatch组装组件将任务的所有配置信息组装成slurm集群可以识别的sbatch.sh任务提交脚本。
本发明实施例中,服务器根据配置信息自动组装任务提交脚本,无需用户深入学习计算集群的各种参数的含义,也无需用户编写任务提交脚本,降低了用户的学习成本和用户使用计算集群的门槛。
S206、对所述任务提交脚本中的资源信息进行校验。
本发明实施例中,任务提交脚本中的配置信息可以包括任务在计算集群运行时所需资源的资源信息,该资源信息说明了用户期望该任务运行时所需要的资源,例如,用户申请的CPU数量、内存数量等。服务器生成任务提交脚本后在提交任务提交脚本前,可以对任务提交脚本中的资源信息进行校验,以确定任务所申请的资源是否合理,比如,所申请的资源是否超出一定的限制、是否超出计算集群的总资源数等。
S207、在对所述资源信息校验失败时,向所述客户端返回资源信息校验失败的信息。
如果资源信息校验失败,说明该任务所申请的计算集群的资源不合理,则向客户端返回资源信息校验失败的信息,以在客户端提醒用户资源信息错误,提醒用户重新配置资源信息后再次提交任务,如果资源信息校验成功,则可以执行S210以提交任务,或者执行S208和S209。
本发明实施例通过对任务提交请求中的资源信息进行校验以确定资源申请是否合理,一方面可以提高任务提交的成功率,另一方面,可以避免任务申请的资源超过限制,造成计算集群的资源被该任务占用导致其他任务无资源可用的情况,提高了计算集群的资源的利用率。
S208、当所述任务所在的任务队列为在线任务队列时,基于预先建立的准入数据库对所述任务提交脚本中的所述用户名和所述任务名进行校验。
本发明实施例中,任务提交脚本中的配置信息还包括任务提交后任务队列的选择信息,如果该任务选择的任务队列为在线任务队列时,则需要对是否允许该任务进入在线任务队列进行验证。具体地,可以对任务提交脚本中配置信息包含的提交任务的用户的用户名和任务的任务名进行验证,例如,将允许进入在线任务队列中的用户的用户名和任务名预先记录在准入数据库中,当生成任务提交脚本后提交任务时,从准入数据库中查询是否存在任务提交脚本中的用户名和任务名,如果存在,则校验成功,允许将任务提交到在线任务队列,执行S210,否则,任务提交失败,执行S209。
S209、在对所述用户名和所述任务名校验失败时,向所述客户端返回准入在线队列校验失败的信息。
在任务提交脚本中的任务名和用户名校验失败时,说明该任务不允许提交到在线任务队列中,则可以向客户端返回准入在线队列校验失败的信息以在客户端提醒用户该任务不允许提交到在线任务队列中,提醒用户重新配置该任务为离线任务后再次提交任务,或者获得准入在线任务队列的权限后在重新提交任务。
本发明实施例对提交到在线任务队列的任务进行准入校验,一方面,提高了任务提交的成功率,另一方面,避免了较多任务都提交到在线任务队列造成计算集群的资源被在线任务队列中的任务占用,导致离线任务因资源不足被饿死的问题,既能够提高计算集群资源的利用率,又保证了各个任务的正常运行。
S210、将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
具体地,服务器可以调用计算集群的任务提交接口将任务提交脚本提交到计算集群,从而完成任务的提交,以使得计算集群可以根据任务提交脚本中的配置信息为任务配置资源,并使用配置的资源运行任务。
本发明实施例中,用户在客户端配置任务运行时的配置信息后,客户端生成包含配置信息的任务提交请求发送至服务器,服务器根据配置信息自动生成任务提交脚本,服务器在提交任务提交脚本前对配置信息中的资源信息进行校验,和/或通过提交任务的用户的用户名和任务名校验任务是否允许提交到在线任务队列,在校验成功后将任务提交脚本提交到计算集群,本发明实施例将任务提交分为客户端和服务器,用户仅需在客户端配置任务提交的配置信息,无需用户深入学习计算集群的各种参数的含义,也无需用户编写任务提交脚本,一方面,降低了用户的学习成本和用户使用计算集群的门槛,另一方面,用户通过服务器与计算集群间接交互,实现了计算集群与用户端的安全隔离,为计算集群的安全性提供了保障。
进一步地,任务提交前对任务提交脚本进行校验,既可以提高任务提交的成功率,又可以优化计算集群的资源的使用,提高了计算集群资源的利用率,保证了任务的正常运行。
S211、从所述计算集群获取所述任务的运行状态信息。
本发明实施例中,服务器在提交任务提交脚本后,可以周期性地获取该任务的运行状态信息,具体地,可以按照预设周期调用计算集群的接口从计算集群获取任务的运行状态信息,例如,以任务索引标识通过计算集群的接口获取任务的运行状态信息,该运行状态信息可以为挂起、正常运行、运行结束等状态信息。
S212、将所述运行状态信息与所述任务的任务索引标识关联存储在预先建立的任务信息数据库中。
服务器获取到任务的运行状态信息后,可以将运行状态信息存储在任务信息数据库中,可选地,可以将运行状态信息与任务的任务索引标识关联存储,例如,更新任务索引标识下关联的任务的运行状态的相关字段,以便通过该任务索引标识查询到该任务的运行状态信息。
服务器在获取任务的运行状态信息后,如果接收到客户端发送的任务状态查询请求,该任务状态查询请求中包括任务的任务索引标识,则可以基于任务索引标识在任务信息数据库中查询任务的运行状态信息,并将运行状态信息发送至客户端,以在客户端的交互界面向用户展示任务的运行状态。
本发明实施例,服务器可以获取计算集群中任务的运行状态信息并与任务索引标识关联存储在任务信息数据库中,用户仅需要在客户端请求服务器查询任务运行状态信息,无需用户通过计算集群的相关命令查询任务的运行状态,一方面,降低了用户的学习成本和用户使用计算集群的门槛,另一方面,用户可以实时查询任务的运行状态。
实施例三
图3为本发明实施例三提供的一种任务处理方法的流程图,本发明实施例在实施例一的基础上进行优化,具体地,如图3所示,本发明实施例的任务处理方法可以包括如下步骤:
S301、接收所述客户端发送的任务提交请求,所述任务提交请求中包括任务的配置信息。
S302、生成包含所述配置信息的任务提交脚本。
S303、将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
S304、接收所述客户端发送的任务日志获取请求,所述任务日志获取请求中包含所述任务的任务索引标识。
具体地,客户端可以响应于用户在交互界面的任务日志获取操作生成任务日志获取请求,并将该任务日志获取请求发送至服务器,该任务日志获取请求中可以包含任务的任务索引标识,服务器可以接收到客户端发送的任务日志获取请求。
S305、基于所述任务索引标识确定所述计算集群中运行所述任务的计算节点的地址。
服务器接收到任务日志获取请求后,可以对该任务日志获取请求进行解析,获得任务日志请求中的任务索引标识,并根据该任务索引标识确定计算集群中参与运行该任务的所有计算节点,然后获取该计算节点的地址,例如,获取计算节点的IP地址或者网卡的MAC地址等。
S306、将所述地址发送至所述客户端,所述客户端用于根据所述地址向所述计算节点请求所述任务的任务日志。
具体地,在本发明实施例的计算集群中,可以在每个计算节点上启动log server(日志服务),使得计算节点可以接收客户端发送的日志获取请求,计算节点接收到日志获取请求后,计算节点上的log server读取本地日志,并将日志数据实时返回给客户端。服务器在接收到参与运行任务的计算节点的地址后,可以将地址发送到客户端,由客户端根据地址与计算节点建立连接后向计算节点的log server请求任务的任务日志。
需要说明的是,在本发明实施例中,步骤S301-S303为可选地步骤,即在实际应用中,服务器可以跳过步骤S301-S303直接接收客户端针对任意已提交任务的任务日志获取请求,以使得客户端能够获取到任意任务的任务日志。
本发明实施例的服务器可以响应客户端的任务日志获取请求获取参与运行任务的计算节点,并将计算节点的地址发送至客户端,以使得客户端可以向计算节点上部署的日志服务请求任务的任务日志,一方面,用户无需使用计算集群的指令获取任务日志,降低了计算集群的使用门槛,简化了任务日志获取的过程,另一方面,实现了用户通过客户端获取任务的实时日志,从而极大提高了产品开发和调试的效率。
实施例四
图4为本发明实施例四提供的一种任务处理方法的流程图,本发明实施例在实施例一的基础上进行优化,具体地,如图4所示,本发明实施例的任务处理方法可以包括如下步骤:
S401、接收所述客户端发送的任务提交请求,所述任务提交请求中包括任务的配置信息。
S402、生成包含所述配置信息的任务提交脚本。
S403、将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
S404、当检测到资源抢占触发事件时,以预设策略抢占资源以使得所述计算集群运行在线任务队列中的任务。
在本发明实施例中,任务提交到计算集群后,可以提交到在线任务队列或者离线任务队列中,在在线任务队列中的任务具有更高的优先级使用计算集群的资源,而且在计算集群中任务的状态可以分为运行状态和等待状态,当检测到资源抢占触发事件时,可以以预设策略抢占资源以使得计算集群运行在线任务队列中的任务。
具体地,资源抢占触发事件可以是在线任务队列中存在等待执行的任务,或者在线任务队列中任务的等待时长大于预设时长,预设策略可以为调用计算集群的指定接口取消离线任务队列中处于指定状态的任务,或者,调用计算集群的指定接口取消离线任务队列中资源使用量大于预设阈值的任务。
例如,当服务器从计算集群中确定提交到在线任务队列的任务的等待时长超过30分钟时,触发预设策略抢占资源,例如,服务器依次轮询计算集群中离线任务队列中所有处于运行状态和等待状态的任务,每次轮循后确定离线任务队列中最年轻的任务(最近一次提交的任务),并向计算集群发送任务取消请求以取消该最年轻的任务,从而释放该最年轻的任务所占用的资源,直到在线任务队列中等待的任务的资源得到满足为止。
当然,还可以在在线任务队列中存在等待的任务时即以预设策略抢占资源,例如,抢占资源时,抢占策略可以是杀死离线任务队列中申请CPU数量最多的任务、杀死申请内存数量最多的任务等,本发明实施例对资源抢占触发事件和预设策略均不加以限制,并且可以由用户设置预设事件和资源抢占策略。
需要说明的是,在本发明实施例中,步骤S401-S403为可选地步骤,即在实际应用中,服务器可以跳过步骤S401-S403直接在检测到资源抢占触发事件时以预设策略抢占资源以使得所述计算集群运行在线任务队列中的任务。
本发明实施例的服务器可以在检测到资源抢占触发事件时,以预设策略抢占资源以使得计算集群运行在线任务队列中的任务,实现了在服务器可任意配置资源抢占事件和抢占策略,使得服务器可以提供不同策略和粒度的任务抢占支持。
实施例五
图5为本发明实施例五提供的一种任务处理方法的流程图,本发明实施例在实施例一的基础上进行优化,具体地,如图5所示,本发明实施例的任务处理方法可以包括如下步骤:
S501、接收所述客户端发送的任务提交请求,所述任务提交请求中包括任务的配置信息。
S502、生成包含所述配置信息的任务提交脚本。
S503、将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
S504、获取所述计算集群的资源监控信息。
本发明实施例中,服务器可以对整个计算集群的资源使用情况进行监控,以获得计算集群的资源监控信息,该资源监控信息可以包括计算集群的资源的使用情况、每个任务占用资源的情况、计算集群的监控情况、任务的运行状态等,具体地,可以使用监控脚本对计算集群的进行定时监控以获得计算集群的资源监控信息。
S505、展示所述资源监控信息。
在本发明实施例中,可以在服务器所连接的显示终端显示的交互界面显示资源监控信息,优先地,可以响应客户端的资源监控信息请求,将资源监控信息发送至客户端,以在客户端展示资源监控信息,例如,用户通过客户端向服务器请求计算集群的资源监控信息时,服务器可以将资源监控信息发送至客户端,以在客户端向用户展示资源监控信息,服务器可以获取计算集群的资源监控信息并展示,可以方便用户对大规模的计算集群进行管理。
S506、获取所述计算集群的资源审计信息。
在本发明的可选实施例中,服务器还可以通过指定脚本定时查询并统计在线任务队列和离线任务队列中任务的执行时间、任务等待时长、任务成功率、任务失败率、计算集群资源利用率等指标,以获得计算集群的资源审计信息,并对异常进行告警。
S507、展示所述资源审计信息。
具体地,可以在服务器连接的显示终端显示的交互界面中显示资源审计信息,还可以将资源审计信息发送至客户端,以在客户端显示资源审计信息。本发明实施例,服务器可以获取计算集群的资源审计信息并展示,可以方便用户对大规模的计算集群进行管理。
S508、确定所述计算集群中的各个计算节点的工作状态。
计算节点的工作状态可以包括故障(Down)状态和空置(Idle)状态,计算节点在运行任务的过程中异常终止或崩溃,计算节点会将内存状态记录下来,保存在一个文件中,即发生Core dump,发生Core dump可能会将计算节点拖入故障状态,使得该计算节点不可用。服务器可以通过指定脚本扫描计算集群中的各个计算节点的日志以获取各个计算节点的工作状态。
S509、在计算节点的状态为故障状态时,在预设时长后调用所述计算集群的指定接口对所述计算节点执行拉起操作。
当服务器确定计算集群中的计算节点的状态为故障状态时,可以在预设时长等待该计算节点释放完资源后,将该计算节点拉起,使得该计算节点重启处于空置状态,计算节点处于空置状态时可以重新接受计算任务。
需要说明的是,在本发明实施例中,步骤S501-S503为可选地步骤,即在实际应用中,服务器可以跳过步骤S501-S503直接获取计算集群的资源监控信息和/或获取所述计算集群的资源审计信息和/或确定所述计算集群中的各个计算节点的工作状态以拉起故障状态的计算节点。
本发明实施例的服务器,可以获取计算集群的资源监控信息和资源神经信息并展示,可以方便用户对大规模的计算集群进行管理,进一步地,服务器可以获取计算集群中各个计算节点的工作状态,并可以对故障状态的计算节点进行拉取操作,避免了故障的计算节点处于故障状态造成资源浪费的问题,提高了计算集群资源的利用率。
实施例六
图6为本发明实施例六提供的一种任务处理方法的流程图,本发明实施例可适用于用户通过客户端向计算集群提交任务以在计算集群运行任务的情况,该方法可以由任务处理装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在执行本方法的客户端中,具体地,如图6所示,本发明实施例的任务处理方法可以包括如下步骤:
S601、获取任务的配置信息。
本发明实施例的任务处理方法可应用于客户端,该客户端通过服务器与计算集群连接,该客户端提供交互界面,用户可以在该交互界面配置任务在计算集群运行时的配置信息,例如,对于模型训练任务,用户可以配置该任务在计算集群运行时所需资源的资源信息、任务在分布式文件系统中的任务目录、用户的用户名、任务的任务名、任务的运行时长、任务所在的任务队列中的至少一项等信息。
S602、生成包含所述配置信息的任务提交请求。
客户端基于用户在交互界面的操作可以生成包含任务的配置信息的提交请求,该请求可以是http请求。
S603、将所述任务提交请求发送至所述服务器,所述服务器用于生成包含所述配置信息的任务提交脚本,以及将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
具体地,客户端可以基于客户端与服务器的连接,将任务提交请求发送至服务器,服务器接收到任务提交请求后对任务提交请求进行解析获取配置信息,并根据配置信息组装任务提交脚本,将任务提交脚本提交到计算集群完成任务的提交操作,计算集群接到任务提交脚本后,根据任务提交脚本中的配置信息为该任务配置资源,以在计算集群使用所配置的资源运行该任务。
本发明实施例中,客户端获取任务的配置信息后生成任务提交请求并发送至服务器,服务器根据配置信息自动生成任务提交脚本提交到计算集群,将任务提交分为客户端和服务器,用户仅需在客户端配置任务的配置信息,无需用户深入学习计算集群的各种参数的含义,也无需用户编写任务提交脚本,一方面,降低了用户的学习成本和用户使用计算集群的门槛,另一方面,用户通过服务器与计算集群间接交互,实现了计算集群与用户端的安全隔离,为计算集群的安全性提供了保障。
实施例七
图7为本发明实施例七提供的一种任务处理方法的流程图,本发明实施例在实施例六的基础上进行优化,如图7所示,本发明实施例的任务处理方法可以包括如下步骤:
S701、将所述任务的本地工程目录上传至分布式文件系统。
具体地,本地工程目录可以是客户端所在的终端上任务的数据所在的存储目录,本发明实施例的客户端,可以基于用户的操作将本地工程目录上传至分布式文件系统,该分布式文件系统可以包括多个存储节点,分布式文件系统接收到本地工程目录后,可以将本地工程目录存储在存储节点中,并向客户返回存储本地工作目录的任务目录,该任务目录可以包括存储节点在分布式系统中的路径,以及本地工程目录存储在存储节点中的具体目录路径。
S702、接收所述分布式文件系统返回的任务目录。
本地工作目录存储于分布式文件系统后,分布式文件系统可以返回任务目录到客户端,客户端可以接收到该任务目录。
S703、配置运行所述任务时所需资源的资源信息。
具体地,资源信息可以包括了任务在计算集群运行时所需资源的信息,例如,可以包括运行任务时所需要的CPU的数量、内存数量、运行时长、任务在在线任务队列还是离线任务队列等信息,用户可以在客户端提供的交互界面配置资源信息,而客户端可以响应用户的操作生成任务的资源信息。
S704、将所述资源信息和所述任务目录封装为指定格式的配置信息。
在本发明实施例中,用户在客户端提供的交互界面配置完资源信息后,可以生成指定格式的配置信息,例如,客户端可以将包括运行任务时所需资源的资源信息、任务在分布式文件系统中的任务目录、提交任务的用户的用户名、任务的任务名、任务的运行时长、任务所在的任务队列中的至少一项封装为KV格式的参数以得到配置信息,当然还可以封装为其他格式的配置信息,本发明实施例对配置信息的格式不加以限制。
S705、生成包含所述配置信息的任务提交请求。
客户端基于用户在交互界面的操作可以生成包含任务的配置信息的提交请求,该请求可以是http请求。
S706、将所述任务提交请求发送至所述服务器,所述服务器用于生成包含所述配置信息的任务提交脚本,以及将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
具体地,客户端可以基于客户端与服务器的连接,将任务提交请求发送至服务器,服务器接收到任务提交请求后对任务提交请求进行解析获取配置信息,并根据配置信息组装任务提交脚本,将任务提交脚本提交到计算集群完成任务的提交操作,计算集群接到任务提交脚本后,根据任务提交脚本中的配置信息为该任务配置资源,以在计算集群运行该任务。
S707、向所述服务器发送任务状态查询请求。
在本发明实施例中,任务提交到计算集群后,用户可以通过客户端查询任务的任务状态,具体地,用户可以在客户端进行任务查询操作,客户端根据用户的任务查询操作生成任务状态查询请求并发送至与客户端建立连接的服务器,该任务状态查询请求中包括任务的任务索引标识,服务器可以根据任务索引标识在任务信息数据库中查询任务的运行状态信息,并将运行状态信息发送至客户端。可选地,如果任务信息数据库中不存在任务的运行状态信息,服务器可以从计算集群获取任务的运行状态信息并发送至客户端。
S708、接收所述服务器返回的所述任务的运行状态信息。
服务器如果获取到任务的运行状态信息,则将运行状态信息发送至客户端,客户端可以接收到服务器返回的任务的运行状态信息,该运行状态信息表达了任务的运行状态,例如任务处于运行状态、等待状态或者运行结束状态等。
S709、展示所述运行状态信息。
具体地,可以在客户端提供的交互界面显示任务的运行状态信息,以使得用户通过交互界面获知已提交的任务的运行状态。
本发明实施例中,用户可以通过客户端向服务器发送任务的任务状态查询请求以查询任务的运行状态信息,服务器接收到客户端的任务状态查询请求后,从任务信息数据库查询任务的运行状态信息发送至客户端,以在客户端展示任务的运行状态信息,无需用户通过计算集群的相关指令查询任务的运行状态信息,一方面,降低了用户的学习成本和用户使用计算集群的门槛,另一方面,用户可以实时查询任务的运行状态。
实施例八
图8为本发明实施例八提供的一种任务处理方法的流程图,本发明实施例在实施例六的基础上进行优化,如图8所示,本发明实施例的任务处理方法具体可以包括如下步骤:
S801、获取任务的配置信息。
S802、生成包含所述配置信息的任务提交请求。
S803、将所述任务提交请求发送至所述服务器,所述服务器用于生成包含所述配置信息的任务提交脚本,以及将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
S804、向所述服务器发送任务日志获取请求,所述任务日志获取请求中包含所述任务的任务索引标识,所述服务器用于根据所述任务索引标识确定所述计算集群中运行所述任务的计算节点的地址。
在本发明实施例中,任务提交到计算集群后,计算集群的计算节点运行任务,并且启动一日志服务记录任务运行过程中的数据以生成任务日志,用户为了获取计算节点上的任务日志,可以通过客户端向服务器发送任务日志获取请求,服务器接收到客户端发送的任务日志获取请求后,可以根据任务日志获取请求中的任务索引标识确定计算集群中运行该任务的所有的计算节点,并获取各个计算节点的地址,将各个计算节点的地址发送至客户端。
S805、接收所述服务器返回的运行所述任务的计算节点的地址。
服务器确定运行任务的计算节点的地址后,将地址发送到客户端,客户端可以接收到计算节点的地址。
S806、根据所述地址向所述计算节点请求所述任务的任务日志。
具体地,客户端可以通过地址与各个计算节点建立网络连接,并且在建立网络连接后从各个计算节点的日志服务中下载任务的任务日志,并可以在客户端显示任务的任务日志以供用户对该任务进行调试、改进等。
本发明实施例的客户端可以向服务器发送任务日志获取请求,服务器可以根据任务日志获取请求中的任务索引标识从计算集群中获取参与运行任务的计算节点,并将计算节点的地址发送至客户端,以使得客户端可以向计算节点上部署的日志服务请求任务的任务日志,一方面,用户无需使用计算集群的指令获取任务日志,降低了计算集群的使用门槛,简化了任务日志获取的过程,另一方面,实现了用户通过客户端获取任务的实时日志,从而极大提高了产品开发和调试的效率。
实施例九
图9为本发明实施例九提供的一种任务处理方法的流程图,本发明实施例在实施例六的基础上进行优化,如图9所示,本发明实施例的任务处理方法具体可以包括如下步骤:
S901、获取任务的配置信息。
S902、生成包含所述配置信息的任务提交请求。
S903、将所述任务提交请求发送至所述服务器,所述服务器用于生成包含所述配置信息的任务提交脚本,以及将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
S904、向所述服务器发送资源监控信息请求,所述服务器用于响应所述资源监控信息请求获取所述计算集群的资源监控信息。
本发明实施例中,当用户需要对计算集群的资源进行监控时,可以通过客户端向服务器发送资源监控信息请求,服务器接收到该资源监控信息请求后,可以响应该资源监控信息请求对整个计算集群的资源使用情况进行监控,以获得计算集群的资源监控信息,该资源监控信息可以包括计算集群的资源的使用情况、每个任务占用资源的情况、计算集群的监控情况、任务的运行状态等,具体地,可以使用监控脚本对计算集群的进行定时监控以获得计算集群的资源监控信息。
S905、接收所述服务器返回的资源监控信息。
本发明实施例的服务器在获取到计算集群的资源监控信息后,可以存储在服务器上,还可以将资源监控信息发送至客户端,则客户端可以接收到该资源监控信息。
S906、展示所述资源监控信息。
在本发明实施例中,可以在客户端所连接的显示终端显示的交互界面显示资源监控信息,以使得用户从交互界面上获得计算集群中资源的监控情况,可以方便用户对大规模的计算集群进行管理。
本发明实施例的客户端可以向服务器发送资源监控信息请求,服务器可以响应该资源监控信息请求对计算集群的资源进行监控,并将资源监控信息发送至客户端展示,一方面,用户无需使用计算集群的指令获取资源监控信息,降低了计算集群的使用门槛,简化了资源监控信息的获取的过程,另一方面,实现了用户通过客户端获取资源监控信息,可以方便用户对大规模的计算集群进行管理。
为了使得本领域技术人员更清楚地理解本发明实施例,以下Slurm集群为示例对本发明实施例的任务处理方法进行说明如下,其中,Slurm集群为部署了MPI环境的、由Slurm进行资源管理和调度的计算集群。
如图10A所示的系统架构中,该系统包括客户端(Client)、服务器(Slurm ManagerServer)和计算集群(MPI Cluster),其中,服务器分别与客户端和计算集群连接,客户端为暴露给用户的接口,用户通过客户端配置任务的配置信息,例如配置任务运行所需要申请的资源等,然后通过http接口向服务器提交任务,另外,客户端还提供任务的运行状态查询、任务日志获取等功能。
服务器接收客户端提交的包含配置信息的任务提交请求,并组装成Slurm可识别的任务提交脚本,然后将任务提交到计算集群上运行任务。在本示例中,服务器可以包括如下接口模块:
Slurm REST API模块:Slurm REST API模块是服务器暴露给客户端的API接口,客户端通过这些API接口与计算集群交互,如通过Slurm REST API模块提供的API接口提交任务、获取任务运行状态、实时获取任务运行日志、获取历史任务状态等信息。
Slurm Tools模块:Slurm Tools模块是服务器提供的功能组件模块,如资源抢占模块、日志获取模块、历史任务信息获取模块、正在运行任务列表获取模块等;
Slurmctld模块:Slurmctld模块是服务器的控制模块守护进程,对Slurm RESTAPI模块和Slurm Tools模块提供API接口,将任务提交到计算集群运行;
Slurmdbd模块:是服务器提供的数据库模块守护进程,主要提供提交到Slurm集群的任务的相关信息的存储。
基于上述系统架构,以下以将任务通过如图10A所示的系统提交到Slurm集群上运行为例,本示例的任务提交流程如下:
S1、客户端将本地任务的工程目录上传到分布式文件系统(HDFS)的固定目录,并接收分布式文件系统返回的路径地址;
S2、客户端将用户为任务申请的CPU个数、申请的内存大小、提交到的队任务列选择(ONLINE队列or OFFLINE队列)等资源以及从分布式文件系统返回的路径地址组装成KV格式的参数以得到配置信息,并将配置信息通过Request POST以任务提交请求的方式发送给服务器;
S3、服务器接收到任务提交请求后,为该任务生成唯一的任务索引标识,并将任务提交请求中的所有配置信息写入任务信息数据库中,并将该任务索引标识返回客户端。
S4、服务器以任务索引标识为标识启动任务,首先通过任务索引标识从任务信息数据库中获取任务的所有配置信息,然后通过sbatch组装模块将任务的所有配置信息组装成slurm可以识别的sbatch.sh提交脚本;
S5、服务器调用Slurm REST API将任务提交脚本提交给计算集群;
S6、计算集群接收到任务提交脚本后,首先获取任务提交脚本中配置信息中所配置的资源总数,然后向计算集群本身的资源调度系统申请资源,当资源满足后,为该任务分配master节点和计算节点;
S7、计算集群中的master节点从sbatch.sh提交脚本中获取分布式文件系统上任务的路径地址,并将工程目录下载到master节点本地,解压完成后分发给所有计算节点;
S8、master节点和计算节点启动任务运行任务。
如图10B所示,服务器可以包括任务提交核心模块MPI Scheduler Core和一系列的可插拔扩展模块以执行相应的任务处理流程,其中,MPI Scheduler Core模块中包括:Sbatch脚本组装模块、提交参数校验模块、资源队列准入校验模块、运行状态检查更新模块,Sbatch脚本组装模块、提交参数校验模块、资源队列准入校验模块、运行状态检查更新模块执行相应的任务处理如下:
Sbatch脚本组装模块,用于执行上述S3-S5的步骤,即用于负责调用Slurm RESTAPI编写任务提交脚本,将配置信息全部封装到Slurm可以识别的Sbatch提交脚本中,然后通过调用Slurm的sbatch命令将任务提交给计算集群进行调度运行;
提交参数校验模块,用于负责检查客户端提交过来的配置信息,检查配置信息是否设置正确、合理,例如校验申请资源是否超过了一定限制,超过了一定现在会造成整个计算集群的资源被设置不合理的配置信息的任务占用,导致其他任务无资源可用。
资源队列准入校验模块,用于对任务是否准入ONLINE(在线任务)队列进行校验,如图10C所示,由于计算集群的任务分为ONLINE队列和OFFLINE队列,ONLINE队列优先级较高,主要用于运行线上任务,具有抢占OFFLINE队列任务的特权,为了需要保证ONLINE队列的任务能够及时获取资源调度运行,所以需要对提交到ONLINE队列的任务进行准入控制。资源队列准入校验模块具体用于对配置信息中的提交用户名(user name)和任务名(jobname)进行校验,将提交用户名(user name)和任务名(job name)与记录在准入数据库中的用户名和任务名进行比对,如果校验成功,则允许将任务提交到ONLINE队列,否则,任务提交失败。
运行状态检查更新模块为单独的线程,用于每隔一定时长调用Slurm REST API获取正在运行的任务状态,并更新任务信息数据库中对应的任务的相应字段。
如图10B所示,服务器还可以包括以下扩展模块以实现相关任务处理流程:
实时日志模块:计算集群的每个计算节点上启动一个log server(日志服务),该log server用于接收日志获取请求,log server会读取本地日志,并将日志数据实时返回给Client端,则实时日志获取模块用于确定运行任务的计算节点,并将计算节点的地址返回给客户端,以使得客户端与计算节点连接,客户端请求计算节点上的log server读取任务日志。
资源抢占模块:当提交到ONLINE队列的任务等待时间超过30分钟时抢占功能触发,资源抢占模块用于依次轮询OFFLINE队列的所有处于RUNNING状态和PENDING状态的任务,每次轮循后杀死最年轻的任务(最近提交的任务),直到ONLINE队列PENDING的任务的资源得到满足为止。
资源监控模块:用于监控整个计算集群资源使用情况,例如使用脚本定期查询计算集群资源使用情况,定时分析每个任务的资源占用情况、集群健康状态以及任务运行状态,并通过UI界面进行多维度可视化展示资源监控信息。
资源审计模块:用于监控并统计各队列中的任务执行时间、任务等待时间、任务成功率、任务失败率、集群资源利用率等指标,对异常指标进行告警。
失效节点自动拉起模块:在计算集群中,任务在运行过程中可能会发生Coredump,可能会将运行该任务的节点拖入Down状态,从而该节点不可用,失效节点自动拉起模块用于定时扫描计算集群中的所有计算节点的状态,对于处于Down状态的节点,等待十分钟后将该计算节点拉起,并将该计算节点的状态变成idle状态。
本示例的任务处理流程,具有以下优点:
1)、在Slurm基础上进行了封装,将系统架构抽象为服务器和客户端,用户提交任务是在客户端配置任务的配置信息,然后生成包含配置信息的任务提交请求发送至服务器,由服务器组装任务提交脚本提交到计算集群,实现了将任务提交和任务运行分离,既增加了任务提交的灵活性,降低了Slurm任务提交的门槛,也避免了用户直接与Slurm集群接触,实现了集群安全隔离,为集群安全性提供了保障。
2)、在服务器上,任务提交功能和其它扩展功能分离,为后期系统扩展提供了便利。
3)、每一个计算节点上部署日志服务,通过服务器将计算节点地址返回客户端,由客户端根据地址向计算节点的日志服务请求任务日志,实现了在Slurm中获取实时任务日志。
4)、服务器可以配置不同的资源抢占策略为在线任务队列中的任务抢占资源,实现了不同策略和粒度的资源抢占策略。
5)、服务器可以对计算集群的资源进行监控告警和资源审计,并将资源监控信息和资源审计信息进行展示,为大规模Slurm集群的管理提供了便利。
实施例十
图11是本发明实施例十提供的一种任务处理装置的结构框图,本发明实施例的任务处理装置可应用于服务器,所述服务器分别与客户端和计算集群连接,本发明实施例的任务处理装置具体可以包括如下模块:
任务提交请求接收模块1001,用于接收所述客户端发送的任务提交请求,所述任务提交请求中包括任务的配置信息;
提交脚本生成模块1002,用于生成包含所述配置信息的任务提交脚本;
任务提交模块1003,用于将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
可选地,还包括:
任务索引标识生成模块,用于生成所述任务的任务索引标识;
配置信息存储模块,用于将所述配置信息和所述任务索引标识关联存储在预先建立的任务信息数据库中。
可选地,所述提交脚本生成模块1002包括:
配置信息查找子模块,用于采用所述任务索引标识在所述任务信息数据库中查找所述任务的配置信息;
任务提交脚本封装子模块,用于将所述配置信息封装为所述任务的任务提交脚本。
可选地,所述配置信息包括运行所述任务时所需资源的资源信息、所述任务在分布式文件系统中的任务目录、提交所述任务的用户的用户名、所述任务的任务名、所述任务的运行时长、所述任务所在的任务队列中的至少一项。
可选地,所述配置信息包括运行所述任务时所需资源的资源信息,还包括:
资源信息校验模块,用于对所述任务提交脚本中的资源信息进行校验;
资源信息校验成功模块,用于在对所述资源信息校验成功时,执行任务提交模块;
资源信息校验失败信息返回模块,用于在对所述资源信息校验失败时,向所述客户端返回资源信息校验失败的信息。
可选地,所述配置信息包括提交所述任务的用户的用户名、所述任务的任务名以及所述任务所在的任务队列,还包括:
准入校验模块,用于当所述任务所在的任务队列为在线任务队列时,基于预先建立的准入数据库对所述任务提交脚本中的所述用户名和所述任务名进行校验;
准入校验成功模块,用于在对所述用户名和所述任务名校验成功时,执行任务提交模块;
准入校验失败信息返回模块,用于在对所述用户名和所述任务名校验失败时,向所述客户端返回准入在线队列校验失败的信息。
可选地,还包括:
运行状态信息获取模块,用于从所述计算集群获取所述任务的运行状态信息;
运行状态信息存储模块,用于将所述运行状态信息与所述任务的任务索引标识关联存储在预先建立的任务信息数据库中。
可选地,还包括:
任务状态查询请求接收模块,用于接收所述客户端发送的任务状态查询请求,所述任务状态查询请求中包括所述任务的任务索引标识;
任务状态查询模块,用于基于所述任务索引标识在所述任务信息数据库中查询所述任务的运行状态信息;
运行状态信息发送模块,用于将所述运行状态信息发送至所述客户端。
可选地,还包括:
任务日志获取请求接收模块,用于接收所述客户端发送的任务日志获取请求,所述任务日志获取请求中包含所述任务的任务索引标识;
计算节点地址确定模块,用于基于所述任务索引标识确定所述计算集群中运行所述任务的计算节点的地址;
地址发送模块,用于将所述地址发送至所述客户端。
可选地,还包括:
抢占模块,用于当检测到资源抢占触发事件时,以预设策略抢占资源以使得所述计算集群运行在线任务队列中的任务。
可选地,所述资源抢占触发事件包括在线任务队列中存在等待执行的任务,或者在线任务队列中任务的等待时长大于预设时长。
可选地,抢占模块包括:
任务取消子模块,用于调用所述计算集群的指定接口取消离线任务队列中处于指定状态的任务,或者,调用所述计算集群的指定接口取消离线任务队列中资源使用量大于预设阈值的任务。
可选地,还包括:
监控信息获取模块,用于获取所述计算集群的资源监控信息;
监控信息展示模块,用于展示所述资源监控信息。
可选地,所述监控信息展示模块包括:
资源监控信息发送子模块,用于响应所述客户端的资源监控信息请求,将所述资源监控信息发送至所述客户端,以在所述客户端展示所述资源监控信息。
可选地,还包括:
资源审计信息获取模块,用于获取所述计算集群的资源审计信息;
资源审计信息展示模块,用于展示所述资源审计信息。
可选地,还包括:
计算节点状态确定模块,用于确定所述计算集群中的各个计算节点的工作状态;
拉取操作模块,用于在计算节点的状态为故障状态时,在预设时长后调用所述计算集群的指定接口对所述计算节点执行拉起操作。
本发明实施例所提供的任务处理装置可执行本发明实施例一到实施例五所提供的任一任务处理方法,具备执行方法相应的功能模块和有益效果。
实施例十一
图12是本发明实施例十一提供的一种任务处理装置的结构框图,本发明实施例的任务处理装置可应用于客户端,该客户端与服务器连接,服务器与计算集群连接,本发明实施例的任务处理装置具体可以包括如下模块:
配置信息获取模块1101,用于获取任务的配置信息;
任务提交请求生成模块1102,用于生成包含所述配置信息的任务提交请求;
任务提交请求发送模块1103,用于将所述任务提交请求发送至所述服务器,所述服务器用于生成包含所述配置信息的任务提交脚本,以及将所述任务提交脚本提交到所述计算集群,所述计算集群用于根据所述任务提交脚本中的配置信息运行所述任务。
可选地,还包括:
目录上传模块,用于将所述任务的本地工程目录上传至分布式文件系统;
任务目录接收模块,用于接收所述分布式文件系统返回的任务目录。
可选地,所述配置信息获取模块1101包括:
资源信息配置子模块,用于配置运行所述任务时所需资源的资源信息,
配置信息封装子模块,用于将所述资源信息和所述任务目录封装为指定格式的配置信息。
可选地,所述配置信息包括运行所述任务时所需资源的资源信息、所述任务在分布式文件系统中的任务目录、提交所述任务的用户的用户名、所述任务的任务名、所述任务的运行时长、所述任务所在的任务队列中的至少一项。
可选地,还包括:
任务状态查询请求发送模块,用于向所述服务器发送任务状态查询请求;
运行状态信息接收模块,用于接收所述服务器返回的所述任务的运行状态信息;
运行状态信息展示模块,用于展示所述运行状态信息。
可选地,还包括:
任务日志获取请求发送模块,用于向所述服务器发送任务日志获取请求,所述任务日志获取请求中包含所述任务的任务索引标识,所述服务器用于根据所述任务索引标识确定所述计算集群中运行所述任务的计算节点的地址;
地址接收模块,用于接收所述服务器返回的运行所述任务的计算节点的地址;
任务日志请求模块,用于根据所述地址向所述计算节点请求所述任务的任务日志。
可选地,还包括:
资源监控信息请求发送模块,用于向所述服务器发送资源监控信息请求,所述服务器用于响应所述资源监控信息请求获取所述计算集群的资源监控信息;
资源监控信息接收模块,用于接收所述服务器返回的资源监控信息;
资源监控信息展示模块,用于展示所述资源监控信息。
本发明实施例所提供的任务处理装置可执行本发明实施例六到实施例九所提供的任一任务处理方法,具备执行方法相应的功能模块和有益效果。
实施例十二
参照图13,示出了本发明一个示例中的一种服务器或客户端的结构示意图。如图13所示,该服务器或客户端具体可以包括:处理器1200、存储器1201、具有触摸功能的显示屏1202、输入装置1203、输出装置1204以及通信装置1205。该设备中处理器1200的数量可以是一个或者多个,图13中以一个处理器1200为例。该设备中存储器1201的数量可以是一个或者多个,图13中以一个存储器1201为例。该设备的处理器1200、存储器1201、显示屏1202、输入装置1203、输出装置1204以及通信装置1205可以通过总线或者其他方式连接,图13中以通过总线连接为例。
存储器1201作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例一到实施例五所述的任务处理方法对应的程序指令/模块(例如,上述实施例十的任务处理装置中的任务提交请求接收模块1001、提交脚本生成模块1002和任务提交模块1003),或如本发明实施例六到实施例九所述的任务处理方法对应的程序指令/模块(例如,上述实施例十一中的任务处理装置中的配置信息获取模块1101、任务提交请求生成模块1102和任务提交请求发送模块1103)。存储器1201可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器1201可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器1201可进一步包括相对于处理器1200远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
显示屏1202为具有触摸功能的显示屏1202,其可以是电容屏、电磁屏或者红外屏。一般而言,显示屏1202用于根据处理器1200的指示显示数据,还用于接收作用于显示屏1202的触摸操作,并将相应的信号发送至处理器1200或其他装置。可选的,当显示屏1202为红外屏时,其还包括红外触摸框,该红外触摸框设置在显示屏1202的四周,其还可以用于接收红外信号,并将该红外信号发送至处理器1200或者其他设备。
通信装置1205,用于与其他设备建立通信连接,其可以是有线通信装置和/或无线通信装置。
输入装置1203可用于接收输入的数字或者字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。输出装置1204可以包括扬声器等音频设备。需要说明的是,输入装置1203和输出装置1204的具体组成可以根据实际情况设定。
处理器1200通过运行存储在存储器1201中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述任务处理方法。
具体地,实施例中,处理器1200执行存储器1201中存储的一个或多个程序时,具体实现本发明实施例提供的任务处理方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述存储介质中的指令由设备的处理器执行时,使得设备能够执行如上述方法实施例所述的任务处理方法。
实施例十三
如图14所示为本发明实施例的一种任务处理系统的结构框图,如图14所示,本发明实施例的任务处理系统包括客户端1301、服务器1302和计算集群1303,所述服务器1302分别与所述客户端1301和所述计算集群1303连接,
所述客户端1301包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例四或实施例五所述的任务处理方法。
所述服务器1302包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例一到实施例三任一所述的任务处理方法。
所述计算集群1303包括多个计算节点。
需要说明的是,对于装置、服务器、客户端、系统、存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的任务处理方法。
值得注意的是,上述任务处理装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FAPG)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (27)
1.一种任务处理方法,其特征在于,应用于服务器,所述服务器分别与客户端和Slurm计算集群连接,包括:
接收所述客户端发送的任务提交请求,所述任务提交请求中包括任务的配置信息;
通过Slurm计算集群的API调用Slurm计算集群的sbatch组装组件生成包含所述配置信息的sbatch.sh任务提交脚本;
调用Slurm REST API将所述sbatch.sh任务提交脚本提交到所述Slurm计算集群,所述Slurm计算集群用于接收到sbatch.sh任务提交脚本时分配master节点和计算节点,master节点从所述sbatch.sh任务提交脚本中获取分布式文件系统上任务的路径地址,并将工程目录下载到master节点并解压完成后分发给计算节点,master节点和计算节点启动任务运行任务;
当检测到资源抢占触发事件时,通过Slurm Tools模块以预设策略抢占资源以使得所述Slurm计算集群运行在线任务队列中的任务,其中,所述预设策略为调用所述Slurm计算集群的指定接口取消离线任务队列中处于指定状态的任务,或者,调用所述Slurm计算集群的指定接口取消离线任务队列中资源使用量大于预设阈值的任务。
2.根据权利要求1所述的方法,其特征在于,在通过Slurm计算集群的API调用Slurm计算集群的sbatch组装组件生成包含所述配置信息的sbatch.sh任务提交脚本之前,还包括:
生成所述任务的任务索引标识;
将所述配置信息和所述任务索引标识关联存储在预先建立的任务信息数据库中。
3.根据权利要求2所述的方法,其特征在于,所述通过Slurm计算集群的API调用Slurm计算集群的sbatch组装组件生成包含所述配置信息的sbatch.sh任务提交脚本,包括:
采用所述任务索引标识在所述任务信息数据库中查找所述任务的配置信息;
通过Slurm计算集群的API调用Slurm计算集群的sbatch组装组件将所述配置信息封装为所述任务的sbatch.sh任务提交脚本。
4.根据权利要求1所述的方法,其特征在于,所述配置信息包括运行所述任务时所需资源的资源信息、所述任务在分布式文件系统中的任务目录、提交所述任务的用户的用户名、所述任务的任务名、所述任务的运行时长、所述任务所在的任务队列中的至少一项。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述配置信息包括运行所述任务时所需资源的资源信息,调用Slurm REST API将所述sbatch.sh任务提交脚本提交到所述Slurm计算集群之前,还包括:
对所述sbatch.sh任务提交脚本中的资源信息进行校验;
在对所述资源信息校验成功时,执行调用Slurm REST API将所述sbatch.sh任务提交脚本提交到所述Slurm计算集群的步骤;
在对所述资源信息校验失败时,向所述客户端返回资源信息校验失败的信息。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述配置信息包括提交所述任务的用户的用户名、所述任务的任务名以及所述任务所在的任务队列,调用Slurm REST API将所述sbatch.sh任务提交脚本提交到所述Slurm计算集群之前,还包括:
当所述任务所在的任务队列为在线任务队列时,基于预先建立的准入数据库对所述sbatch.sh任务提交脚本中的所述用户名和所述任务名进行校验;
在对所述用户名和所述任务名校验成功时,执行调用Slurm REST API将所述sbatch.sh任务提交脚本提交到所述Slurm计算集群的步骤;
在对所述用户名和所述任务名校验失败时,向所述客户端返回准入在线队列校验失败的信息。
7.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
从所述Slurm计算集群获取所述任务的运行状态信息;
将所述运行状态信息与所述任务的任务索引标识关联存储在预先建立的任务信息数据库中。
8.根据权利要求7所述的方法,其特征在于,还包括:
接收所述客户端发送的任务状态查询请求,所述任务状态查询请求中包括所述任务的任务索引标识;
基于所述任务索引标识在所述任务信息数据库中查询所述任务的运行状态信息;
将所述运行状态信息发送至所述客户端。
9.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
接收所述客户端发送的任务日志获取请求,所述任务日志获取请求中包含所述任务的任务索引标识;
基于所述任务索引标识确定所述Slurm计算集群中运行所述任务的计算节点的地址;
将所述地址发送至所述客户端,所述客户端用于根据所述地址向所述计算节点请求所述任务的任务日志。
10.根据权利要求1所述的方法,其特征在于,所述资源抢占触发事件包括在线任务队列中存在等待执行的任务,或者在线任务队列中任务的等待时长大于预设时长。
11.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
获取所述Slurm计算集群的资源监控信息;
展示所述资源监控信息。
12.根据权利要求11所述的方法,其特征在于,所述展示所述资源监控信息,包括:
响应所述客户端的资源监控信息请求,将所述资源监控信息发送至所述客户端,以在所述客户端展示所述资源监控信息。
13.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
获取所述Slurm计算集群的资源审计信息;
展示所述资源审计信息。
14.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
确定所述Slurm计算集群中的各个计算节点的工作状态;
在计算节点的状态为故障状态时,在预设时长后调用所述Slurm计算集群的指定接口对所述计算节点执行拉起操作。
15.一种任务处理方法,其特征在于,应用于客户端,所述客户端与服务器连接,所述服务器与Slurm计算集群连接,包括:
获取任务的配置信息;
生成包含所述配置信息的任务提交请求;
将所述任务提交请求发送至所述服务器,所述服务器用于通过Slurm计算集群的API调用Slurm计算集群的sbatch组装组件生成包含所述配置信息的sbatch.sh任务提交脚本,以及调用Slurm REST API将所述sbatch.sh任务提交脚本提交到所述Slurm计算集群,所述Slurm计算集群用于接收到sbatch.sh任务提交脚本时分配master节点和计算节点,master节点从所述sbatch.sh任务提交脚本中获取分布式文件系统上任务的路径地址,并将工程目录下载到master节点并解压完成后分发给计算节点,master节点和计算节点启动任务运行任务,当检测到资源抢占触发事件时,通过Slurm Tools模块以预设策略抢占资源以使得所述Slurm计算集群运行在线任务队列中的任务,其中,所述预设策略为调用所述Slurm计算集群的指定接口取消离线任务队列中处于指定状态的任务,或者,调用所述Slurm计算集群的指定接口取消离线任务队列中资源使用量大于预设阈值的任务。
16.根据权利要求15所述的方法,其特征在于,在所述获取任务的配置信息之前,还包括:
将所述任务的本地工程目录上传至分布式文件系统;
接收所述分布式文件系统返回的任务目录。
17.根据权利要求16所述的方法,其特征在于,所述获取任务的配置信息,包括:
配置运行所述任务时所需资源的资源信息,
将所述资源信息和所述任务目录封装为指定格式的配置信息。
18.根据权利要求15-17任一项所述的方法,其特征在于,所述配置信息包括运行所述任务时所需资源的资源信息、所述任务在分布式文件系统中的任务目录、提交所述任务的用户的用户名、所述任务的任务名、所述任务的运行时长、所述任务所在的任务队列中的至少一项。
19.根据权利要求15-17任一项所述的方法,其特征在于,还包括:
向所述服务器发送任务状态查询请求;
接收所述服务器返回的所述任务的运行状态信息;
展示所述运行状态信息。
20.根据权利要求15-17任一项所述的方法,其特征在于,还包括:
向所述服务器发送任务日志获取请求,所述任务日志获取请求中包含所述任务的任务索引标识,所述服务器用于根据所述任务索引标识确定所述Slurm计算集群中运行所述任务的计算节点的地址;
接收所述服务器返回的运行所述任务的计算节点的地址;
根据所述地址向所述计算节点请求所述任务的任务日志。
21.根据权利要求15-17任一项所述的方法,其特征在于,还包括:
向所述服务器发送资源监控信息请求,所述服务器用于响应所述资源监控信息请求获取所述Slurm计算集群的资源监控信息;
接收所述服务器返回的资源监控信息;
展示所述资源监控信息。
22.一种任务处理装置,其特征在于,应用于服务器,所述服务器分别与客户端和Slurm计算集群连接,包括:
任务提交请求接收模块,用于接收所述客户端发送的任务提交请求,所述任务提交请求中包括任务的配置信息;
提交脚本生成模块,用于通过Slurm计算集群的API调用Slurm计算集群的sbatch组装组件生成包含所述配置信息的sbatch.sh任务提交脚本;
任务提交模块,用于调用Slurm REST API将所述sbatch.sh任务提交脚本提交到所述Slurm计算集群,所述Slurm计算集群用于接收到sbatch.sh任务提交脚本时分配master节点和计算节点,master节点从所述sbatch.sh任务提交脚本中获取分布式文件系统上任务的路径地址,并将工程目录下载到master节点并解压完成后分发给计算节点,master节点和计算节点启动任务运行任务;
抢占模块,用于当检测到资源抢占触发事件时,通过Slurm Tools模块以预设策略抢占资源以使得所述Slurm计算集群运行在线任务队列中的任务,其中,所述预设策略为调用所述Slurm计算集群的指定接口取消离线任务队列中处于指定状态的任务,或者,调用所述Slurm计算集群的指定接口取消离线任务队列中资源使用量大于预设阈值的任务。
23.一种任务处理装置,其特征在于,应用于客户端,所述客户端与服务器连接,所述服务器与Slurm计算集群连接,包括:
配置信息获取模块,用于获取任务的配置信息;
任务提交请求生成模块,用于生成包含所述配置信息的任务提交请求;
任务提交请求发送模块,用于将所述任务提交请求发送至所述服务器,所述服务器用于通过Slurm计算集群的API调用Slurm计算集群的sbatch组装组件生成包含所述配置信息的sbatch.sh任务提交脚本,以及调用Slurm REST API将所述sbatch.sh任务提交脚本提交到所述Slurm计算集群,所述Slurm计算集群用于接收到sbatch.sh任务提交脚本时分配master节点和计算节点,master节点从所述sbatch.sh任务提交脚本中获取分布式文件系统上任务的路径地址,并将工程目录下载到master节点并解压完成后分发给计算节点,master节点和计算节点启动任务运行任务,当检测到资源抢占触发事件时,通过SlurmTools模块以预设策略抢占资源以使得所述Slurm计算集群运行在线任务队列中的任务,其中,所述预设策略为调用所述Slurm计算集群的指定接口取消离线任务队列中处于指定状态的任务,或者,调用所述Slurm计算集群的指定接口取消离线任务队列中资源使用量大于预设阈值的任务。
24.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-14中任一所述的任务处理方法。
25.一种客户端,其特征在于,所述客户端包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求15-21中任一所述的任务处理方法。
26.一种任务处理系统,其特征在于,包括Slurm计算集群、如权利要求25所述的客户端以及如权利要求24所述的服务器,所述服务器分别与所述Slurm计算集群和所述客户端连接。
27.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-21中任一所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911052436.4A CN110781007B (zh) | 2019-10-31 | 2019-10-31 | 任务处理方法、装置、服务器、客户端、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911052436.4A CN110781007B (zh) | 2019-10-31 | 2019-10-31 | 任务处理方法、装置、服务器、客户端、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110781007A CN110781007A (zh) | 2020-02-11 |
CN110781007B true CN110781007B (zh) | 2023-12-26 |
Family
ID=69387980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911052436.4A Active CN110781007B (zh) | 2019-10-31 | 2019-10-31 | 任务处理方法、装置、服务器、客户端、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110781007B (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338770A (zh) * | 2020-02-12 | 2020-06-26 | 咪咕文化科技有限公司 | 一种任务调度的方法、服务器和计算机可读存储介质 |
CN111338793A (zh) * | 2020-02-14 | 2020-06-26 | 拉扎斯网络科技(上海)有限公司 | 集群任务分发方法、装置、设备及存储介质 |
CN111552561B (zh) * | 2020-04-10 | 2023-05-23 | 郑州阿帕斯数云信息科技有限公司 | 一种任务处理方法及装置 |
CN113553166A (zh) * | 2020-04-26 | 2021-10-26 | 广州汽车集团股份有限公司 | 一种跨平台高性能计算集成方法及系统 |
CN111562922A (zh) * | 2020-04-29 | 2020-08-21 | 北京中大唯信科技有限公司 | 命令行程序模块化及云端化的方法、系统、电子设备 |
CN111625269A (zh) * | 2020-05-14 | 2020-09-04 | 中电工业互联网有限公司 | 一种基于Web的通用Spark任务提交系统及方法 |
CN113806027B (zh) * | 2020-06-15 | 2023-12-12 | 广州虎牙信息科技有限公司 | 任务编排方法、装置、电子设备和计算机可读存储介质 |
CN111857804A (zh) * | 2020-07-22 | 2020-10-30 | 北京达佳互联信息技术有限公司 | 离线任务的处理方法、装置、电子设备及存储介质 |
CN112115202A (zh) * | 2020-09-18 | 2020-12-22 | 北京人大金仓信息技术股份有限公司 | 集群环境下的任务分发方法和装置 |
CN112084011A (zh) * | 2020-09-25 | 2020-12-15 | 中国建设银行股份有限公司 | 变更任务的处理方法及相关装置 |
CN112130983A (zh) * | 2020-10-27 | 2020-12-25 | 上海商汤临港智能科技有限公司 | 任务处理方法、装置、设备、系统及存储介质 |
CN114527962A (zh) * | 2020-11-23 | 2022-05-24 | 中国移动通信集团重庆有限公司 | 流程自动化处理装置、方法及计算设备 |
CN112445595B (zh) * | 2020-11-26 | 2022-10-25 | 深圳晶泰科技有限公司 | 基于slurm计算平台的多任务提交系统 |
CN112579101B (zh) * | 2020-12-21 | 2023-07-18 | 广州博冠信息科技有限公司 | 任务脚本管控方法、装置、电子设备和存储介质 |
CN112732283A (zh) * | 2021-01-21 | 2021-04-30 | 深圳市位元领航科技有限公司 | 一种客户端-服务器模式的实现方法、客户端以及服务器 |
CN113220759A (zh) * | 2021-04-27 | 2021-08-06 | 深圳市云网万店科技有限公司 | 大数据存储服务共享方法、装置、计算机设备和存储介质 |
CN115291928A (zh) * | 2022-06-29 | 2022-11-04 | 上海淇玥信息技术有限公司 | 多种技术栈的任务自动集成方法、装置及电子设备 |
CN116582537A (zh) * | 2023-07-13 | 2023-08-11 | 国家超级计算天津中心 | 远程仿真方法、装置、设备、存储介质及系统 |
CN117075930B (zh) * | 2023-10-17 | 2024-01-26 | 之江实验室 | 一种计算框架管理系统 |
CN117234740B (zh) * | 2023-11-13 | 2024-02-20 | 沐曦集成电路(杭州)有限公司 | 一种gpu硬件资源的调度方法、装置、设备及介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294482A (zh) * | 2013-06-27 | 2013-09-11 | 曙光信息产业(北京)有限公司 | 用于PWscf并行计算系统的Web服务封装方法以及系统 |
CN103294874A (zh) * | 2013-06-27 | 2013-09-11 | 曙光信息产业(北京)有限公司 | 用于电磁仿真计算系统FEKO的Web服务封装方法以及系统 |
CN103294485A (zh) * | 2013-06-27 | 2013-09-11 | 曙光信息产业(北京)有限公司 | 用于ABINIT并行计算系统的Web服务封装方法以及系统 |
CN103902646A (zh) * | 2013-12-27 | 2014-07-02 | 北京天融信软件有限公司 | 一种分布式任务管理系统与方法 |
CN107066332A (zh) * | 2017-01-25 | 2017-08-18 | 广东神马搜索科技有限公司 | 分布式系统及其调度方法和调度装置 |
CN107357661A (zh) * | 2017-07-12 | 2017-11-17 | 北京航空航天大学 | 一种针对混合负载的细粒度gpu资源管理方法 |
CN107977268A (zh) * | 2017-10-13 | 2018-05-01 | 北京百度网讯科技有限公司 | 人工智能的异构硬件的任务调度方法、装置及可读介质 |
CN109739627A (zh) * | 2018-12-26 | 2019-05-10 | 上海连尚网络科技有限公司 | 任务的调度方法、电子设备及介质 |
CN109814995A (zh) * | 2019-01-04 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
-
2019
- 2019-10-31 CN CN201911052436.4A patent/CN110781007B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294482A (zh) * | 2013-06-27 | 2013-09-11 | 曙光信息产业(北京)有限公司 | 用于PWscf并行计算系统的Web服务封装方法以及系统 |
CN103294874A (zh) * | 2013-06-27 | 2013-09-11 | 曙光信息产业(北京)有限公司 | 用于电磁仿真计算系统FEKO的Web服务封装方法以及系统 |
CN103294485A (zh) * | 2013-06-27 | 2013-09-11 | 曙光信息产业(北京)有限公司 | 用于ABINIT并行计算系统的Web服务封装方法以及系统 |
CN103902646A (zh) * | 2013-12-27 | 2014-07-02 | 北京天融信软件有限公司 | 一种分布式任务管理系统与方法 |
CN107066332A (zh) * | 2017-01-25 | 2017-08-18 | 广东神马搜索科技有限公司 | 分布式系统及其调度方法和调度装置 |
CN107357661A (zh) * | 2017-07-12 | 2017-11-17 | 北京航空航天大学 | 一种针对混合负载的细粒度gpu资源管理方法 |
CN107977268A (zh) * | 2017-10-13 | 2018-05-01 | 北京百度网讯科技有限公司 | 人工智能的异构硬件的任务调度方法、装置及可读介质 |
CN109739627A (zh) * | 2018-12-26 | 2019-05-10 | 上海连尚网络科技有限公司 | 任务的调度方法、电子设备及介质 |
CN109814995A (zh) * | 2019-01-04 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 任务调度方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110781007A (zh) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781007B (zh) | 任务处理方法、装置、服务器、客户端、系统和存储介质 | |
US11307967B2 (en) | Test orchestration platform | |
CN113169952B (zh) | 一种基于区块链技术的容器云管理系统 | |
US9904585B1 (en) | Error handling in executing workflow state machines | |
CN104541247B (zh) | 用于调整云计算系统的系统和方法 | |
US9262231B2 (en) | System and method for modifying a hardware configuration of a cloud computing system | |
US9658895B2 (en) | System and method for configuring boot-time parameters of nodes of a cloud computing system | |
US9152532B2 (en) | System and method for configuring a cloud computing system with a synthetic test workload | |
US9766927B1 (en) | Data flow management in processing workflows | |
CN110083455B (zh) | 图计算处理方法、装置、介质及电子设备 | |
US20140047342A1 (en) | System and method for allocating a cluster of nodes for a cloud computing system based on hardware characteristics | |
WO2016183553A1 (en) | Query dispatch and execution architecture | |
CN112035228A (zh) | 一种资源调度方法及装置 | |
CN110046041B (zh) | 一种基于celery调度框架的数据采集方法 | |
JP7453426B2 (ja) | ネットワーク管理システム、方法、装置及び電子機器 | |
Huang | AppACTS: Mobile app automated compatibility testing service | |
CN110971700B (zh) | 分布式锁的实现方法及装置 | |
CN110781180A (zh) | 一种数据筛选方法和数据筛选装置 | |
CN111190732A (zh) | 定时任务处理系统及方法、存储介质和电子设备 | |
CN113867600A (zh) | 处理流式数据的开发方法、装置和计算机设备 | |
CN107038066B (zh) | 一种基于Web的作业计算系统 | |
CN116016702A (zh) | 一种应用可观测数据采集处理方法、装置及介质 | |
Bellavista et al. | GAMESH: a grid architecture for scalable monitoring and enhanced dependable job scheduling | |
CN113704765A (zh) | 基于人工智能的操作系统识别方法、装置及电子设备 | |
CN115357198B (zh) | 存储卷的挂载方法及装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |