一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种自适应的和规则制导的分布式调度方法与流程

2021-11-03 11:25:00 来源:中国专利 TAG:


1.本发明涉及集群管理和高性能计算领域,具体而言,涉及一种自适应的和规则制导的分布式调度方法。


背景技术:

2.在高性能计算领域,调度系统是一种基础软件。调度系统的核心功能是管理集群计算资源,按照一定算法决定各个排队作业的启动顺序,并为每个作业分配运行节点,同时监控各个已启动作业的运行状况,在必要时进行动态负载均衡,或者重启运行失败的作业。
3.调度系统的关键技术是调度策略,即如何决定各个排队作业投入运行的顺序,以及如何为每个作业分配最佳的运行节点。调度策略对集群的吞吐率、资源利用率和功耗都有重要影响。在不同应用场景下,所需要的调度策略也不相同,例如,在科学计算领域,需要在尽可能短的时间内完成所有作业;在商用领域,需要以尽可能低的功耗完成所有作业。近年来,随着集群规模的扩大,调度系统在资源管理方面的便利性也变得越来越重要,人们希望在系统初始配置时减少手工操作,也希望在系统缩扩容时能够自动适应。
4.slurm是世界上60%以上的超算中心都在使用的集群管理和作业调度系统。slurm具有三个核心功能,一是,它为用户分配独占或非独占的资源(计算节点)以供用户运行自己的计算任务;二是,它提供了一套在所分配节点上启动、运行、监控用户作业的框架;三是,它提供了一套排队作业对资源争用的仲裁机制。slurm还可以通过插件形式扩展自身功能,例如记账、资源预留、回填调度、资源配额、多因素作业优先级计算等等。
5.slurm的整体架构如图1所示。slurm有一个中央管理器(slurmctld),用于监控资源和作业。还存在一个备份的管理器,以便在中央管理器失效时接管它的工作。在每个计算节点上运行有一个slurmd守护进程,它等待中央管理器给它分配作业,运行分配给它的作业,并监控作业的状态,然后等待更多的作业。用户使用一组工具程序与slurm交互,这组工具程序包括:用于提交作业的srun程序,用于终止作业的scancel程序,用来报告系统状态的sinfo程序,用来报告作业状态的squeue程序,等等。
6.slurm的缺点主要有两个:
7.首先,slurm通过配置文件的方式配置所有计算节点,当计算节点数量较多时,需要进行大量的手工配置工作,此外,当集群中增减节点时,也需要手工调整配置文件。
8.其次,slurm使用基于希尔伯特曲线调度或胖树网络拓扑的最佳拟合算法来优化并行计算机上任务分配的局部性,调度策略较为单一,不能适应复杂应用场景下多样化的调度需求。


技术实现要素:

9.本发明提供一种自适应的和规则制导的分布式调度方法,用以克服上述现有技术中存在的至少一个问题。
10.为达到上述目的,本发明提供了一种自适应的和规则制导的分布式调度方法,其
包括以下步骤:
11.在集群中设置一调度服务器;
12.统计集群内的计算节点,为每一计算节点分别设置一与之对应的资源代理;
13.启动调度服务器,初始化生成一个资源表和一个作业表,此时资源表和作业表均为空;
14.资源代理分别收集对应计算节点的配置信息和性能指标数据,形成资源注册请求并将其发送给调度服务器,其中,资源注册请求包括初始资源注册请求和定期资源注册请求;
15.调度服务器接收资源代理发送来的资源注册请求,判断该资源注册请求是否为首次注册,如果为是,则将该资源注册请求对应的资源加入资源表中并启动一对应该资源的定时器,如果为否,则利用该资源注册请求中的信息对资源进行更新并重置对应的定时器;
16.资源代理退出时,构建一个资源注销请求并将其发送至调度服务器;
17.调度服务器接收到资源注销请求后,将对应的资源从资源表中删除;
18.调度服务器定期检查每一资源的定时器,将已到期的资源从资源表中删除;
19.调度服务器对调度规则进行增加、删除、修改和查看、对调度规则进行解释、生成调度决策并将调度决策发送至对应的资源代理以及接收资源代理发送的作业状态报告并更新作业表;
20.资源代理接收调度决策、根据调度决策对作业进行启动、暂停、恢复及停止操作以及监控对应计算节点上各个作业的进度状态和资源占用状态并生成作业状态报告。
21.在本发明的一实施例中,调度规则包括访问控制规则、亲和规则、作业优先级计算规则以及节点优先级计算规则,其中:
22.访问控制规则为一个二元组{job

filter,node

filter},其中,job

filter为利用作业的属性构造的一个逻辑表达式,用来匹配作业;node

filter为利用节点的属性构造的另一个逻辑表达式,用来匹配节点,访问控制规则的含义如下:满足job

filter条件的作业不允许使用满足node

filter条件的节点,
23.亲和规则为一个二元组{job

filter1,job

filter2,affinity},job

filter1和job

filter2均为利用作业属性构造的逻辑表达式,affinity表示亲和性,取值为“必须调度到同一节点”或“必须调度到不同节点”,亲和规则的含义如下:满足job

filter1条件的作业,必须和满足job

filter2条件的作业调度到相同的计算节点上,或:满足job

filter1条件的作业,必须和满足job

filter2条件的作业调度到不同的计算节点上,
24.作业优先级计算规则为一个六元组{job

filter,cpu

weight,memory

weight,disk

weight,bandwidth

weight,queue

time

weight,run

time

weight},其中,job

filter为利用作业属性构造的一个逻辑表达式,cpu

weight表示作业对cpu资源需求量的权重,memory

weight表示作业对内存资源需求量的权重,disk

weight表示作业对磁盘容量需求量的权重,bandwidth

weight表示作业对网络带宽资源需求量的权重,queue

time

weight表示作业等待时间的权重,run

time

weight表示作业预计运行时间的权重,作业优先级计算规则的含义如下:对于每个满足job

filter条件的作业,按照指定的权重计算它的动态优先级,
25.节点优先级计算规则为一个九元组{node

filter,cpu

weight,memory

weight,
disk

weight,cpu

load

weight,memory

load

weight,disk

load

weight,fail

count

weight,fail

rate

weight},其中,node

filter为利用节点属性构造的一个逻辑表达式,cpu

weight表示节点配置的cpu个数的权重,memory

weight表示节点配置的内存容量的权重,disk

weight表示节点配置的磁盘容量的权重,cpu

load

weight表示节点当前cpu占用率的权重,memory

load

weight表示节点当前内存占用率的权重,disk

load

weight表示节点当前磁盘占用率的权重,fail

count

weight表示节点上运行失败的作业总数的权重,fail

rate

weight表示节点上作业运行失败比率的权重,节点优先级计算规则的含义如下:对于每个满足node

filter条件的节点,按照指定的权重计算它的动态优先级。
26.在本发明的一实施例中,调度服务器按照以下方式执行调度规则:
27.按照作业优先级计算规则,计算各个排队作业的动态优先级,选出动态优先级最高的作业进行资源分配,
28.对于任一作业,根据访问控制规则,排除不允许作业使用的节点,
29.对于任一作业,根据亲和规则,排除不适宜作业使用的节点,
30.按照节点优先级计算规则,计算各个备选的计算节点的动态优先级,选出动态优先级最高的多个计算节点并对其分配作业。
31.本发明提供的自适应的和规则制导的分布式调度方法具有以下有益技术效果:
32.通过动态注册资源,调度服务器能够自动发现集群内所有的计算节点,不需要任何手工配置,大大减少了系统部署时所需的配置工作量,也保证了系统对集群缩扩容的自适应性。
33.通过引入多种可配置的调度规则,可在不修改调度系统源码、不开发任何插件的情况下随时调整系统的调度策略,甚至可以实现多种调度策略同时共存,大大提高了系统对不同应用场景的适应性。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
35.图1为slurm的整体架构示意图;
36.图2为调度服务器和资源代理的示意图。
具体实施方式
37.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.图2为调度服务器和资源代理的示意图,参照图2所示,本发明提供的自适应的和规则制导的分布式调度方法,其包括以下步骤:
39.在集群中设置一调度服务器;
40.统计集群内的计算节点,为每一计算节点分别设置一与之对应的资源代理;
41.启动调度服务器,初始化生成一个资源表和一个作业表,此时资源表和作业表均为空;
42.资源代理分别收集对应计算节点的配置信息和性能指标数据,形成资源注册请求并将其发送给调度服务器,其中,资源注册请求包括初始资源注册请求和定期资源注册请求;
43.调度服务器接收资源代理发送来的资源注册请求,判断该资源注册请求是否为首次注册,如果为是,则将该资源注册请求对应的资源加入资源表中并启动一对应该资源的定时器,如果为否,则利用该资源注册请求中的信息对资源进行更新并重置对应的定时器;
44.资源代理退出时,构建一个资源注销请求并将其发送至调度服务器;
45.调度服务器接收到资源注销请求后,将对应的资源从资源表中删除;
46.调度服务器定期检查每一资源的定时器,将已到期的资源从资源表中删除;
47.调度服务器对调度规则进行增加、删除、修改和查看、对调度规则进行解释、生成调度决策并将调度决策发送至对应的资源代理以及接收资源代理发送的作业状态报告并更新作业表;
48.资源代理接收调度决策、根据调度决策对作业进行启动、暂停、恢复及停止操作以及监控对应计算节点上各个作业的进度状态和资源占用状态并生成作业状态报告。
49.在本实施例中,调度规则包括访问控制规则、亲和规则、作业优先级计算规则以及节点优先级计算规则,其中:
50.访问控制规则为一个二元组{job

filter,node

filter},其中,job

filter为利用作业的属性构造的一个逻辑表达式,用来匹配作业;node

filter为利用节点的属性构造的另一个逻辑表达式,用来匹配节点,访问控制规则的含义如下:满足job

filter条件的作业不允许使用满足node

filter条件的节点,
51.亲和规则为一个二元组{job

filter1,job

filter2,affinity},job

filter1和job

filter2均为利用作业属性构造的逻辑表达式,affinity表示亲和性,取值为“必须调度到同一节点”或“必须调度到不同节点”,亲和规则的含义如下:满足job

filter1条件的作业,必须和满足job

filter2条件的作业调度到相同的计算节点上,或:满足job

filter1条件的作业,必须和满足job

filter2条件的作业调度到不同的计算节点上,
52.作业优先级计算规则为一个六元组{job

filter,cpu

weight,memory

weight,disk

weight,bandwidth

weight,queue

time

weight,run

time

weight},其中,job

filter为利用作业属性构造的一个逻辑表达式,cpu

weight表示作业对cpu资源需求量的权重,memory

weight表示作业对内存资源需求量的权重,disk

weight表示作业对磁盘容量需求量的权重,bandwidth

weight表示作业对网络带宽资源需求量的权重,queue

time

weight表示作业等待时间的权重,run

time

weight表示作业预计运行时间的权重,作业优先级计算规则的含义如下:对于每个满足job

filter条件的作业,按照指定的权重计算它的动态优先级,
53.节点优先级计算规则为一个九元组{node

filter,cpu

weight,memory

weight,disk

weight,cpu

load

weight,memory

load

weight,disk

load

weight,fail

count

weight,fail

rate

weight},其中,node

filter为利用节点属性构造的一个逻辑表达式,
cpu

weight表示节点配置的cpu个数的权重,memory

weight表示节点配置的内存容量的权重,disk

weight表示节点配置的磁盘容量的权重,cpu

load

weight表示节点当前cpu占用率的权重,memory

load

weight表示节点当前内存占用率的权重,disk

load

weight表示节点当前磁盘占用率的权重,fail

count

weight表示节点上运行失败的作业总数的权重,fail

rate

weight表示节点上作业运行失败比率的权重,节点优先级计算规则的含义如下:对于每个满足node

filter条件的节点,按照指定的权重计算它的动态优先级。
54.在本实施例中,调度服务器按照以下方式执行调度规则:
55.按照作业优先级计算规则,计算各个排队作业的动态优先级,选出动态优先级最高的作业进行资源分配,
56.对于任一作业,根据访问控制规则,排除不允许作业使用的节点,
57.对于任一作业,根据亲和规则,排除不适宜作业使用的节点,
58.按照节点优先级计算规则,计算各个备选的计算节点的动态优先级,选出动态优先级最高的多个计算节点并对其分配作业。
59.本发明中,动态注册资源是通过资源动态注册协议实现,资源动态注册协议例如可以通过多播技术(multicast)实现,也可以采用http协议或消息队列等技术实现。
60.本发明提供的自适应的和规则制导的分布式调度方法具有以下有益技术效果:
61.通过动态注册资源,调度服务器能够自动发现集群内所有的计算节点,不需要任何手工配置,大大减少了系统部署时所需的配置工作量,也保证了系统对集群缩扩容的自适应性。
62.通过引入多种可配置的调度规则,可在不修改调度系统源码、不开发任何插件的情况下随时调整系统的调度策略,甚至可以实现多种调度策略同时共存,大大提高了系统对不同应用场景的适应性。
63.本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
64.本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
65.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献