没有合适的资源?快使用搜索试试~ 我知道了~
高性能计算中的开源强化学习框架Relexi及其应用潜力
软件影响14(2022)100422原始软件出版物Relexi-一个可扩展的开源强化学习框架,用于高性能计算Marius Kurza,10,1,Philipp Offenhäuserb,1,Dominic Violab,Michael Reschc,Andrea Beckaa斯图加特大学空气动力学和气体动力学研究所,Pfaffenwaldring 21,70569 Stuttgart,GermanybHewlett Packard Enterprise(HPE),Herrenberger Straße 140,71034 Böblingen,Germanyc斯图加特大学高性能计算中心(HLRS),地址:Nobelstraße 19,70569 Stuttgart,Germany自动清洁装置保留字:强化学习高性能计算科学机器学习A B标准Relexi是一个用Python编写的开源强化学习(RL)框架,基于TensorFlow的RL库TF-代理。Relexi允许将RL用于需要计算密集型模拟的环境,如计算流体动力学中的应用。为此,Relexi使用SmartSim库在现代高性能计算(HPC)硬件上大规模地将传统仿真代码与RL库TF-Agent耦合。因此,Relexi提供了一种简单的方法来探索RL在HPC应用中的潜力代码元数据当前代码版本v1.0.1用于此代码版本的代码/存储库的永久链接https://github.com/SoftwareImpacts/SIMPAC-2022-172Reproducible Capsule的永久链接https://codeocean.com/capsule/0614141/tree/v1法律代码许可证GPL-v3使用git的代码版本控制系统使用Python的软件代码语言、工具和服务编译要求,操作环境依赖性Linux,TensorFlow,TF-Agents,SmartSim,SmartRedis如果可用,链接到开发人员文档/手册https://github.com/flexi-framework/relexi/blob/main/README.md问题支持电子邮件marius. iag.uni-stuttgart.de,philipp. hpe.com1. 介绍近年来,强化学习(RL)已被广泛应用于计算科学中许多具有挑战性的问题,从湍流模拟[1,2]和流量控制应用[3在RL中,代理通过执行环境将其当前状态更改为新状态的动作来如果国家转型有利于 对于优化目标,环境可以为代理发出奖励。代理根据环境当前状态由代理商的政策规定。然后,可以根据这些交互来训练代理,以提高其收集的奖励,从而提高其未来的表现。因此,总的目标是找到一些最佳的政策,最大化收集的奖励。一个RL算法包括两个主要步骤。首先,基于代理的当前策略对经验进行采样这些步骤迭代地训练过程的细节取决于所应用的特定RL算法环境的行为越复杂,基于RL的方法就越有前途。一个最好的例子就是湍流本文中的代码(和数据)已由Code Ocean认证为可复制:(https://codeocean.com/)。更多关于生殖器的信息徽章倡议可在https://www.elsevier.com/physical-sciences-and-engineering/computer-science/journals上查阅。*通讯作者。电子邮件地址:marius. iag.uni-stuttgart.de(M.Kurz),philipp. hpe.com(P. Offenhäuser),dominic. hpe.com(D.Viola),resch@hlrs.de(M.Resch),andrea. iag.uni-stuttgart.de(A.Beck)。作者贡献均等。https://doi.org/10.1016/j.simpa.2022.100422接收日期:2022年8月15日;接收日期:2022年9月6日;接受日期:2022年9月9日2665-9638/©2022作者。由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表软件影响杂志 首页:www.journals.elsevier.com/software-impactsM. Kurz,P.Offenhäuser,D.Viola等人软件影响14(2022)1004222Fig. 1. Relexi的概述。在每次迭代中,Relexi都会在分布式工作节点上启动模拟,以对交互进行采样以训练代理。并行模拟的数量是Relexi的YAML配置文件中规定的其他参数之一。通信是通过配置器数据库和SmartRedis(SR)实现的。SmartSim提供的客户端。Flexi需要三个文件,一个参数文件,一个网格文件和一个重新启动文件,其中包含恢复模拟的检查点流状态。后两个文件格式是HDF5文件格式。建模,其中当前基于RL的方法可以优于已建立的方法[1,8]。然而,为科学计算中的应用评估这样的环境需要执行模拟,这通常在计算上是昂贵的并且可能需要高性能计算(HPC)。此外,RL方法要求并行执行模拟和训练过程。这就带来了问题,因为HPC模拟代码通常是用C、C++或Fortran等编译语言编写的,并且(至少到目前为止)是为CPU系统设计的,而RL库通常通过Python进行交互,并且需要GPU等专用硬件才能获得最佳性能。因此,为科学计算实现RL框架需要在现代HPC硬件上有效和大规模地弥合相应硬件要求、编程语言和设计范式提出了各种不同的科学强化学习框架在文献中,克服这些障碍。Novati等人和Bae&Koumoutsakos都使用了smartes库进行湍流建模[1,2]。Pawar Maulik开发了PAR-RL框架,他们成功地将其应用于优化时间步进在[9]中的流动模拟。Rabault及其同事开发了一种用于流控制的RL框架,该框架成功地与不同的外部流求解器耦合[3最近,Wang等人[10]开发了DRLinFluids作为一个灵活的基于Python的库,用于流体力学中的RL, OpenFOAM作为耦合流求解器。在这里,我们介绍了新的RL框架Relexi,它特别强调使用现代HPC系统来处理计算昂贵的训练环境。为此,Relexi允许高效地使用传统HPC求解器作为训练环境,同时只需要对代码进行最小的更改。为此,Relexi通过TensorFlow [11]实现RL训练循环,其RL扩展TF-Agents[12]。对于外部HPC求解器的耦合,Relexi使用SmartSim库[13]的功能来实现数据交换并管理分配的硬件资源上的模拟。作为第一个演示器,开源流求解器FLEXI2 [14]已耦合到Relexi框架,以证明所提出的框架在HPC系统上的出色扩展能力。2. 描述Relexi由三个主要组件组成,如图所示。1.一、首先,Relexi在TensorFlow中实现了RL训练循环2https://github.com/flexi-framework/flexi框架[11]使用TensorFlow训练循环包括RL算法的两个主要步骤,即与环境的交互的采样和基于这些交互的代理的训练。TF-Agents库为RL中的所有重要实体提供标准实现,包括不同的环境,代理和重放缓冲区。由于不同组件之间的接口是标准化的,因此RL算法的各个组件可以快速替换,而无需大量的实现工作。为了在Relexi中保留这些优点,与外部HPC求解器的交互被实现为基于TF-Agent提供的标准环境类的自定义环境。因此,与特定求解器的耦合和通信隐藏在自定义环境类中,TF-Agent的其他对象可以与求解器进行本地交互为了处理外部HPC求解器,Relexi必须处理两个任务。首先,Relexi必须管理HPC集群上的并行仿真实例的启动和终止,并且必须将工作负载正确地分配给已分配的HPC资源。其次,Relexi必须在分布式系统上与仿真实例有效地交换信息,而不需要求助于文件系统。这两项任务都由SmartSim库负责[13]。SmartSim基础架构库提供了广泛的管理功能,可在分布式HPC系统上启动和终止任务。此外,它的配置器提供了一个内存中的Redis数据库,在Relexi和求解器之间建立通信。为此,SmartSim提供了多种编程语言的SmartRedis客户端,可用于写入和读取数据库。SmartRedis客户端必须在编译时链接到求解器。然后,通过将相应数据数组的键传递给SmartRedis客户端,可以在运行时将所需数据写入数据库和从数据库读取数据。因此,外部求解器所需的更改是最小的。这允许耦合求解器写在不同的编程语言在一个简单的方式。看来重要的是注意,Relexi框架旨在在调度的批处理作业内运行,该批处理作业必须为Relexi本身以及在训练期间启动的HPC求解器实例然后,Relexi中的训练过程如下所示。在启动期间,Relexi启动SmartSim配置器,并使用初始随机策略配置代理。然后,Relexi启动指定数量的模拟实例,并在分配的计算资源(即工作节点)之间分配工作负载对于FLEXI,提供了三个求解器特定的文件来启动仿真。这些文件包括一个参数文件,一个网格文件和一个检查点文件,其中包含了模拟将被初始化的流解决方案。然后,使用预测的时间演变的模拟,M. Kurz,P.Offenhäuser,D.Viola等人软件影响14(2022)1004223当前代理,它们通过Replastrator从Relexi接收。当模拟完成时,Relexi收集收集的交互,即求解器的模拟状态和代理执行的相应操作,并将它们传递给优化器。 然后,根据采样的经验训练代理,以便在下一轮中表现得更好。如何准确地使用抽样经验优化代理取决于所采用的RL算法。然后,再次,模拟开始与改进的代理。迭代地执行这些步骤,直到代理YAML格式的配置文件用于控制Relexi的配置。最重要的设置包括求解器可执行文件的路径及其所需文件的路径、每次训练迭代中应启动的并行模拟量以及应执行的最大训练迭代次数。Relexi将训练进度的最重要指标记录到终端,但集成了Tensorboard,以实现训练结果的更高级可视化Tensorboard可用于检查训练期间主要性能指标的演变,查看Relexi和FLEXI的配置文件,并显示特定于所用应用程序的更高级的自定义图。3. 关键特征与第1节中讨论的其他RL框架相比,Relexi强调并改进了以下方面。• 可持续性:Relexi允许将RL工作流轻松应用于传统HPC求解器,而无需使用更RL友好的编程语言重写现有代码库。相反,外部求解器只需配备SmartRedis客户端,该客户端由SmartSim提供,用于HPC的最常见编程语言。因此,求解器中所需的自适应是最小的,这允许保持求解器的效率和功能,同时仅需要最小的实现工作。• 可扩展性:Relexi的实现是为了应对计算昂贵的环境,并可以保持外部HPC求解器的并行效率。Relexi和外部求解器之间的通信仅通过内存数据库处理,避免了通过文件系统进行任何数据交换。因此,Relexi可以有效地扩展到数千个计算核心上的数百个并行仿真环境,如[15]所示。这是RL训练在实际应用中的一个关键特性,使Relexi从其他框架中脱颖而出。• 模块化:耦合到外部求解器实现为基于TF-代理的本地环境类的自定义环境。因此,大多数当前和未来的对象和TF-Agents中实现的功能与自定义环境进行本地交互。这允许在TF-Agents框架内保持模块化,并以最小的努力交换RL训练的组件甚至整个RL算法4. 影响Relexi有助于回答两个主要的研究问题:• 如何在现代HPC资源上实现强化学习训练循环,以应对传统HPC求解器提供的计算成本高昂的仿真环境• 强化学习可以应用于科学计算中的哪些建模和控制任务,以改善当前的最新技术水平?为了研究第一个问题,FLEXI作为演示器与Relexi耦合。基于此,已经表明Relexi允许将传统HPC求解器作为RL的环境有效地应用,在现代异构HPC硬件上进行扩展[15]。在这里,Relexi可以保留FLEXI的出色扩展能力,同时允许在数千个CPU内核上并行运行数百个模拟,同时利用专用GPU节点在采样体验上有效地训练代理。有了这个框架,Relexi被应用于推导[8]中大涡模拟的数据驱动湍流模型,以解决第二个研究问题。这里,可以表明RL方法可以提供在准确性方面改进当前最先进湍流模型的模型。此外,基于RL的代理提供了长期稳定的模拟,这是许多其他机器学习方法经常缺乏的[16,17]。Relexi在湍流建模中的应用显然只是第一次概念验证,并将扩展到流体力学中的其他应用,包括激波捕获[18]或壁面建模[2]以及其他研究领域的应用5. 进一步发展目前,计划进行以下开发。首先,我们努力将其他求解器耦合到Relexi框架。为此,我们将扩展文档并进一步标准化Relexi和求解器之间的接口。此外,我们致力于通过软件容器解决方案提供Relexi,以提高其易用性,例如Docker或Apptainer(以前的Singularity)。目前,Relexi采用TF-Agents提供的邻近策略优化(PPO)[19]作为RL算法的实现。正因为如此,Relexi目前只支持同步RL算法,同步RL算法是指一个接一个地执行经验采样和Agent优化的RL算法相比之下,异步RL算法并行执行这两个步骤,这可以减少硬件的空闲时间,从而降低整体效率。这需要对Relexi进行一些算法更改,这将在未来解决竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢的发展的热莱西是在部分资助由德国研究基金会(DFG,德国研究基金会)根据德国卓越战略- EXC 2075 - 390740016和由德国巴登-符腾堡州科学与艺术部通过SiVeGCS-MWK项目提供。作者非常感谢HLRS通过“hpcdg”项目对“Hawk”提供的支持和计算时间, 斯图加特仿真科学中心(SimTech)此外,作者感谢SmartSim开发人员的支持。引用[1]Guido Novati,Hugues Lascombes de Laroussilhe,Petros Koumoutsakos,通过多智能体强化学习自动化湍流建模,Nat. 马赫内特尔3(1)(2021)87-96.[2] H. Jane Bae , Petros Koumoutsakos,湍 流壁模型的 科学多智能 体强化学 习,Nature Commun。13(1)(2022)1[3] Jean Rabault,Alexander Kuhnle,通过多环境方法加速流控制的深度强化学习策略,物理流体31(9)(2019)094105。[4] Jean Rabault,Miroslav Kuchta,Atle Jensen,Ulysse Réglade,Nicolas Cerardi,通过深度强化学习训练的人工神经网络发现主动流量控制的控制策略,J。流体机械865(2019)281[5] Hongwei Tang , Jean Rabault , Alexander Kuhnle , Yan Wang , TongguangWang , Robust active flow control over a range of Reynolds numbers using anartificialneural network trained through deep reinforcement learning,Phys. Fluids32(5)(2020)053605.M. Kurz,P.Offenhäuser,D.Viola等人软件影响14(2022)1004224[6] 李继超,张梦琪,基于强化学习的受限圆柱尾迹控 制 及稳定性分析,J。流体机械932(2022)号决议。[7] Seungmoon Song , Jukasz Kidzienski , Xue Bin Peng , Carmichael Ong ,JenniferHicks,Sergey Levine,Christopher G Atkeson,Scott L Delp,用于神经机械模拟中建模人类运动控制的深度强化学习,J. Neuroeng。康复中心18(1)(2021)1-17.[8] Marius Kurz,Philipp Offenhäuser,Andrea Beck,大涡模拟中湍流建模的深度强化学习,2022,arXiv预印本arXiv:2206.11038。[9] Suraj Pawar,Romit Maulik,用于仿真控制的分布式深度强化学习,Mach。学习.Sci. Technol. 2(2)(2021)025029.[10] 王秋磊,严磊,胡刚,李超,肖一青,熊浩,Jean Rabault,Bernd R Noack,[11]Martín Abadi,Ashish Agarwal,Paul Barham,Eugene Brevdo,Zhifeng Chen,Craig Citro , Greg S. Corrado , Andy Davis, Jeffrey Dean, Matthieu Devin ,Sanjay Ghemawat , Ian Goodfellow , Andrew Harp , Geoffrey Irving , MichaelIsard,Yangqing Jia,Rafal Jozefowicz,Lukasz Kaiser,Manjunath Kudlur,JoshLevenberg,Danish Mané,Rajat Monga,Sherry Moore,Derek Murray,ChrisOlah,Mike Schuster,Jonathe Shlens,Benoit Steiner,Ilya Sutskever,KunalTalwar,Paul Tucker,Vincent Vanhoucke,Vijay Vasudevan,Fernanda Viégas,Oriol Vinyals, Pete Warden ,Martin瓦滕伯格,马丁维克Yuan Yu,Xiaoqiang Zheng,TensorFlow:异构系统上的大规模机器学习,2015,软件可从tensorflow. org获得。URLhttps://www.tensorflow.org/。[12] Sergio Guadarrama,Anoop Korattikara,Oscar Ramirez,Pablo Castro,EthanHolly , Sam Fishman , Ke Wang , Ekaterina Gonina , Neal Wu , EfiKokiopoulou,Luciano Sbaiz,Jamie Smith,Gábor Bartók,Jesse Berent,ChrisHarris , Vincent Vanhoucke , Eugene Brevdo , TF-agents : A library forreinforcementlearninginTensorFlow,2018,URLhttps://github.com/tensorflow/agents.[13] Sam Partee , Matthew Ellis , Alessandro Rigazzi , Andrew E Shao , ScottBachman,Gustavo Marques,Benjamin Robbins,使用SmartSim在数值模拟中大规模使用机器学习:海洋气候建模应用,J。Comput. Sci.(2022)101707.[14] Nico Krais , Andrea Beck , Thomas Bolemann , Hannes Frank , David Flad ,GregorGassner,Florian Hindenlang,Malte Hoffmann,Thomas Kuhn,MatthiasSonntag , Claus-Dieter Munz , FLEXI : A high order discontinuous Galerkinframeworkfor hyperbolic-parabolic conservation laws , Comput. 数 学 应 用 81(2021)186-219。[15] Marius Kurz , Philipp Offenhäuser , Dominic Viola , Oleksandr Shcherbakov ,Michael Resch,Andrea Beck,HPC系统上计算流体动力学的深度强化学习,2022,arXiv预印本arXiv:2205.06502。[16] Marius Kurz,Andrea Beck,调查数据通知湍流闭合项中的模型-数据不一致性,在:第14届WCCM-ECCOMAS大会2020,第1700卷,2021年。[17]Andrea Beck,Marius Kurz,湍流建模中机器学习方法的视角,GAMM-Mitt。44(1)(2021)e202100002。[18] 张文,等.基于神经网络的冲击波检测与定位方法.北京:机械工程出版社,2000,24(3):111 - 112. Comput. Phys. 423(2020)109824.[19] John Schulman,Filip Wolski,Prafulla Dhariwal,Alec Radford,Oleg Klimov,Proximal policy optimization algorithms,2017,arXiv preprintarXiv:1707.06347.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功