CN114638167A - 基于多智能体强化学习的高性能集群资源公平分配方法 - Google Patents
基于多智能体强化学习的高性能集群资源公平分配方法 Download PDFInfo
- Publication number
- CN114638167A CN114638167A CN202210290007.6A CN202210290007A CN114638167A CN 114638167 A CN114638167 A CN 114638167A CN 202210290007 A CN202210290007 A CN 202210290007A CN 114638167 A CN114638167 A CN 114638167A
- Authority
- CN
- China
- Prior art keywords
- cluster
- job
- state
- user
- normalized
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000002787 reinforcement Effects 0.000 title claims abstract description 22
- 238000009826 distribution Methods 0.000 title claims abstract description 15
- 238000011156 evaluation Methods 0.000 claims abstract description 41
- 230000009471 action Effects 0.000 claims abstract description 39
- 238000013528 artificial neural network Methods 0.000 claims abstract description 33
- 238000004088 simulation Methods 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims abstract description 30
- 238000012549 training Methods 0.000 claims abstract description 23
- 239000003795 chemical substances by application Substances 0.000 claims description 76
- 239000011159 matrix material Substances 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 9
- 239000013598 vector Substances 0.000 claims description 9
- 238000013468 resource allocation Methods 0.000 claims description 5
- 238000013515 script Methods 0.000 claims description 5
- 230000007613 environmental effect Effects 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 3
- 238000004140 cleaning Methods 0.000 claims description 2
- 235000003642 hunger Nutrition 0.000 claims description 2
- 230000037351 starvation Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 12
- 210000002569 neuron Anatomy 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000008570 general process Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009916 joint effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- GMVPRGQOIOIIMI-DWKJAMRDSA-N prostaglandin E1 Chemical compound CCCCC[C@H](O)\C=C\[C@H]1[C@H](O)CC(=O)[C@@H]1CCCCCCC(O)=O GMVPRGQOIOIIMI-DWKJAMRDSA-N 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于多智能体强化学习的高性能集群资源公平分配方法及系统,其方法包括:S1:建立高性能集群资源调度的马尔科夫博弈模型;S2:采集真实集群数据,利用仿真环境进行作业回放,构建高性能集群模拟环境;S3:在高性能集群模拟环境中对策略与状态价值评估网络进行训练;其中,策略与状态价值评估网络包括:动作策略神经网络NNactor和值评估神经网络NNcritic,并分别构建对应的损失函数进行用于参数更新。本发明提供的方法,保证了在不影响集群资源使用率的情况下,能够维护用户间的资源使用公平。
Description
技术领域
本发明涉及高性能集群的资源调度领域,具体涉及一种基于多智能体强化学习的高性能集群资源公平分配方法及系统。
背景技术
近年来,深度学习在大量不同的领域中取得了巨大的进步与发展,例如计算机视觉、图像识别、自然语言处理、推荐算法。为了提高训练结果的准确性,人们使用的模型的规模不断上升,同时训练的数据量也在不停地扩大。例如,谷歌在2018年提出的BERT模型,预训练的过程使用了16个TPU v3芯片,耗时3天才完成了预训练的任务。在8个Tesla P100GPU上训练一个Resnet-50模型花费了29小时。伴随着训练计算量的不断扩展,为了保证训练时间在一个可接受的范围内,就不得不使用分布式训练的方法。
高性能计算集群拥有高性能,计算性价比高,方便扩展,适合并行任务的特点,所以适合用于进行大规模分布式训练、物理模拟、并行计算任务。现有的一些大型互联网公司,都建立了自己的GPU或TPU集群并且有着相应的任务调度与集群管理方式,例如谷歌使用Borg管理其内部集群,腾讯、百度使用YARN进行内部集群管理。用户通过提交计算作业至集群,利用集群进行快速计算,同时并不会影响用户进行其他的工作。随着这种高效计算方式的兴起,资源的高效管理成为一个热点问题。云计算集群与高性能集群不可避免的涉及到了资源共享的问题。每个用户都希望自己提交的作业能够被高效运行,但是集群资源的有限性注定了无法使每个用户的作业都被立即执行。因此,该问题就可以被建模成为一个多智能体调度问题:每个用户都希望能够优化自己的作业的等待时间,但是资源量是额定的,因此用户间就形成了资源竞争关系。
当前的HPC任务调度系统实际上被建模成为了一个多作业调度的过程。如slurm调度系统,通过在管理节点建立作业队列排序进行多任务的优先级设定。但是这类建模并没有考虑到用户之间的资源竞争关系,而是利用作业的特性进行优先级的计算。这容易导致资源倾向于某些用户的情况产生,即这些用户提交的作业更适合在当前集群环境下运行。但是高性能集群实际上是个多用户共享的资源,每位用户的使用的体验都应该被考虑到。因此,如何在尽可能的保证资源的高效使用的情况下,维护用户间的资源使用公平性,成为一个亟待解决的问题。
发明内容
为了解决上述技术问题,本发明提供一种基于多智能体强化学习的高性能集群资源公平分配方法及系统。
本发明技术解决方案为:一种基于多智能体强化学习的高性能集群资源公平分配方法,包括:
步骤S1:建立高性能集群资源调度的马尔科夫博弈模型,包括:定义作业特征状态、集群资源使用状态、单一用户状态以及单一智能体的环境状态;
步骤S2:采集真实集群数据,利用仿真环境进行作业回放,构建高性能集群模拟环境;
步骤S3:在所述高性能集群模拟环境中对策略与状态价值评估网络进行训练;其中,所述策略与状态价值评估网络包括:动作策略神经网络NNactor和值评估神经网络NNcritic,并分别构建对应的损失函数进行用于参数更新。
本发明与现有技术相比,具有以下优点:
1、本发明公开了一种基于多智能体强化学习的高性能集群资源公平分配方法,将高性能集群资源调度过程建模为多智能体调度的过程,使用用户衰减系数灵活控制不同用户的优先级,保证了在不影响集群资源使用率的情况下,能够维护用户间的资源使用公平。
2、本发明使用强化学习的方式,有效提高了模型的泛化能力,相较于一般的人工进行大量环境参数的通过试错进行调整的过程,对于策略的调整过程更加灵活快速,降低大量人工维护的时间成本。
3、本发明利用神经网络根据作业特征进行作业优先级计算,相较于人工审定优先级函数的情况,能够更快速地针对不同作业分布的情况拟合合理的优先级函数。
附图说明
图1为本发明实施例中一种基于多智能体强化学习的高性能集群资源公平分配方法的流程图;
图2为本发明实施例中NNactor的网络结构示意图;
图3为本发明实施例中多智能体强化学习原理示意图;
图4为本发明实施例中NNcritic的网络结构示意图;
图5为本发明实施例中策略与状态价值评估网络的训练流程示意图;
图6为本发明实施例中一种基于多智能体强化学习的高性能集群资源公平分配系统的结构框图。
具体实施方式
本发明提供了一种基于多智能体强化学习的高性能集群资源公平分配方法,该方法通过建立马尔科夫博弈模型,通过在slurm仿真环境中进行多次调度学习,实现对于作业优先级计算函数以及用户作业优先度衰减系数计算函数的拟合,最终得到从高性能作业资源分配环境状态到单一智能体动作再到联合动作的映射规则。依据映射规则,不同的用户提交的作业会根据其历史资源使用情况进行优先度衰减,以保证近段时间资源使用多的用户的优先度较低,资源使用少的用户的优先度较高,从而维护用户资源使用的公平性。
本发明实施例中以多智能体深度强化学习为基础工作原理。其中多智能体调度是调度问题中一个分类。多智能体调度是指资源分配程序随着时间的推移,将资源分配给多个智能体请求的任务当中。每个智能体的目标都是优化其自身策略函数。多智能体深度强化学习是解决多智能体调度问题的一类方法,通过拟合策略函数进行多智能体调度的优化。
为了使本发明的目的、技术方案及优点更加清楚,以下通过具体实施,并结合附图,对本发明进一步详细说明。
实施例一
如图1所示,本发明实施例提供的一种基于多智能体强化学习的高性能集群资源公平分配方法,包括下述步骤:
步骤S1:建立高性能集群资源调度的马尔科夫博弈模型,包括:定义作业特征状态、集群资源使用状态、单一用户状态以及单一智能体的环境状态;
步骤S2:采集真实集群数据,利用仿真环境进行作业回放,构建高性能集群模拟环境;
步骤S3:在高性能集群模拟环境中对策略与状态价值评估网络进行训练;其中,策略与状态价值评估网络包括:动作策略神经网络NNactor和值评估神经网络NNcritic,并分别构建对应的损失函数进行用于参数更新。
在本发明中,以用户为单位划分智能体。用户历史资源使用情况、集群状态、用户作业特征共同组成了环境状态。用户作业优先级设定为智能体动作,最终集群作业优先级设置为联合动作。本发明将用户作业等待时间比方差与平均值设置为对应的奖励函数,通过在高性能集群仿真环境中不断学习,实现对智能体策略的调优。
在一个实施例中,上述步骤S1:建立高性能集群资源调度的马尔科夫博弈模型,包括:定义作业特征状态、集群资源使用状态、单一用户状态以及单一智能体的环境状态,具体包括:
步骤S11:定义作业特征状态:jobfeature={normalized_wait_time,normalized_run_time,normalized_request_procs,normalized_request_memory,normalized_user_id,normalized_group_id,normalized_executable_id,can_schedule_now};
其中,normalized_wait_time表示作业已等待时间与预设的作业饿死等待时间之比,normalized_run_time表示作业已运行时间与最长作业运行时间之比,normalized_request_procss表示作业申请核数与集群总核数之比,normalized_request_memory表示作业申请内存量与集群总内存量之比,normalized_user_id表示作业的uesr_id与集群用户数量之比,normalized_group_id表示作业的group_id与集群用户组数量之比,normalized_executable_id表示作业脚本id与总脚本数量之比,can_schedule_now表示当前集群空闲资源是否满足该作业的运行需要;
步骤S12:定义集群资源使用状态:node_utility={normalized_node_utility1,normalized_node_utility2,...,normalized_node_utilityM};
其中,M表示总节点数,normalized_node_utilityi表示节点i的已用核数与该节点总核数之比;
步骤S13:定义单一用户状态:userstate={normalized_user_node_utility1,normalized_user_node_utility2,...,normalized_user_node_utilityM};
其中,normalized_user_node_utilityi表示该用户在i节点上占用的核数与该节点总核数之比;
步骤S14:定义单一智能体的环境状态,包括:作业与集群状态矩阵Mjob_and_cluster和用户信息矩阵Muser:
其中,Mjob_and_cluster用于当前作业优先度评判,Muser用于用户历史资源使用情况跟踪。
在本发明实施例中,通过建立马尔科夫博弈模型,将一个用户对应一个智能体。单一用户提交作业上限设置为J个,如果用户提交的作业超出J个,则不计入优先级计算,需等待队列内作业完成。若当前用户的作业数量不足J个,则用零向量对其进行填充,并利用Mask=[m1,m2,…,mJ]向量对其过滤。其中如果jobfeaturei不为零,则对应的mi等于1;否则mi等于0。
在本实施例中,J设置为32,即每个用户可进行优先级队列的作业数为32个。设置[j1,j2,…,jJ]表示单个智能体中的各个作业优先度,将优先度进行归一化,将其作为每个作业在当前调度周期被执行的概率,根据该概率进行作业选择,即单个智能体动作。将所有被选择作业优先度进行合并,生成集群作业优先级队列[j1,j2,…,jU],即联合动作,其中U为多智能体个数。集群作业优先级队列以优先级大小进行排序。
在一个实施例中,上述步骤步骤S2:采集真实集群数据,利用仿真环境进行作业回放,构建高性能集群模拟环境,具体包括:
步骤S21:采集真实的负载文件,统计负载文件当中最大作业所需资源量,进行集群环境初始化,集群环境由多个节点构成,每个节点的状态由一个五元组{节点状态值,历史作业列表,空闲核数,节点id,运行作业列表}表示;
其中,节点状态值包括:空闲状态、部分资源运行作业状态和所有资源运行作业状态;
历史作业列表包括:已完成的作业id;
空闲核数表示可以进行分配的逻辑CPU资源;
运行作业列表包括:当前正在该节点运行的作业的id集合;
本发明实施例通过统计标准负载文件(SWF)文件中的作业最大所需资源进行模拟集群的生成。集群环境由许多计算节点组成,每个计算节点拥有的资源一定。在本发明实施例当中,集群节点数由所需最多节点作业决定,每个节点核数由所需单节点最高核数作业决定。如数据中心不包含单节点核数,则由(总核数/节点数)决定。
在每个节点中,都会维护节点状态值、历史作业列表、空闲核数、节点id、运行作业列表五个属性。其中节点状态值可以为空闲状态(free)、部分资源运行作业状态(mix)、所有资源运行作业状态(busy)三种状态。历史作业列表中保存已完成的作业id,每当作业完成之后,其id会保存在所有运行该作业的节点的历史作业列表中。空闲核数表示可以进行分配的逻辑CPU资源。各个节点的节点id唯一,用于进行节点的查询。运行作业列表则是当前正在该节点运行的作业的id集合。
步骤S22:根据负载文件,有序地提取每个作业信息,并根据阈值,进行数据清清洗,保留存在资源竞争的作业,构建样本集;随机挑选样本集中样本放入负载中回放,构建高性能集群模拟环境。
负载生成使用标准负载文件(SWF)进行生成。在标准负载文件中,每条作业信息将会包含如下真实信息:作业id,提交时间,等待时间,运行时间,分配核数,平均核时,使用内存数,申请核数,申请内存量,申请运行时间,用户id,群组id,脚本编号,队列编号,分区编号,前置作业id,前置作业完成后所需等待时间。
本发明实施例有序地提取每条信息得到对应的作业特性之后放入负载中。之后,通过设置的样本长度对所有有效样本进行评估。由于真实作业数据中并不是一直存在资源竞争的情况,即是否能够优化用户公平性与策略无关。为了能够更好地进行训练,需要对这类数据进行清洗。在本发明实施例中,通过对于每条样本进行评估来解决这个问题。首先使用简单的先来先服务调度方法完成对待测样本的评估。在完成调度之后,通过统计作业等待时间比进行对于资源竞争程度的评估,对于小于预设阈值的作业进行过滤,保留存在资源竞争的作业,得到样本集。
在本实施例中,样本长度设置为128,即所包含作业个数为128,作业等待时间比阈值设置为0.1。
对于所有的样本,由于是有序的,只需要保存其第一个作业id即可。在后续操作中,每次需要进行轨迹生成时,通过从样本集中随机挑选样本,完成轨迹的生成。
在一个实施例中,上述步骤S3:在高性能集群模拟环境中对策略与状态价值评估网络进行训练;其中,策略与状态价值评估网络包括:动作策略神经网络NNactor和值评估神经网络NNcritic,并分别构建对应的损失函数进行用于参数更新,具体包括:
步骤S31:获取当前高性能集群模拟环境的集群状态向量s:
s=[jobfeature1,jobfeature2,…,jobfeatureq,userstate1,userstate2,…,userstateN]
其中,q代表当前队列中作业数量,N代表当前集群环境中用户数量;
步骤S32:通过对于集群状态向量s进行转换,得到每个智能体所对应的作业与集群状态矩阵Mjob_and_cluster和用户信息矩阵Muse;
步骤S33:利用智能体隐状态记录用户历史资源使用信息,将每个智能体的隐状态和Mjob_and_cluster输入NNactor,生成对应的智能体的优先度折扣因子,同时根据Mjob_and_cluster生成作业优先级,从而生成单个智能体动作auser与选择当前动作auser概率的log值log_p(auser);将所有智能体的动作合并,生成联合动作ajoint作为前集群作业队列中所有作业优先度,并按照ajoint进行资源分配,使动作生效;
如图2所示NNactor的网络结构示意图,NNactor主要由两部分组成。NNactor的第一部分用以利用作业特性完成作业优先级的计算,该部分利用MLP进行优先级函数的拟合,第一部分的网络结构由三层神经元组成,分别为输入层、隐藏层、输出层。其中输入层神经元个数为32,隐藏层神经元个数为16,输出层神经元个数为1,每层神经元使用relu作为激活函数。NNactor的第二部分计算用户优先度折扣因子,该部分利用RNN网络进行用户历史资源使用情况的记录,该RNN网络中包含16个神经元。通过计算用户优先度折扣因子,对于在某段时间资源使用量多的用户,适当降低其所有作业的优先度,而对于资源使用较少的用户,则应该提高其作业的优先度。
步骤S34:根据公式(1),计算各个智能体的奖励值ruser:
ruser=-α(wpi-mean(wp))-wpi-βvar(wp) (1)
公式(1)的第一项(wpi-mean(wp))表示当前用户与其他用户的用户等待时间比相比。为了维护用户之间的资源等待时间比公平,给予高于用户平均等待时间比的用户负奖励,给予低于用户平均等待时间比的用户正奖励,从而影响智能体策略去竞争更多的资源用于优化或者保证自身的作业等待时间比;
公式(1)的第二项wpi使用当前用户等待时间比进行计算。通过奖励指导策略尽可能的降低用户等待时间比,以维护集群资源使用效率;
公式(1)的第三项var(wp)是由所有用户等待时间比带来的惩罚项。通过该项惩罚用户等待时间比分布不均匀的情况,即计算方差,用于保证用户之间的作业等待时间比公平;
如图3所示,在马尔科夫博弈过程当中,每个智能体都会获取自己对所处环境的观察获得的状态值si,每个智能体只能决定自己做出的动作ai而不能决定其他智能体的动作。所有智能体的动作合并,生成联合动作ajoint,并反馈给环境进行交互,从而改变环境的状态s。智能体根据自己的策略选择动作,环境依据智能体选择的动作进行状态转移,同时根据状态的变化反馈给所有智能体对应的奖励值ruser。多智能体强化学习的目的是通过不停地与环境进行交互试错,是所有的智能体不断地调整他们的策略,从而保证所有的智能体都能获得的奖励反馈能够达到纳什均衡的状态,即在其他智能体不改变策略的情况下,一个智能体改变策略只能让其得到更坏的结果。
步骤S35:将用户信息矩阵Muser输入NNcritic网络中,计算每个智能体将会获得当前动作的价值vuser;
如图4所示NNcritic的网络结构示意图,与NNactor同样由两部分组成,但与NNactor不同点在于其最后最后加入了一层神经层,神经元个数为1。
在初始状态下,对神经网络NNactor与NNcritic中的各个神经元进行随机初始化。对于每个智能体,以长度为16的零向量初始其初始隐藏状态,即用于该用户历史资源使用情况。
步骤S36:令ti={s1,s2,…,sN,a1,a2,…,aN,log_p1,log_p2,…,log_pN,v1,v2,…,vN},并存入MAPPO_buffer中;当当前样本完成调度,则生成一条轨迹{t1,t2,…,tT};
步骤S37:当MAPPO_buffer中轨迹数量到达阈值后,进行网络参数的更新:
分别将NNactor和NNcritic拟合动作策略函数与值评估函数表示为μ(s|θμ)与Q(s|θQ),其中,θμ与θQ分别表示动作策略网络的参数与值评估网络的参数,s为当前集群状态向量,参数包括神经元之间的权重与编制;
利用GAE公式进行优势函数的估计,GAE为多个价值估计δ的加权平均,如公式(2)所示:
其中,t表示当前时刻,δt=ruser+γv(st+1)-v(st),γ为折扣因子,λ表示未来每一步的价值估计所占比重,v(st)表示对于t时刻状态的价值评估;t+1代表下一时刻;l表示时间间隔;
在本发明实施例中,λ设置为0.95,γ设置为0.99;
同时,进行reward-to-go的计算,如公式(3)所示,用于值评估神经网络NNcritic的参数更新:
R(t)=ruser+γR(t+1) (3)
定义动作策略网络与值评估网络的损失函数Lpolicy和Lvalue,如公式(4)~(5)所示:
其中,n代表该轨迹长度;
通过动作策略网络与值评估网络的损失函数,利用梯度反向传播对动作策略网络与值评估网络参数进行更新,参数变为θμ′与θQ′;
每当策略函数发生变化之后,由于其在不同情况做出的决策发生一定的变化,会需要重新采样。但是一次采样会需要大量的时间。为了缩短模型训练的耗时,使用重要性采样的方法进行加速,即通过计算策略相似度,即KL散度,来判定是否需要重新进行轨迹生成。
步骤S38:当完成了一次网络参数更新之后,通过计算策略相似度,如公式(6)所示,即KL散度来判定是否需要重新进行轨迹生成;
当KL散度小于预设的阈值,通过引入概率的放缩进行训练,即动作策略神经网络的损失函数变为如公式(7)所示:
步骤S39:重复步骤S32~S38,直至达到预定的epoch值。
理论上,上述学习过程可以无限进行,但是为了更好地学习效果,本发明实施例设置最大epoch数为1000。
如图5所示,展示了策略与状态价值评估网络的训练流程示意图。
本发明公开了一种基于多智能体强化学习的高性能集群资源公平分配方法,将高性能集群资源调度过程建模为多智能体调度的过程,使用用户衰减系数灵活控制不同用户的优先级,保证了在不影响集群资源使用率的情况下,能够维护用户间的资源使用公平。本发明使用强化学习的方式,有效提高了模型的泛化能力,相较于一般的人工进行大量环境参数的通过试错进行调整的过程,对于策略的调整过程更加灵活快速,降低大量人工维护的时间成本。本发明利用神经网络根据作业特征进行作业优先级计算,相较于人工审定优先级函数的情况,能够更快速地针对不同作业分布的情况拟合合理的优先级函数。
实施例二
如图6所示,本发明实施例提供了一种基于多智能体强化学习的高性能集群资源公平分配系统,包括下述模块:
建立马尔科夫博弈模型模块41,用于:建立高性能集群资源调度的马尔科夫博弈模型,包括:定义作业特征状态、集群资源使用状态、单一用户状态以及单一智能体的环境状态;
构建高性能集群模拟环境模块42,用于采集真实集群数据,利用仿真环境进行作业回放,构建高性能集群模拟环境;
训练策略与状态价值评估网络模块43,用于在高性能集群模拟环境中对策略与状态价值评估网络进行训练;其中,策略与状态价值评估网络包括:动作策略神经网络NNactor和值评估神经网络NNcritic,并分别构建对应的损失函数进行用于参数更新。
提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
Claims (5)
1.一种基于多智能体强化学习的高性能集群资源公平分配方法,其特征在于,包括:
步骤S1:建立高性能集群资源调度的马尔科夫博弈模型,包括:定义作业特征状态、集群资源使用状态、单一用户状态以及单一智能体的环境状态;
步骤S2:采集真实集群数据,利用仿真环境进行作业回放,构建高性能集群模拟环境;
步骤S3:在所述高性能集群模拟环境中对策略与状态价值评估网络进行训练;其中,所述策略与状态价值评估网络包括:动作策略神经网络NNactor和值评估神经网络NNcritic,并分别构建对应的损失函数进行用于参数更新。
2.根据权利要求1所述的基于多智能体强化学习的高性能集群资源公平分配方法,其特征在于,所述步骤S1:建立高性能集群资源调度的马尔科夫博弈模型,包括:定义作业特征状态、集群资源使用状态、单一用户状态以及单一智能体的环境状态,具体包括:
步骤S11:定义作业特征状态:jobfeature={normalized_wait_time,normalized_run_time,normalized_request_procs,normalized_request_memory,normalized_user_id,normalized_group_id,normalized_executable_id,can_schedule_now};
其中,normalized_wait_time表示作业已等待时间与预设的作业饿死等待时间之比,normalized_run_time表示作业已运行时间与最长作业运行时间之比,normalized_request_procss表示作业申请核数与集群总核数之比,normalized_request_memory表示作业申请内存量与集群总内存量之比,normalized_user_id表示作业的uesr_id与集群用户数量之比,normalized_group_id表示作业的group_id与集群用户组数量之比,normalized_executable_id表示作业脚本id与总脚本数量之比,can_schedule_now表示当前集群空闲资源是否满足该作业的运行需要;
步骤S12:定义集群资源使用状态:node_utility={normalized_node_utility1,normalized_node_utility2,...,normalized_node_utilityM};
其中,M表示总节点数,normalized_node_utilityi表示节点i的已用核数与该节点总核数之比;
步骤S13:定义单一用户状态:userstate={normalized_user_node_utility1,normalized_user_node_utility2,...,normalized_user_node_utilityM};
其中,normalized_user_node_utilityi表示该用户在i节点上占用的核数与该节点总核数之比;
步骤S14:定义单一智能体的环境状态,包括:作业与集群状态矩阵Mjob_and_cluster和用户信息矩阵Muser:
3.根据权利要求1所述的基于多智能体强化学习的高性能集群资源公平分配方法,其特征在于,所述步骤S2:采集真实集群数据,利用仿真环境进行作业回放,构建高性能集群模拟环境,具体包括:
步骤S21:采集真实的负载文件,统计所述负载文件当中最大作业所需资源量,进行集群环境初始化,所述集群环境由多个节点构成,每个所述节点的状态由一个五元组{节点状态值,历史作业列表,空闲核数,节点id,运行作业列表}表示;
其中,节点状态值包括:空闲状态、部分资源运行作业状态和所有资源运行作业状态;
历史作业列表包括:已完成的作业id;
空闲核数表示可以进行分配的逻辑CPU资源;
运行作业列表包括:当前正在该节点运行的作业的id集合;
步骤S22:根据所述负载文件,有序地提取每个作业信息,并根据阈值,进行数据清清洗,保留存在资源竞争的作业,构建样本集;随机挑选所述样本集中样本放入负载中回放,构建高性能集群模拟环境。
4.根据权利要求1所述的基于多智能体强化学习的高性能集群资源公平分配方法,其特征在于,所述步骤S3:在所述高性能集群模拟环境中对策略与状态价值评估网络进行训练;其中,所述策略与状态价值评估网络包括:动作策略神经网络NNactor和值评估神经网络NNcritic,并分别构建对应的损失函数进行用于参数更新,具体包括:
步骤S31:获取当前所述高性能集群模拟环境的集群状态向量s:
s=[jobfeature1,jobfeature2,…,jobfeatureq,userstate1,userstate2,…,userstateN]
其中,q代表当前队列中作业数量,N代表当前集群环境中用户数量;
步骤S32:通过对于所述集群状态向量s进行转换,得到每个智能体所对应的作业与集群状态矩阵Mjob_and_cluster和用户信息矩阵Muser;
步骤S33:利用智能体隐状态记录用户历史资源使用信息,将每个智能体的隐状态和Mjob_and_cluster输入NNactor,生成对应的智能体的优先度折扣因子,同时根据Mjob_and_cluster生成作业优先级,从而生成单个智能体动作auser与选择当前动作auser概率的log值log_p(auser);将所有智能体的动作合并,生成联合动作ajoint作为前集群作业队列中所有作业优先度,并按照ajoint进行资源分配,使动作生效;
步骤S34:根据公式(1),计算各个智能体的奖励值ruser:
ruser=-α(wpi-mean(wp))-wpi-βvar(wp) (1)
步骤S35:将所述用户信息矩阵Muser输入NNcritic网络中,计算每个智能体将会获得当前动作的价值vuser;
步骤S36:令ti={s1,s2,…,sN,a1,a2,…,aN,log_p1,log_p2,…,log_pN,v1,v2,…,vN},并存入MAPPO_buffer中;当当前样本完成调度,则生成一条轨迹{t1,t2,…,tT};
步骤S37:当MAPPO_buffer中轨迹数量到达阈值后,进行网络参数的更新:
分别将NNactor和NNcritic拟合动作策略函数与值评估函数表示为μ(s|θμ)与Q(s|θQ),其中,θμ与θQ分别表示所述动作策略网络的参数与所述值评估网络的参数,s所述为当前集群状态向量;
利用GAE公式进行优势函数的估计,GAE为多个价值估计δ的加权平均,如公式(2)所示:
其中,t表示当前时刻,δt=ruser+γv(st+1)-v(st),γ为折扣因子,λ表示未来每一步的价值估计所占比重,v(st)表示对于t时刻状态的价值评估;t+1代表下一时刻;l表示时间间隔;
同时,进行reward-to-go的计算,如公式(3)所示,用于所述值评估神经网络NNcritic的参数更新:
R(t)=ruser+γR(t+1) (3)
定义所述动作策略网络与所述值评估网络的损失函数Lpolicy和Lvalue,如公式(4)~(5)所示:
其中,n代表该轨迹长度;
通过所述动作策略网络与所述值评估网络的损失函数,利用梯度反向传播对所述动作策略网络与所述值评估网络参数进行更新,参数变为θμ′与θQ′;
步骤S38:当完成了一次网络参数更新之后,通过计算策略相似度,如公式(6)所示,即KL散度来判定是否需要重新进行轨迹生成;
当KL散度小于预设的阈值,通过引入概率的放缩进行训练,即动作策略神经网络的损失函数变为如公式(7)所示:
步骤S39:重复步骤S32~S38,直至达到预定的epoch值。
5.一种基于多智能体强化学习的高性能集群资源公平分配系统,其特征在于,包括下述模块:
建立马尔科夫博弈模型模块,用于:建立高性能集群资源调度的马尔科夫博弈模型,包括:定义作业特征状态、集群资源使用状态、单一用户状态以及单一智能体的环境状态;
构建高性能集群模拟环境模块,用于采集真实集群数据,利用仿真环境进行作业回放,构建高性能集群模拟环境;
训练策略与状态价值评估网络模块,用于在所述高性能集群模拟环境中对策略与状态价值评估网络进行训练;其中,所述策略与状态价值评估网络包括:动作策略神经网络NNactor和值评估神经网络NNcritic,并分别构建对应的损失函数进行用于参数更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210290007.6A CN114638167B (zh) | 2022-03-22 | 基于多智能体强化学习的高性能集群资源公平分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210290007.6A CN114638167B (zh) | 2022-03-22 | 基于多智能体强化学习的高性能集群资源公平分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114638167A true CN114638167A (zh) | 2022-06-17 |
CN114638167B CN114638167B (zh) | 2024-06-25 |
Family
ID=
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237581A (zh) * | 2022-09-21 | 2022-10-25 | 之江实验室 | 一种面向异构算力的多策略智能调度方法和装置 |
CN116523030A (zh) * | 2023-06-30 | 2023-08-01 | 支付宝(杭州)信息技术有限公司 | 动态调度模型训练资源的方法及装置 |
CN117252111A (zh) * | 2023-11-15 | 2023-12-19 | 中国电建集团贵阳勘测设计研究院有限公司 | 一种堤坝隐患和险情区域主动监测方法 |
CN117522176A (zh) * | 2024-01-08 | 2024-02-06 | 中国电子科技集团公司第十五研究所 | 基于多智能体系统的多项目资源调度评估系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237581A (zh) * | 2022-09-21 | 2022-10-25 | 之江实验室 | 一种面向异构算力的多策略智能调度方法和装置 |
CN115237581B (zh) * | 2022-09-21 | 2022-12-27 | 之江实验室 | 一种面向异构算力的多策略智能调度方法和装置 |
CN116523030A (zh) * | 2023-06-30 | 2023-08-01 | 支付宝(杭州)信息技术有限公司 | 动态调度模型训练资源的方法及装置 |
CN116523030B (zh) * | 2023-06-30 | 2023-09-15 | 支付宝(杭州)信息技术有限公司 | 动态调度模型训练资源的方法及装置 |
CN117252111A (zh) * | 2023-11-15 | 2023-12-19 | 中国电建集团贵阳勘测设计研究院有限公司 | 一种堤坝隐患和险情区域主动监测方法 |
CN117252111B (zh) * | 2023-11-15 | 2024-02-23 | 中国电建集团贵阳勘测设计研究院有限公司 | 一种堤坝隐患和险情区域主动监测方法 |
CN117522176A (zh) * | 2024-01-08 | 2024-02-06 | 中国电子科技集团公司第十五研究所 | 基于多智能体系统的多项目资源调度评估系统 |
CN117522176B (zh) * | 2024-01-08 | 2024-04-12 | 中国电子科技集团公司第十五研究所 | 基于多智能体系统的多项目资源调度评估系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Guo et al. | Cloud resource scheduling with deep reinforcement learning and imitation learning | |
CN110737529B (zh) | 一种面向短时多变大数据作业集群调度自适应性配置方法 | |
CN111858009B (zh) | 基于迁移和强化学习的移动边缘计算系统任务调度方法 | |
CN115037749B (zh) | 一种大规模微服务智能多资源协同调度方法及系统 | |
Du et al. | Learning resource allocation and pricing for cloud profit maximization | |
CN110321222B (zh) | 基于决策树预测的数据并行作业资源分配方法 | |
CN111274036B (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN108268638A (zh) | 一种基于Spark框架的生成对抗网络分布式实现方法 | |
Yu et al. | Faasrank: Learning to schedule functions in serverless platforms | |
CN112685138B (zh) | 云环境下基于多种群混合智能优化的多工作流调度方法 | |
CN105744006A (zh) | 一种面向多类型服务的粒子群优化用户请求调度方法 | |
CN112416585A (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN114546608B (zh) | 一种基于边缘计算的任务调度方法 | |
CN116263681A (zh) | 移动边缘计算任务卸载方法、装置、设备及存储介质 | |
CN115168027A (zh) | 一种基于深度强化学习的算力资源度量方法 | |
CN115562832A (zh) | 一种基于深度强化学习的多资源服务功能链调度方法 | |
CN115543626A (zh) | 采用异构计算资源负载均衡调度的电力缺陷图像仿真方法 | |
CN117349026A (zh) | 一种用于aigc模型训练的分布式算力调度系统 | |
CN117436485A (zh) | 基于权衡时延和精度的多退出点的端-边-云协同系统及方法 | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
CN116501483A (zh) | 基于多智能体强化学习的车辆边缘计算任务调度方法 | |
CN114638167B (zh) | 基于多智能体强化学习的高性能集群资源公平分配方法 | |
CN116566891A (zh) | 时延敏感的服务功能链并行路由优化方法、装置及介质 | |
CN114638167A (zh) | 基于多智能体强化学习的高性能集群资源公平分配方法 | |
CN115865914A (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 |