没有合适的资源?快使用搜索试试~ 我知道了~
基于强化学习的HPC集群调度框架研究及应用
软件影响8(2021)100077原始软件出版物DRAS-CQSim:一个基于强化学习的HPC集群调度框架范玉萍、兰志玲伊利诺伊理工学院,美利坚合众国伊利诺伊州芝加哥A R T I C L E I N F O关键词:强化学习集群调度高性能计算A B标准几十年来,系统管理员一直在努力设计和调整集群调度策略,以提高高性能计算(HPC)系统的性能。然而,日益复杂的HPC系统与高度多样化的工作负载相结合,使得这种手动过程具有挑战性,耗时且容易出错。我们提出了一个基于强化学习的HPC调度框架DRAS CQSim,自动学习最优调度策略。DRAS-CQSim封装了仿真环境、代理、超参数调优选项和不同的强化学习算法,允许系统管理员快速获得自定义的调度策略。代码元数据当前代码版本v1.0用于此代码版本的代码/存储库的永久链接https://github.com/SoftwareImpacts/SIMPAC-2021-34可再生胶囊的永久链接https://codeocean.com/capsule/7855334/tree/v1法律代码许可证MIT使用Git的代码版本控制系统使用Python、Tensorflow、Keras的软件代码语言、工具和服务编译要求、操作环境依赖性任何支持Python的如果可用,链接到开发人员文档/手册http://bluesky.cs.iit.edu/cqsim/documents/Manual.pdf问题支持电子邮件yfan22@hawk.iit.edu软件元数据当前软件版本v1.0此版本可执行文件的永久链接https://github.com/SPEAR-IIT/CQSim/tree/DRAS可再生胶囊的永久链接https://codeocean.com/capsule/7855334/tree/v1法律软件许可证MIT计算平台/操作系统任何支持Python的安装要求依赖Python,Tensorflow,Keras如果可用,请链接到用户手册-如果正式出版,请在参考列表http://bluesky.cs.iit.edu/cqsim/documents/Manual.pdf问题支持电子邮件yfan22@hawk.iit.edu1. 介绍集群调度器是高性能计算中的关键。它决定何时以及哪些用户作业应该分配给可用的系统资源。传统上,调度策略由系统管理员根据基于他们对特定系统和工作负载的经验。 然而,这种手动设计和调优过程变得越来越难以处理日益复杂的HPC系统和高度多样化的应用工作负载。近年来,强化学习本文中的代码(和数据)已由Code Ocean认证为可复制:(https://codeocean.com/)。更多关于生殖器的信息徽章倡议可在https://www.elsevier.com/physical-sciences-and-engineering/computer-science/journals上查阅。∗通讯作者。电子邮件地址:yfan22@hawk.iit.edu(Y. Fan)。https://doi.org/10.1016/j.simpa.2021.100077接收日期:2021年3月31日;接收日期:2021年4月23日;接受日期:2021年4月26日2665-9638/©2021作者。由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表软件影响杂志 首页:www.journals.elsevier.com/software-impactsY. Fan和Z.LAN软件影响8(2021)1000772Fig. 1. DRAS-CQSim概述。已经成功地应用于决策问题的各个领域,例如游戏[1,2],自动驾驶汽车[3,4]和自主机器人[5强化学习(RL)是机器学习的一个领域,它通过与环境的交互自动学习做出决策。受 成 功 的 RL 示 例 的 启 发 , 我 们 提 出 了 一 个 名 为 DRAS ( DeepReinforcement Agent for Scheduling)的开源HPC调度工具包,以自动学习自定义的调度策略[8,9]。带有CQSim模拟器的DRAS将所有必要的组件打包在一起,即,训练环境、代理和RL算法,以训练调度策略模型。目前DRAS包含两种最流行的强化学习算法,深度q学习和策略梯度[10],并且可以轻松切换到其他强化学习或传统调度算法。我们的目标是使系统管理员能够快速获得最佳的调度策略,为他们的特定系统和工作负载环境,并很容易比较不同的调度策略的性能。2. 功能和主要特点DRAS-CQSim,如图所示。1,是一个强化学习EM供电的集群调度框架。DRAS不是在真实系统上执行作业,而是使用名为CQSim [11]的事件驱动调度模拟器来训练代理。CQSim通过从作业日志中读取作业到达事件并根据调度决策和作业运行时信息提前模拟时钟来模拟作业调度环境。CQSim由四个主要组件组成:&队列管理器、系统模块、日志模块和作业调度模块。作业队列管理器维护等待的作业并管理作业生命周期。系统模块模拟实际系统的状态。系统中的每个节点都被表示为一个对象,系统模块跟踪每个节点的可用性信息。日志模块收集完成的作业信息,如作业提交时间、开始时间和结束时间。作业调度模块分别根据从队列管理器、系统模块和日志记录模块检索到的队列状态、系统状态和历史作业信息做出调度决策。作业调度模块提供了一个接口,用于插入定制的调度策略,如FCFS(先来先服务)和SJF(最短作业优先)。我们的DRAS代理实现为基于强化学习的调度策略。我们的主要特点是:• 易于用途:DRAS-CQSim需要安装Python、Tensorflow和Keras。这些先决条件在大多数系统上很容易满足。它提供了运行模拟和训练代理的简洁命令。清单1显示了一个训练DRAS代理的示例。 参数n和j运行DRAS。参数n指定包含模拟系统信息 参数j指定包含作业跟踪的文件。Config文件夹封装了调度策略、模拟系统、神经网络的所有细节,对于大多数用例,不需要DRAS提供了合理的默认值,但用户可以通过两种方式自定义配置:直接修改Config文件夹下的配置文件或在命令中添加可选参数清单1:Train DRAS代理命令示例$ Python cqsim。py −j job-logg. SWF- nn o d e_s t r u ct u r e. swf − − i s_t r a in in g 1• 高可伸缩性:模拟器动态地流入作业跟踪以进行模拟,并将完成的作业流到磁盘。因此,运行模拟的内存需求不会随着作业跟踪的大小线性增加。这允许模拟器使用有限的内存资源运行可扩展的模拟。• 超参数调整:超参数在模型性能中起着至关重要的作用。为了找到最优的超参数,需要尝试各种超参数组合。DRAS不需要修改源代码就可以找到超参数。自定义的超参数可以通过命令参数传递到源代码。 可配置的超参数包括学习率、小批量大小、平均值、平均衰减率和折扣因子。这允许开发人员使用不同的超参数并行启动多个模拟。• 性能比较:模拟的输出在结果文件夹,其中包括作业和系统信息 以评估调度性能。无论调度策略如何,所有模拟都具有相同的输出格式。这样就可以对同一日志上的不同调度策略进行公平的性能比较。• 可扩展性:模块之间相互独立调度策略插件只与作业调度模块通信,与系统的其余部分完全解耦。DRAS采用了两种最流行的强化学习算法,即,策略梯度和深度Q学习。此外,还有几种传统的调度算法,如FCFS,SJF和LJF(最长作业优先),可供选择。通过创建新的调度策略插件并替换当前插件,可以实现新的调度算法。• 丰富的调试工具:我们提供了五个级别的日志记录选项,以记录各种事件到Windows文件夹。最详细的日志记录信息捕获足够详细的信息,开发人员可以快速识别代码中的问题。为了获得最佳性能,开发人员可以将debug_lvl参数设置为1,这将记录最少的信息量以减少I/O需求。3. 影响强化学习是一个非常活跃的研究领域。近年来已经提出了先进的强化学习算法[12然而,并不是所有的强化学习算法都适合我们的HPC调度问题。 一个好的解决方案应该实现良好的调度性能,如低的平均作业等待时间和高的系统利用率,以最小的调度开销。 典型的HPC系统容许10-关键是要评估性能和开销 部署前的新RL调度方法。幸运的是,我们的DRAS设计可以很容易地接受新的RL算法。Y. Fan和Z.LAN软件影响8(2021)1000773基础CQSim调度模拟器已经成功地支持了该领域的许多项目超过十年[8,19CQSim提供了一个统一的平台,以最小的开销来评估各种方法的性能。例如,[8,24]使用CQSim 探索先进的方法,如强化学习和基于计划的方法,以调度HPC作业。高级调度方法使HPC系统能够实现更好的用户级和系统级性能。[19,22,28]利用CQSim探索可能影响HPC作业调度性能的各种因素,例如如作业运行时间估计和系统利用率。通过识别这些因素,系统管理员可以制定新的策略,以尽量减少这些因素的影响。[20,21,23,26]旨在找到处理多个资源的调度策略,即,CPU、突发缓冲区、GPU和电源。CQSim在这些多资源项目中起着至关重要的作用,因为CQSim模拟器提供了一个虚拟的可配置平台,可以在部署到真实系统之前确定最佳调度策略,以调度给定系统上的特定资源。[25,29,30]提出并分析了HPC系统上的新的作业布局算法,以提高作业布局的效率。 由于就业安置问题的规模很大,很难在实际系统中进行测量和实施,CQSim提供了一个简单的平台来评估各种就业安置解决方案的性能。此外,CQSim是一个成熟的社区,拥有许多现有的调度策略,从传统的基于实用程序的策略,优化方法到流行的RL方法。这使得新的和现有的调度方法之间的DRAS不仅可以用于研究目的,更重要的是,训练的RL模型可以直接部署到实际的HPC系统。谢谢对于解耦的调度策略设计,系统管理员可以首先利用历史作业日志在仿真器中对RL Agent进行训练和评估。一旦他们获得满意的性能,他们可以将训练的RL代理转移到真正的HPC系统,并实时调度作业。4. 结论和今后的工作在这项工作中,我们提出了DRAS CQSim, 一 加固 基于学习的高性能计算调度框架,旨在训练基于RL的调度代理,使其性能优于传统的调度策略。总之,DRAS CQSim实现了两种基于RL的调度方法,提供了一个标准的平台来设计和评估基于RL的调度方法,并使不同的调度方法的公平比较。作为进一步的发展,我们计划实现和评估其他RL方法,如A2C,SAC和PPO,以找到最好的RL授权的HPC作业调度方法竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢这项工作得到了美国国家科学基金会资助CNS-1717763,CCF-1618776和美国能源部科学办公室的部分支持,合同DE-AC 02 - 06CH 11357。引用[1] D. Silver,黑胫拟天蛾A.黄角Maddison,A.盖兹湖Sifre,G.Driessche,J. 施里特维泽,I. 安东诺格鲁河谷Panneershelvam,M.Lanctot,S.Dieleman,D.Grewe,J. Nham,N.卡尔希布伦纳岛Sutskever,T. Lillicrap,M. Leach,K. Kavukcuoglu,T. Graepel,D. Hassabis , Mastering the game of go with deep neural networks andtreesearch,Nature(2016)。[2] D.作者:J.西蒙尼扬岛Antonoglou,A. Huang,黄背天蛾A. Guez,T. 休伯特湖贝克,M。Lai,A. Bolton,Y. Chen,T. Lillicrap,F.许湖,澳-地Sifre,G.Driessche , T. Graepel , D. Hassabis , Mastering the game of go withouthumanknowledge,Nature,2017。[3] S. Shalev-Shwartz,S. Shammah,A. Shashua,安全,多智能体,自动驾驶强化学习,2016,arXiv:1610.03295。[4]A.萨拉布湾Abdou,E. Perot,S. Yogamani,自动驾驶的深度强化学习框架,电子成像。[5]W.斯马特湖Pack Kaelbling,移动机器人的有效强化学习, 机器人与自动化[6] J.Kober,J. Peters,机器人强化学习:一项调查,在:学习运动技能:从算法到机器人实验,2014年。[7] T. 约翰宁克,S。Bahl,A.Nair,J. Luo,中国茶条A. 库马尔,M。Loskyll,J.Ojea,E. 索洛乔,S. Levine,机器人控制的剩余强化学习,在:ICRA[8]Y.范,Z。兰,T.蔡尔德斯,P. Allcock,M. Papka,用于HPC调度的深度增强代理,在:IPDPS,2021年。[9]DRAS Github Repository,https://github.com/SPEAR-IIT/CQSim/tree/DRAS。[10] R.萨顿,D。McAllester,S.辛格湾,澳-地Mansour,Policy gradient methods forreinforcement learning with function approximation,NIPS[11] CQSim Github仓库,https://github.com/SPEAR-IIT/CQSim。[12] Volodymyr Mnih,Adrià Puigdomènech Badia,Mehdi Mirza,Alex Graves,Tim-othy P. Lillicrap,Tim Harley,David Silver,Koray Kavukcuoglu,Asynchronousmethods for deep reinforcement learning,2016,arXiv:1602.01783.[13] D. Silver , G. Lever , N. Heess , T. Degris , D. Wierstra , M. Riedmiller ,Deterministic policy gradient algorithms,第31届国际机器学习会议论文集,2014年。[14] Timothy P. Lillicrap,JonathanJ. Hunt,Alexander Pritzel,Nicolas Heess,TomErez,Yuval Tassa,David Silver,Daan Wierstra,Continuous control with deepreinforcement learning,2019,arXiv:1509.02971。[15] John Schulman,Filip Wolski,Prafulla Dhariwal,Alec Radford,Oleg Klimov,近端策略优化算法,2017,arXiv:1707.06347。[16] 放 大 图 片 作 者 : John Schulman , Sergey Levine , Philipp Moritz , Michael I.Jordan , Pieter Abbeel , Trust region policy optimization , 2017 , arXiv :1502.05477.[17] W. Allcock,P. Rich,Y.范,Z。 Lan,在Argonne领导超级计算机上批调度的经验和实践,JSSPP[18] L. Yu,Z. Zhou,Y. 范,M。 Papka,Z. Lan,千万亿次系统的性能,功耗和弹性的系统范围权衡建模,J. Supercomput。(2018年)。[19] B. Li,S.春杜里湾伤害,Y。范,Z。Lan,系统利用率对应用程序性能变化的影响,在:ROSS,2019年。[20] Y. 范,Z。Lan,利用HPC的多资源调度,在:SC海报,2019年。[21] Y.范,Z。Lan,P. Rich,W. Allcock,M.帕普卡湾奥斯汀湾Paul,《为HPC调度CPU之外的时间》,载于:HPDC[22] Y. Fan,P. Rich,W. Allcock,M. Papka,Z. Lan,Trade-off between predictionaccuracy and underestimation rate in job runtime estimates,in:CLUSTER[23] X.杨,Z. Zhou,S. Wallace,Z.兰,W。Tang,S. Coghlan,M. Papka,将电力的动态定价集成到HPC系统的能量感知调度中,载于:SC'13。[24] X. Zheng,Z. Zhou,X.杨,Z. Lan,J. Wang,探索基于计划的大型计算系统调度,在:集群,2016年。[25] X. Yang,X. Zheng,Z. Zhou,W.王杰,邓志. Lan,通过环形连接系统上的本地感知调度来平衡作业性能与系统性能,载于:Cluster,2014年。[26] Y. Fan,P. Rich,W. Allcock,M. Papka,Z. Lan,罗马:用于exascale HPC系统的多资源作业调度框架,在:IPDPS海报,2018年。[27] Y. Fan,P. Rich,W. Allcock,M. Papka,Z. Lan,高性能计算系统的下一代工作负载管理系统,在:大芝加哥地区系统研究研讨会(GCASR),2018年。[28] Y. Fan,P. Rich,W. Allcock,M. Papka,Z. Lan,探索机器学习以调整高性能计算的作业运行时间估计,在:大芝加哥地区系统研究研讨会(GCASR),2017年。[29] P. Qiao,X. Wang,X. Yang,Y. 范,Z。 Lan,初步干扰 关于HPC应用胖树拓扑中的作业布局和路由算法的研究,见:CLUSTER Poster,2017年。[30] P. Qiao,X. Wang,X. Yang,Y.范,Z。Lan,应用程序通信模式,工作安排和网络路由对胖树系统的联合影响,在:ICPP研讨会,2018年。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功