如何解决如何为远程主机中的每个工作人员指定 env 变量?
我是最近从 python 多处理库转换到 ray 的转换器。
我有一个带有四个芯片的自定义资源,我需要指定环境变量。例如VISIBLE_DEVICE=0
并行使用它们。
所以在多处理中,我总是创建 4 个进程,每个进程获取 1 个芯片
class P(Process):
def run(self,chip_id):
os.environ['VISIBLE_DEVICE']=chip_id
fn()
有没有办法在 ray 中做类似的事情?喜欢
- 仅在每个主机中生成 4 个 ray 远程工作人员
- 在运行函数之前,每个 worker 都会获得不同的 env 变量。
解决方法
要在每个主机中仅生成一个工作器,您可以尝试针对归置组使用 STRICT_SPREAD 策略:https://docs.ray.io/en/master/placement-group.html
要将环境变量传递给光线任务或 Actor,您可以使用参数 override_environment_variables
(https://docs.ray.io/en/master/package-ref.html#ray-remote)。例如:
my_task.options(override_environment_variables={'VISIBLE_DEVICE': 1234}).remote()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。