法律状态公告日
法律状态信息
法律状态
2019-06-28
授权
授权
2017-02-08
实质审查的生效 IPC(主分类):G06F9/50 申请日:20160811
实质审查的生效
2017-01-11
公开
公开
技术领域
本发明属于计算机技术领域,涉及一种作业调度和计算资源分配方法。
背景技术
在超算服务业务开展过程中,主要使用FIFO(First In First Out,先入先出)调度机制分配任务,将所有的作业统一提交到一个队列中,并按照提交的先后顺序依次运行队列中的作业。但随着超算用户、业务量、业务类型的增多,传统的FIFO调度机制已经不能满足目前超算业务调度的需求。
现有作业调度方法中,通常只考虑业务的优先级,导致优先级低的业务不能及时调度,降低了作业调度的公平性和时效性。
现有资源分配方法中,通常只考虑将所有资源作为一个统一的计算资源池,导致计算资源划分不灵活、使用效率低。
发明内容
有鉴于此,本发明的目的在于提供一种作业调度和计算资源分配方法,该方法能够避免优先级低的业务不能及时调度的问题,保障所有作业在规定的时间能够完成计算,提作业调度的公平性和时效性。
为达到上述目的,本发明提供如下技术方案:
一种作业调度和计算资源分配方法,该方法包括以下步骤:
S1:根据用户业务需求为用户分配计算资源;
S2:根据用户业务需求建立作业队列,记录每个作业的优先级、作业提交时间、作业要求计算完毕时间信息,并为每个作业分配相应的计算资源;
S3:计算各队列中各个作业预计运行时间长度;
S4:以用户为调度范围,采用作业的优先级、预计运行时间长度为依据进行作业调度;
S5:以作业包含的任务类型和关系为依据进行任务调度;
S6:计算完毕,释放计算资源。
进一步,在步骤S1中,根据每个用户的业务需求,为其分配分配计算资源Ki,i=1,2,…n,i为用户编号;管理节点将分配给节点i的计算资源分成两部份:一部份为Ki*P,作为该用户实际的计算资源,另外一部份为Ki*(1-P),作为该用户的预留计算资源,其中,P为该用户实际使用的计算资源与该用户分配的总计算资源的比值,0≤P≤1。
进一步,在步骤S2中,以用户为单位,调度系统根据用户业务量的大小及业务类型,建立N(N≥1)个作业队列;以用户为单位,对每个用户在超算平台上运行的所有作业建立一张作业信息表,每个作业对应的相关信息作为该信息表中的一条记录;该表中记录的内容包括:作业对应的计算资源、作业优先级、作业提交时间、作业要求计算完毕时间、预计完成时间长度、当前是否占用计算资源信息。
进一步,在步骤S3中,根据信息表中各个作业的记录信息,计算各个作业预计完成时间长度,作业预计完成时间长度T的方法如下:
其中,S为当前作业的计算量,S’为历史作业的计算量,T0为历史作业的运行时间长度;计算完毕后,将本用户各个作业的预计完成时间长度T添加对应的作业信息表中。
进一步,在步骤S4中,以用户为单位,对作业优先级进行排序,综合考虑作业优先级和作业预计完成时间、运行速度等信息进行作业调度;针对本用户,以每个作业的预计完成时间长度为依据,判断队列中作业的处理顺序,处理机制如下:
1)作业要求计算完毕的时间-当前时间>作业的预计完成时间长度,则不作处理,按作业优先级顺序进行调度;
2)作业要求计算完毕时间-当前时间≤作业的预计完成时间长度,立即进行作业调度,将该作业分配到本用户的预留计算资源进行调度;如果本用户的预留计算资源不够用,则申请系统独立的计算资源进行调度。
进一步,在步骤S5中,在任务调度过程中,需要判断该作业的所有任务的关系,如果任务间是串行关系,则将任务按FIFO顺序,分配该作业对应的全部资源进行计算;如果任务间是并行关系,需确定该并行关系的任务数M,然后将该作业的计算资源等分成M份,每个任务对应其中1份计算资源,最后进行并行计算。
进一步,在步骤S6中,当作业使用资源完毕,设置作业信息表中占用资源信息为空,即释放资源,并更新作业信息表中相关信息。
本发明的有益效果在于:本发明提供的方法能够避免优先级低的业务不能及时调度的问题,保障所有作业在规定的时间能够完成计算;提作业调度的公平性和时效性。
附图说明
为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:
图1为作业调度和资源分配流程示意图;
图2为作业调度和资源分配原理图;
图3为作业调度流程示意图;
图4为任务调度流程示意图。
具体实施方式
下面将结合附图,对本发明的优选实施例进行详细的描述。
图1为作业调度和资源分配流程示意图,如图所示,在图中,参数配置被细分为6个步骤:
步骤S1,根据用户需求为用户分配计算资源;
具体地,根据每个用户的业务需求,为其分配分配计算资源Ki(i=1,2,…n,i为用户编号);管理节点将分配给节点i的计算资源分成两部分:一部份为Ki*P,作为该用户实际的计算资源,另外一部份为Ki*(1-P),作为该用户的预留计算资源,其中,P为该用户实际使用的计算资源与该用户分配的总计算资源的比值,0≤P≤1。
另外,为了保证整个系统超算业务调度的顺利进行,在为每个用户分配预留资源外,系统还将预留一部份资源备用。具体作业调度和资源分配原理如图2所示。
步骤S2,根据用户需求建立作业队列,并为每个作业分配计算资源,确定作业优先级、记录作业提交时间。
另外,需要针对每个用户建立一张作业信息表,用于记录该用户所有作业的计算资源、作业优先级、记录作业提交时间、作业要求计算完毕时间、当前是否占用计算资源等信息;
作业信息表示例如下:
步骤S3,计算各队列中各个作业预计运行时间:
其中,S为当前作业的计算量,S’为历史作业的计算量,T0为历史作业的运行时间。
步骤S4,进行作业调度;作业调度示意如图3所示。
步骤S41,以用户为单位,对本用户的所有作业优先级进行排序;
步骤S42,对于每个用户,以每个作业的预计完成时间长度为依据,判断是否立即处理;计算作业要求计算完毕时间-当前时间的值,并判断作业要求计算完毕时间-当前时间与作业的预计完成时间长度的关系;
步骤S43,如果作业要求计算完毕时间-当前时间>作业的预计完成时间长度,则不作处理,按作业优先级顺序进行调度;
步骤S44,如果作业要求计算完毕时间-当前时间≤作业的预计完成时间长度,立即进行作业调度,将该作业分配到本用户的预留计算资源进行调度;如果本用户的预留计算资源不够用,则申请系统独立的计算资源进行调度。
步骤S5,以该作业的所有任务的关系为依据进行任务调度;图4为任务调度流程示意图。
步骤S51,在任务调度过程中,首先判断该作业的所有任务的类型和关系;
步骤S52,如果任务间是串行关系,则将任务按FIFO顺序,分配该作业的全部资源进行计算;
步骤S53,如果任务间是并行关系,则需要确定该并行关系的任务数M,然后将该作业的计算资源分成M份,每个任务对应其中1份计算资源,最后进行并行计算。
步骤S6,计算资源使用完毕,释放计算资源。
当作业使用资源完毕,更新作业信息表中占用资源信息为空,即释放资源,并更新作业信息表中相关信息。
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。
机译: 计算资源分配装置,计算资源分配系统,计算资源分配方法和程序。
机译: 计算资源分配装置,计算资源分配方法和计算资源分配程序
机译: 计算资源分配装置,计算资源分配方法以及计算资源分配程序