python - Python Ray 共享内存访问
问题描述
我有一个关于 Ray 框架中共享内存访问的问题。想象一下在一台机器
上进行以下设置:
- 启动 Ray 集群
- 启动一个进程/工作者 python 脚本w1.py ,它通过ray.put(O1)将对象O1放入共享内存
- 启动一个进程/工作者 python 脚本w2.p y,它试图通过ray.get(...)从共享内存中获取O1
有没有办法从另一个工作进程w2.py访问对象O1 (从w1.py进程放入共享内存) ?
当我从w2.py执行ray.objects()时,我得到了对象引用字符串,但是我怎么能从共享内存中检索对象呢?我无法在w2.py中初始化ObjectRef 对象
解决方案
这不是本机支持的。原因是 ray 的对象具有用于各种功能的各种元数据(例如,性能优化或使用引用计数的自动内存管理)。
如果您想实现这一目标,我认为有两种解决方案。
使用分离的演员 api。分离的演员是一生不与司机分享票价的演员。一旦你创建了一个分离的actor,你就可以使用 ray.get_actor API 来获取actor句柄。这样,您可以将对象放在分离的 Actor 中并从多个驱动程序访问。
还有另一种使用cloudpickle的方法,但是我对这个解决方案不是很熟悉,所以我不会写它。请访问 Ray 在其 Github 存储库中的讨论页面以询问有关它的更多详细信息。
推荐阅读
- okhttp - 带有内容类型 json 的 OkHttp 响应 204
- php - 在 Wordpress 中设置 AJAX 请求的问题(使用 JQuery)
- scala - Scala 使用扩展特征的类的反射访问运行时类型的成员
- android - Google 登录“选择一个帐户以继续”循环
- android - IONIC 5 Cordova 插件在运行 android 时可以构建但无法工作。它仅在 -livereload 中有效
- iterator - 需要帮助遍历嵌套列表,但是
- amazon-web-services - CloudFormation 创建 EC2 指定子网
- amazon-web-services - AWS 是否记录消息已移至 SQS DLQ
- android - 如何让这个 iOS Http Post Request 工作?
- git - Azure DevOps 中具有路径限制的分支策略