Ray on slurm - 初始化问题

2024-01-30

我写这篇文章是因为自从我使用 slurm 以来,我一直无法正确使用 ray。 每当我使用命令时:

  • ray.init
  • trainer = A3CTrainer(env = “my_env”) (我已经在tune上注册了我的env)

,程序崩溃并显示以下消息:

core_worker.cc:137: 无法将工作线程 01000000ffffffffffffffffffffffffffffffffffffffffffffffff 注册到 Raylet。 IOError: [RayletClient] 无法向 raylet 注册工作线程。没有这样的文件或目录

该程序在我的计算机上运行良好,但在使用 Slurm 时出现了问题。我只要求 slurm 提供一台 GPU。

感谢您阅读我的文章并可能回答。 祝你有美好的一天

关于代码的一些精度

@亚历克斯 我使用了以下代码:

import ray
from ray.rllib.agents.a3c import A3CTrainer
import tensorflow as tf
from MM1c_queue_env import my_env #my_env is already registered in tune

ray.shutdown()
ray.init(ignore_reinit_error=True)
trainer = A3CTrainer(env = "my_env")

print("success")

带有 trainer 和 init 的两条线都会导致程序崩溃,并出现我之前评论中提到的错误。要使用 slurm 启动该程序,我使用以下程序:

#!/bin/bash

#SBATCH --job-name=rl_for_insensitive_policies
#SBATCH --time=0:05:00 
#SBATCH --ntasks=1
#SBATCH --gres=gpu:1
#SBATCH --partition=gpu

module load anaconda3/2020.02/gcc-9.2.0
python test.py

限制CPU数量

Ray 将启动与您的执行节点具有 CPU(或 CPU 核心)一样多的工作进程。如果这超出了您保留的数量,slurm 将开始杀死进程。

您可以限制工作进程的数量,如下所示:

import ray
ray.init(ignore_reinit_error=True, num_cpus=4)
print("success")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ray on slurm - 初始化问题 的相关文章

随机推荐