CN110955527A - 一种基于cpu核数预测实现并行任务调度的方法和系统 - Google Patents

一种基于cpu核数预测实现并行任务调度的方法和系统 Download PDF

Info

Publication number
CN110955527A
CN110955527A CN201911296949.XA CN201911296949A CN110955527A CN 110955527 A CN110955527 A CN 110955527A CN 201911296949 A CN201911296949 A CN 201911296949A CN 110955527 A CN110955527 A CN 110955527A
Authority
CN
China
Prior art keywords
job
scheduling
queue
scheduling queue
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.)
Granted
Application number
CN201911296949.XA
Other languages
English (en)
Other versions
CN110955527B (zh
Inventor
唐卓
肖雄
李肯立
蒋冰婷
李文
朱锦涛
唐小勇
阳王东
周旭
刘楚波
曹嵘晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan University
Original Assignee
Hunan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan University filed Critical Hunan University
Priority to CN201911296949.XA priority Critical patent/CN110955527B/zh
Publication of CN110955527A publication Critical patent/CN110955527A/zh
Application granted granted Critical
Publication of CN110955527B publication Critical patent/CN110955527B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了一种基于CPU核数预测实现并行任务调度的方法,其通过衡量异构处理器的高计算能力和调度算法的执行效果以及处理器负载均衡等各项性能指标,应用天河一号很强计算能力的节点实测所设计的数据预测并行技术和调度算法的性能指标,可以发现计算时间有明显的减少,预测方法并行执行的时间大大缩减,同时算法的执行更为高效,并且该计算方法保持了很好的处理器负载均衡,得到了一个较优的调度执行结果。本发明可以充分利用现有的硬件资源进行计算,并且在操作中证明了基于异构处理器集群情况下的预测方法的执行高效性,以及所使用的调度算法的并行执行的可靠性,同时也很好的保证了处理器间的负载均衡。

Description

一种基于CPU核数预测实现并行任务调度的方法和系统
技术领域
本发明属于计算机异构集群计算技术领域,更具体地,涉及一种基于CPU核数预测实现并行任务调度的方法和系统。
背景技术
目前,使用超级计算中心的计算资源进行高性能计算研究已经在国内得到了极大的普及。然而,大部分超级计算中心针对任务的调度策略都存在一些不可忽略的问题:第一,由于任务调度的不充分性,导致作业的排队时间过长,造成调度效率低下;第二,由于没有对调度队列的负载进行可靠的预测,导致需要大规模处理器进行计算的作业无法被高效调度到对应的调度队列中进行处理,从而增加了大量时间开销;第三,由于该调度策略未使用有效的负载均衡策略,导致负载过重的作业不能被有效调度到可提供大量节点的调度队列中处理,从而造成严重的负载失衡状况,并形成了较为严重的调度性能瓶颈。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于CPU核数预测实现并行任务调度的方法,其目的在于,解决现有超级计算中心所使用的调度策略由于任务调度的不充分性,导致作业的排队时间过长、调度效率低下的技术问题,以及由于没有对调度队列的负载进行可靠的预测,导致需要大规模处理器进行计算的作业无法被高效调度到对应的调度队列中进行处理,从而增加了大量时间开销的技术问题,以及由于未使用有效的负载均衡策略,造成严重的负载失衡状况,并形成较为严重的调度性能瓶颈的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于CPU核数预测实现并行任务调度的方法,包括以下步骤:
(1)客户端获取来自用户的日志文件和文本文件,其中日志文件中记载有多个服务端、每个服务端可提供的多个调度队列、每个调度队列在不同时间的队列运行参数,文本文件中记载了待调度作业信息、可调度队列信息、以及服务端计算能力信息;
(2)客户端对获得的日志文件和文本文件进行预处理,以得到预处理后的日志文件和文本文件;
(3)客户端根据可调度队列信息中每个调度队列名及其对应的服务端名,并使用长短期记忆网络LSTM对对应的调度队列在不同时间的队列运行参数进行处理,以得到该调度队列将被作业运行所占用的预测CPU核数;
(4)客户端根据步骤(3)得到的每个调度队列将被作业运行所占用的预测CPU核数在可调度队列信息中查询对应的服务端名和调度队列名,并将该服务端名和调度队列名、以及该预测CPU核数分别作为键值对保存在可调度队列信息中,同时对服务端计算能力信息中所有的服务端CPU处理频率Frequency进行归一化处理,并使用归一化后的服务端CPU处理频率对该服务端计算能力信息进行更新;
(5)客户端根据待调度作业信息对可调度队列信息中的调度队列名进行筛选,以得到筛选后的调度队列集合;
(6)客户端根据待调度作业信息中作业运行所需CPU核数cpucount计算步骤(5)筛选后的调度队列集合中每个调度队列的负载占用率,
(7)客户端设置计数器i=1;
(8)客户端判断i是否大于调度作业信息中作业名称对应的作业总数,如果是则转入步骤(12),否则进入步骤(9);
(9)客户端从步骤(6)得到的多个调度队列的负载占用率中选择最小负载占用率对应的调度队列,将待调度作业信息中作业名称对应的第i项作业调度到最小负载占用率对应的调度队列执行;
(10)客户端在第i项作业被对应的调度队列执行完毕后,在可调度队列信息中更新该调度队列将被作业运行所占用的预测CPU核数;
(11)客户端设置i=i+1,并返回步骤(8)。
(12)客户端将已经被执行完毕的每一个作业的编号、该作业在待调度作业信息中对应的作业名称、该作业在待调度作业信息中对应的作业全局ID、执行该作业的服务端在可调度队列信息中对应的调度队列所属服务端名、以及调度队列名保存。
优选地,调度队列在不同时间的队列运行参数包括:调度队列为作业运行提供的最大/最小CPU核数Max/MinCPUcount、以及当前调度队列被作业运行所占用的CPU核数CpuCount。
优选地,待调度作业信息包括作业全局IDJobgid、作业名称Username、作业运行所需软件名Applicationname、作业运行所需软件版本Applicationversion、预估作业运行完成时间Walltime、以及作业运行所需CPU核数cpucount。
优选地,可调度队列信息包括调度队列所属服务端名Servername、调度队列名Queuename、调度队列名中每个调度队列为作业运行提供的最大/最小CPU核数Max/MinCPUcount、调度队列名中每个调度队列对作业运行的最大时间限制Walltimelimit、调度队列名中每个调度队列所包含的软件名Applicationnames、以及调度队列名中每个调度队列所包含的软件版本Applicationversions。
优选地,服务端计算能力信息包括服务端名Servername、服务端可提供的调度队列名Queuenames、以及服务端CPU处理频率Frequency。
优选地,步骤(3)具体为,客户端使用CPU获取每个调度队列及其对应的服务端名,并将其发送到GPU,并由GPU使用LSTM算法对该调度队列在不同时间的队列运行参数进行处理,以得到最终的预测结果。
优选地,步骤(5)具体为,在待调度作业信息中查找同时满足调度队列所包含的软件名Applicationnames与待调度作业信息中该作业运行所需软件名Applicationname符合、调度队列所包含的软件版本Applicationversions与待调度作业信息中的作业运行所需软件版本Applicationversion符合、调度队列为作业运行提供的最大/最小CPU核数Max/MinCPUcount包含有待调度作业信息中的该作业运行所需CPU核数cpucount、以及调度队列对作业运行的最大时间限制Walltimelimit包含待调度作业信息中的该预估作业运行完成时间Walltime的调度任务,这些同时满足上述4个条件的调度队列一起构成筛选后的调度队列集合。
优选地,步骤(6)具体为,首先是根据筛选后的调度队列集合中的每个调度队列,在步骤(4)得到的可调度队列信息中查询该调度队列将被作业运行所占用的预测CPU核数,然后根据该调度队列在可调度队列信息中查询对应的服务端,然后用作业运行所需CPU核数cpucount除以该预测CPU核数后,再乘以步骤(4)更新后的服务端计算能力信息中与查询到的服务端对应的服务器CPU处理频率,从而得到该调度队列的负载占用率。
按照本发明的另一方面,提供了一种基于CPU核数预测实现并行任务调度的系统,包括:
第一模块,其设置于客户端,用于获取来自用户的日志文件和文本文件,其中日志文件中记载有多个服务端、每个服务端可提供的多个调度队列、每个调度队列在不同时间的队列运行参数,文本文件中记载了待调度作业信息、可调度队列信息、以及服务端计算能力信息;
第二模块,其设置于客户端,用于对获得的日志文件和文本文件进行预处理,以得到预处理后的日志文件和文本文件;
第三模块,其设置于客户端,用于根据可调度队列信息中每个调度队列名及其对应的服务端名,并使用长短期记忆网络LSTM对对应的调度队列在不同时间的队列运行参数进行处理,以得到该调度队列将被作业运行所占用的预测CPU核数;
第四模块,其设置于客户端,用于根据第三模块得到的每个调度队列将被作业运行所占用的预测CPU核数在可调度队列信息中查询对应的服务端名和调度队列名,并将该服务端名和调度队列名、以及该预测CPU核数分别作为键值对保存在可调度队列信息中,同时对服务端计算能力信息中所有的服务端CPU处理频率Frequency进行归一化处理,并使用归一化后的服务端CPU处理频率对该服务端计算能力信息进行更新;
第五模块,其设置于客户端,用于根据待调度作业信息对可调度队列信息中的调度队列名进行筛选,以得到筛选后的调度队列集合;
第六模块,其设置于客户端,用于根据待调度作业信息中作业运行所需CPU核数cpucount计算第五模块筛选后的调度队列集合中每个调度队列的负载占用率,
第七模块,其设置于客户端,用于设置计数器i=1;
第八模块,其设置于客户端,用于判断i是否大于调度作业信息中作业名称对应的作业总数,如果是则转入第十二模块,否则进入第九模块;
第九模块,其设置于客户端,用于从第六模块得到的多个调度队列的负载占用率中选择最小负载占用率对应的调度队列,将待调度作业信息中作业名称对应的第i项作业调度到最小负载占用率对应的调度队列执行;
第十模块,其设置于客户端,用于在第i项作业被对应的调度队列执行完毕后,在可调度队列信息中更新该调度队列将被作业运行所占用的预测CPU核数;
第十一模块,其设置于客户端,用于设置i=i+1,并返回第八模块。
第十二模块,其设置于客户端,用于将已经被执行完毕的每一个作业的编号、该作业在待调度作业信息中对应的作业名称、该作业在待调度作业信息中对应的作业全局ID、执行该作业的服务端在可调度队列信息中对应的调度队列所属服务端名、以及调度队列名保存。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
(1)由于本发明采用了步骤(1)到步骤(12),其使用LSTM算法高效预测CPU核数,并基于负载占用率最小的优先调度策略执行作业的有效调度,因此能够解决现有超级计算中心所使用的调度策略由于任务调度的不充分性,导致作业的排队时间过长、调度效率低下的技术问题;
(2)由于本发明采用了步骤(3)和(4),其能够有效预测调度队列的CPU核数,并将需要大规模处理的作业准确调度到CPU核数大的调度队列执行,因此能够解决现有超级计算中心所使用的调度策略中,需要大规模处理器进行计算的作业无法被高效调度到对应的调度队列中进行处理,从而增加了大量时间开销的技术问题;
(3)由于本发明采用了步骤(6)到(12),其使用了负载占用率优先的调度策略,很好地维护了服务端之间的负载均衡,因此能够解决现有超级计算中心由于未使用有效的负载均衡策略导致严重的负载失衡状况,并形成较为严重的调度性能瓶颈的技术问题。
附图说明
图1是本发明基于CPU核数预测实现并行任务调度的方法的流程图;
图2是本发明与现有任务调度方法在负载平衡效率方面的性能比较。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的基本思路在于,采用基于队列负载占用率最低的任务优先进行调度的计算方法做出最终的任务到处理器的映射决策,该计算方法将解析的所有数据分别进行存储,对每一个待调度的作业计算作业到队列上的负载占用率,得到的若干个二元组数据进行排序,获取负载占用率最小的数据执行优先调度,将它调度到对应的队列上之后周期性的更新资源信息,以确保剩下的作业调度时每一个队列的资源数据确定性。通过了上述方案的执行,实现了更高的性能和更好的负载均衡效果,降低了开销。
如图1所示,本发明提供了一种基于CPU核数预测实现并行任务调度的方法,包括以下步骤:
(1)客户端获取来自用户的日志文件和文本文件,其中日志文件中记载有多个服务端、每个服务端可提供的多个调度队列、每个调度队列在不同时间的队列运行参数,文本文件中记载了待调度作业(Job)信息、可调度队列信息、以及服务端计算能力信息;
具体而言,调度队列在不同时间的队列运行参数包括:调度队列为作业运行提供的最大/最小CPU核数(Max/MinCPUcount)、以及当前调度队列被作业运行所占用的CPU核数(CpuCount),如下表1所示:
Figure BDA0002320835840000071
表1
待调度作业信息包括作业全局ID(Jobgid)、作业名称(Username)、作业运行所需软件名(Applicationname)、作业运行所需软件版本(Applicationversion)、预估作业运行完成时间(Walltime)、以及作业运行所需CPU核数(cpucount),如下表2所示:
Figure BDA0002320835840000081
表2
可调度队列信息包括调度队列所属服务端名(Servername)、调度队列名(Queuename)、调度队列名中每个调度队列为作业运行提供的最大/最小CPU核数(Max/MinCPUcount)、调度队列名中每个调度队列对作业运行的最大时间限制(Walltimelimit)、调度队列名中每个调度队列所包含的软件名(Applicationnames)、以及调度队列名中每个调度队列所包含的软件版本(Applicationversions),如下表3所示:
Figure BDA0002320835840000082
表3
服务端计算能力信息包括服务端名(Servername)、服务端可提供的调度队列名(Queuenames)、以及服务端CPU处理频率(Frequency),如下表4所示:
服务端名1 调度队列名1 CPU处理频率1
服务端名2 调度队列名2 CPU处理频率2
…… …… ……
服务端名n 调度队列名n CPU处理频率n
表4
(2)客户端对获得的日志文件和文本文件进行预处理,以得到预处理后的日志文件和文本文件;
具体而言,对日志文件和文本文件进行预处理,就是去除这些文件中包含的多余符号(比如括号、双引号、冒号等)。
(3)客户端根据可调度队列信息中每个调度队列名及其对应的服务端名,并使用长短期记忆网络(Long Short-Term Memory,简称LSTM)算法对对应的调度队列在不同时间的队列运行参数进行处理,以得到该调度队列将被作业运行所占用的预测CPU核数;
具体而言,本步骤中,客户端使用CPU获取每个调度队列及其对应的服务端名,并将其发送到GPU,后续是由GPU使用LSTM算法对该调度队列在不同时间的队列运行参数进行处理,以得到最终的预测结果。
本步骤实质上搭建了基于CPU和GPU的异构环境,其卸载计算任务到GPU上,大大提升了异构环境的计算能力,充分利用了异构资源,极大提升了本发明的总体计算效率和性能。
(4)客户端根据步骤(3)得到的每个调度队列将被作业运行所占用的预测CPU核数在可调度队列信息中查询对应的服务端名和调度队列名,并将该服务端名和调度队列名、以及该预测CPU核数分别作为键值对保存在可调度队列信息中,同时对服务端计算能力信息中所有的服务端CPU处理频率(Frequency)进行归一化处理,并使用归一化后的服务端CPU处理频率对该服务端计算能力信息进行更新;
(5)客户端根据待调度作业信息对可调度队列信息中的调度队列名进行筛选,以得到筛选后的调度队列集合;
具体而言,是在待调度作业信息中查找同时满足调度队列所包含的软件名(Applicationnames)与待调度作业信息中该作业运行所需软件名(Applicationname)符合、调度队列所包含的软件版本(Applicationversions)与待调度作业信息中的作业运行所需软件版本(Applicationversion)符合、调度队列为作业运行提供的最大/最小CPU核数(Max/MinCPUcount)包含有待调度作业信息中的该作业运行所需CPU核数(cpucount)、以及调度队列对作业运行的最大时间限制(Walltimelimit)包含待调度作业信息中的该预估作业运行完成时间(Walltime)的调度任务,这些同时满足上述4个条件的调度队列一起构成筛选后的调度队列集合。
(6)客户端根据待调度作业信息中作业运行所需CPU核数(cpucount)计算步骤(5)筛选后的调度队列集合中每个调度队列的负载占用率,
具体而言,本步骤首先是根据筛选后的调度队列集合中的每个调度队列,在步骤(4)得到的可调度队列信息中查询该调度队列将被作业运行所占用的预测CPU核数,然后根据该调度队列在可调度队列信息中查询对应的服务端,然后用作业运行所需CPU核数(cpucount)除以该预测CPU核数后,再乘以步骤(4)更新后的服务端计算能力信息中与查询到的服务端对应的服务器CPU处理频率,从而得到该调度队列的负载占用率。
(7)客户端设置计数器i=1;
(8)客户端判断i是否大于调度作业信息中作业名称对应的作业总数,如果是则转入步骤(12),否则进入步骤(9);
(9)客户端从步骤(6)得到的多个调度队列的负载占用率中选择最小负载占用率对应的调度队列,将待调度作业信息中作业名称对应的第i项作业调度到最小负载占用率对应的调度队列执行;
(10)客户端在第i项作业被对应的调度队列执行完毕后,在可调度队列信息中更新该调度队列将被作业运行所占用的预测CPU核数(即用原值减去该调度队列执行该第i项作业所使用的CPU核数);
(11)客户端设置i=i+1,并返回步骤(8)。
(12)客户端将已经被执行完毕的每一个作业的编号(其是按照被调度队列执行的先后顺序排列)、该作业在待调度作业信息中对应的作业名称、该作业在待调度作业信息中对应的作业全局ID、执行该作业的服务端在可调度队列信息中对应的调度队列所属服务端名、以及调度队列名保存。
性能测试
以下通过计算负载平衡效率将本发明和现有调度算法(min-min算法)进行比较。
如图2所示,横坐标表示作业提交的时间,纵坐标表示负载平衡效率,负载平衡效率的计算为调度队列的平均负载与调度队列的最重负载之比,比值越趋于1说明负载越均衡。可以从图2中明显的观察出,本发明的方法(在图中示为AWFS算法,其全称是应用感知的负载优先调度算法,即Application Workload First Scheduling)的负载平衡效率优于现有的min-min算法,这是由于本发明的方法总是将待调度的任务优先调度给资源最多的调度队列,用以保证整体计算的负载均衡。
通常对于任务调度问题,其作为NP难问题,一般采用启发式方法进行处理,而本发明为了保证更好的处理器负载均衡,采用基于队列负载占用率最低的任务优先进行调度的计算方法做出最终的任务到处理器的映射决策,该计算方法将解析的所有数据分别进行存储,对每一个待调度的作业计算作业到队列上的负载占用率,得到的若干个二元组数据进行排序,获取负载占用率最小的数据执行优先调度,将它调度到对应的队列上之后周期性的更新资源信息,以确保剩下的作业调度时每一个队列的资源数据确定性。通过了上述方案的执行,实现了更高的性能和更好的负载均衡效果,降低了开销。
本发明涉及一种基于CPU核数预测实现并行任务调度的方法,对于负载均衡性能的维护和开销的降低起到了关键的作用,也提高了整体的并行效率。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于CPU核数预测实现并行任务调度的方法,其特征在于,包括以下步骤:
(1)客户端获取来自用户的日志文件和文本文件,其中日志文件中记载有多个服务端、每个服务端可提供的多个调度队列、每个调度队列在不同时间的队列运行参数,文本文件中记载了待调度作业信息、可调度队列信息、以及服务端计算能力信息;
(2)客户端对获得的日志文件和文本文件进行预处理,以得到预处理后的日志文件和文本文件;
(3)客户端根据可调度队列信息中每个调度队列名及其对应的服务端名,并使用长短期记忆网络LSTM对对应的调度队列在不同时间的队列运行参数进行处理,以得到该调度队列将被作业运行所占用的预测CPU核数;
(4)客户端根据步骤(3)得到的每个调度队列将被作业运行所占用的预测CPU核数在可调度队列信息中查询对应的服务端名和调度队列名,并将该服务端名和调度队列名、以及该预测CPU核数分别作为键值对保存在可调度队列信息中,同时对服务端计算能力信息中所有的服务端CPU处理频率Frequency进行归一化处理,并使用归一化后的服务端CPU处理频率对该服务端计算能力信息进行更新;
(5)客户端根据待调度作业信息对可调度队列信息中的调度队列名进行筛选,以得到筛选后的调度队列集合;
(6)客户端根据待调度作业信息中作业运行所需CPU核数cpucount计算步骤(5)筛选后的调度队列集合中每个调度队列的负载占用率,
(7)客户端设置计数器i=1;
(8)客户端判断i是否大于调度作业信息中作业名称对应的作业总数,如果是则转入步骤(12),否则进入步骤(9);
(9)客户端从步骤(6)得到的多个调度队列的负载占用率中选择最小负载占用率对应的调度队列,将待调度作业信息中作业名称对应的第i项作业调度到最小负载占用率对应的调度队列执行;
(10)客户端在第i项作业被对应的调度队列执行完毕后,在可调度队列信息中更新该调度队列将被作业运行所占用的预测CPU核数;
(11)客户端设置i=i+1,并返回步骤(8)。
(12)客户端将已经被执行完毕的每一个作业的编号、该作业在待调度作业信息中对应的作业名称、该作业在待调度作业信息中对应的作业全局ID、执行该作业的服务端在可调度队列信息中对应的调度队列所属服务端名、以及调度队列名保存。
2.根据权利要求1所述的方法,其特征在于,调度队列在不同时间的队列运行参数包括:调度队列为作业运行提供的最大/最小CPU核数Max/MinCPUcount、以及当前调度队列被作业运行所占用的CPU核数CpuCount。
3.根据权利要求2所述的方法,其特征在于,待调度作业信息包括作业全局IDJobgid、作业名称Username、作业运行所需软件名Applicationname、作业运行所需软件版本Applicationversion、预估作业运行完成时间Walltime、以及作业运行所需CPU核数cpucount。
4.根据权利要求3所述的方法,其特征在于,可调度队列信息包括调度队列所属服务端名Servername、调度队列名Queuename、调度队列名中每个调度队列为作业运行提供的最大/最小CPU核数Max/MinCPUcount、调度队列名中每个调度队列对作业运行的最大时间限制Walltimelimit、调度队列名中每个调度队列所包含的软件名Applicationnames、以及调度队列名中每个调度队列所包含的软件版本Applicationversions。
5.根据权利要求4所述的方法,其特征在于,服务端计算能力信息包括服务端名Servername、服务端可提供的调度队列名Queuenames、以及服务端CPU处理频率Frequency。
6.根据权利要求5所述的方法,其特征在于,步骤(3)具体为,客户端使用CPU获取每个调度队列及其对应的服务端名,并将其发送到GPU,并由GPU使用LSTM算法对该调度队列在不同时间的队列运行参数进行处理,以得到最终的预测结果。
7.根据权利要求5所述的方法,其特征在于,步骤(5)具体为,在待调度作业信息中查找同时满足调度队列所包含的软件名Applicationnames与待调度作业信息中该作业运行所需软件名Applicationname符合、调度队列所包含的软件版本Applicationversions与待调度作业信息中的作业运行所需软件版本Applicationversion符合、调度队列为作业运行提供的最大/最小CPU核数Max/MinCPUcount包含有待调度作业信息中的该作业运行所需CPU核数cpucount、以及调度队列对作业运行的最大时间限制Walltimelimit包含待调度作业信息中的该预估作业运行完成时间Walltime的调度任务,这些同时满足上述4个条件的调度队列一起构成筛选后的调度队列集合。
8.根据权利要求7所述的方法,其特征在于,步骤(6)具体为,首先是根据筛选后的调度队列集合中的每个调度队列,在步骤(4)得到的可调度队列信息中查询该调度队列将被作业运行所占用的预测CPU核数,然后根据该调度队列在可调度队列信息中查询对应的服务端,然后用作业运行所需CPU核数cpucount除以该预测CPU核数后,再乘以步骤(4)更新后的服务端计算能力信息中与查询到的服务端对应的服务器CPU处理频率,从而得到该调度队列的负载占用率。
9.一种基于CPU核数预测实现并行任务调度的系统,其特征在于,包括:
第一模块,其设置于客户端,用于获取来自用户的日志文件和文本文件,其中日志文件中记载有多个服务端、每个服务端可提供的多个调度队列、每个调度队列在不同时间的队列运行参数,文本文件中记载了待调度作业信息、可调度队列信息、以及服务端计算能力信息;
第二模块,其设置于客户端,用于对获得的日志文件和文本文件进行预处理,以得到预处理后的日志文件和文本文件;
第三模块,其设置于客户端,用于根据可调度队列信息中每个调度队列名及其对应的服务端名,并使用长短期记忆网络LSTM对对应的调度队列在不同时间的队列运行参数进行处理,以得到该调度队列将被作业运行所占用的预测CPU核数;
第四模块,其设置于客户端,用于根据第三模块得到的每个调度队列将被作业运行所占用的预测CPU核数在可调度队列信息中查询对应的服务端名和调度队列名,并将该服务端名和调度队列名、以及该预测CPU核数分别作为键值对保存在可调度队列信息中,同时对服务端计算能力信息中所有的服务端CPU处理频率Frequency进行归一化处理,并使用归一化后的服务端CPU处理频率对该服务端计算能力信息进行更新;
第五模块,其设置于客户端,用于根据待调度作业信息对可调度队列信息中的调度队列名进行筛选,以得到筛选后的调度队列集合;
第六模块,其设置于客户端,用于根据待调度作业信息中作业运行所需CPU核数cpucount计算第五模块筛选后的调度队列集合中每个调度队列的负载占用率,
第七模块,其设置于客户端,用于设置计数器i=1;
第八模块,其设置于客户端,用于判断i是否大于调度作业信息中作业名称对应的作业总数,如果是则转入第十二模块,否则进入第九模块;
第九模块,其设置于客户端,用于从第六模块得到的多个调度队列的负载占用率中选择最小负载占用率对应的调度队列,将待调度作业信息中作业名称对应的第i项作业调度到最小负载占用率对应的调度队列执行;
第十模块,其设置于客户端,用于在第i项作业被对应的调度队列执行完毕后,在可调度队列信息中更新该调度队列将被作业运行所占用的预测CPU核数;
第十一模块,其设置于客户端,用于设置i=i+1,并返回第八模块。
第十二模块,其设置于客户端,用于将已经被执行完毕的每一个作业的编号、该作业在待调度作业信息中对应的作业名称、该作业在待调度作业信息中对应的作业全局ID、执行该作业的服务端在可调度队列信息中对应的调度队列所属服务端名、以及调度队列名保存。
CN201911296949.XA 2019-12-17 2019-12-17 一种基于cpu核数预测实现并行任务调度的方法和系统 Active CN110955527B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911296949.XA CN110955527B (zh) 2019-12-17 2019-12-17 一种基于cpu核数预测实现并行任务调度的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911296949.XA CN110955527B (zh) 2019-12-17 2019-12-17 一种基于cpu核数预测实现并行任务调度的方法和系统

Publications (2)

Publication Number Publication Date
CN110955527A true CN110955527A (zh) 2020-04-03
CN110955527B CN110955527B (zh) 2022-05-10

Family

ID=69981997

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911296949.XA Active CN110955527B (zh) 2019-12-17 2019-12-17 一种基于cpu核数预测实现并行任务调度的方法和系统

Country Status (1)

Country Link
CN (1) CN110955527B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114116068A (zh) * 2021-12-02 2022-03-01 重庆紫光华山智安科技有限公司 服务启动优化方法、装置、电子设备和可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965689A (zh) * 2015-05-22 2015-10-07 浪潮电子信息产业股份有限公司 一种cpu/gpu的混合并行计算方法及装置
CN110096349A (zh) * 2019-04-10 2019-08-06 山东科技大学 一种基于集群节点负载状态预测的作业调度方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965689A (zh) * 2015-05-22 2015-10-07 浪潮电子信息产业股份有限公司 一种cpu/gpu的混合并行计算方法及装置
CN110096349A (zh) * 2019-04-10 2019-08-06 山东科技大学 一种基于集群节点负载状态预测的作业调度方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GLADYS UTRERA ET AL.: "Scheduling parallel jobs on multicore clusters using CPU oversubscription", 《THE JOURNAL OF SUPERCOMPUTING》 *
刘粟等: "Storm 环境下基于拓扑结构的任务调度策略", 《计算机应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114116068A (zh) * 2021-12-02 2022-03-01 重庆紫光华山智安科技有限公司 服务启动优化方法、装置、电子设备和可读存储介质
CN114116068B (zh) * 2021-12-02 2023-06-02 重庆紫光华山智安科技有限公司 服务启动优化方法、装置、电子设备和可读存储介质

Also Published As

Publication number Publication date
CN110955527B (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
US10474504B2 (en) Distributed node intra-group task scheduling method and system
US8843929B1 (en) Scheduling in computer clusters
CN107357652B (zh) 一种基于分段排序及标准差调整因子的云计算任务调度方法
CN108829512B (zh) 一种云中心硬件加速计算力的分配方法、系统和云中心
JP2008234651A (ja) 複数のインスタンスアプリケーションに対し負荷分散装置を動作させるシステムおよび方法
Ullah et al. Task classification and scheduling based on K-means clustering for edge computing
Ivanisenko et al. Survey of major load balancing algorithms in distributed system
Gabi et al. Systematic review on existing load balancing techniques in cloud computing
US8813087B2 (en) Managing a workload in a cluster of computing systems with multi-type operational resources
El Khoury et al. Energy-aware placement and scheduling of network traffic flows with deadlines on virtual network functions
CN111431961A (zh) 一种云数据中心的节能任务分配方法
CN113641417B (zh) 一种基于分支定界法的车辆安全任务卸载方法
CN111338807B (zh) 一种面向边缘人工智能应用的QoE感知的服务增强方法
CN112231085A (zh) 一种协同环境下基于时间感知的移动终端任务迁移方法
CN110955527B (zh) 一种基于cpu核数预测实现并行任务调度的方法和系统
CN116467076A (zh) 一种基于集群可用资源的多集群调度方法及系统
Yagoubi et al. Load balancing strategy in grid environment
CN117608840A (zh) 一种智能监控系统资源综合管理的任务处理方法及系统
CN117579701A (zh) 一种移动边缘网络计算卸载方法及系统
CN111061553A (zh) 一种用于超级计算中心的并行任务调度方法和系统
CN110427217B (zh) 基于内容的发布订阅系统匹配算法轻量级并行方法和系统
Mehta Designing an effective dynamic load balancing algorithm considering imperative design issues in distributed systems
CN115639762A (zh) 机器人智能调度方法、装置、计算设备及计算机存储介质
Mohammadpour et al. A self-training algorithm for load balancing in cluster computing
Zhao et al. Work in progress: power-aware scheduling strategy for multiple dags in the heterogeneous cloud

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Li Kenli

Inventor after: Liu Chubo

Inventor after: Cao Ronghui

Inventor after: Xiao Xiong

Inventor after: Tang Zhuo

Inventor after: Jiang Bingting

Inventor after: Li Wen

Inventor after: Zhu Jintao

Inventor after: Tang Xiaoyong

Inventor after: Yang Wangdong

Inventor after: Zhou Xu

Inventor before: Tang Zhuo

Inventor before: Liu Chubo

Inventor before: Cao Ronghui

Inventor before: Xiao Xiong

Inventor before: Li Kenli

Inventor before: Jiang Bingting

Inventor before: Li Wen

Inventor before: Zhu Jintao

Inventor before: Tang Xiaoyong

Inventor before: Yang Wangdong

Inventor before: Zhou Xu

GR01 Patent grant
GR01 Patent grant