0

我已经用于hydra在 HPC slurm 集群上启动/跟踪大型 iid 实验(令人尴尬的并行实验),现在我正在尝试使用hydra它的ray(不是ray_aws)插件进行我想在 HPC 上进行的多智能体强化学习实验slurm 集群。总而言之,我想启动一个包含多个代理的实验,该实验汇总并平均多个片段的响应。使用ray,这将需要一个节点为每一集收集集群上head多个 iid 节点的输出。worker

我现在的问题是我不太了解ray插件如何为需要与slurm 集群上的节点一起使用的函数和类hydra设置参数。我在此处查看了有关插件的文档,但链接的示例配置并未指示如何设置或在 hydra 配置文件中。ray.remote()workerhydrarayray.initray.remote

在做了更多的研究、修补和思考之后,我意识到我可能需要使用hydra's compose api来允许模块化来指定哪个函数使用什么类型的资源,即 slurm 集群中有多少cpustasks每个工人。

我有两个关于通过内置插件或api使用hydrawith的问题:raycompose

  • 如何在不使用 compose APIray的情况下使用内置启动器并设置配置?ray.remote()我可以在简单示例中更改文件中的ray.init启动器参数,但尚不清楚我将如何在此插件和示例中进行设置。config.yamlray.remote()
  • compose在省略对 to 的覆盖时,我能够使ray api 示例正常工作,但是在示例中传递to时hydra.compose遇到错误(hydra.errors.ConfigCompositionException: Could not override 'dataset'. No match in the defaults list.):overrideshydra.compose()ray compose
overrides = [f"dataset={dataset}", f"model={model}"]
run_cfg = hydra.compose(overrides=overrides)  # <- error
ret = train.remote(overrides, run_cfg)

我意识到它可能无法@hydra.main与我试图对 slurm HPC 集群做的事情一起使用,但我很好奇如何设置ray.remote()。对于第二个问题,这更像是一个技术问题,我很好奇如何解决以供将来参考。我感谢任何建议或指导,并希望这些问题使这个可爱的库对其他人更有用。

4

0 回答 0