python - 在 Ray 中的远程函数之间存储对象

标签 python python-3.x ray

我正在编写一个项目,该项目多次使用相同的数据进行写入,并且我一直在使用 ray 在集群设置中对其进行扩展,但是文件太大而无法来回发送/保存射线对象一直存储。有没有办法在远程函数调用之间将 python 对象保存在本地节点上?

最佳答案

在分布式系统中写入文件总是很棘手,因为常规文件系统不会在机器之间共享。 Ray 通常不会干扰文件系统,但我认为您在这里有几个选择。

  1. 扩展对象存储大小:您可以通过设置 --object-store-memory-- 更改 plasma 存储大小及其存储到更大文件的位置plasma-directory 标志。

  2. 使用分布式文件系统:NFS 等分布式文件系统允许您跨机器共享部分文件系统。如果您手动设置 NFS 共享,则可以指示 Ray 写入 NFS 中的文件。

  3. 不要使用文件系统:虽然从技术上讲这不是答案,但可以说这是分布式系统最典型的方法。考虑写入 S3 或类似的 KV 存储或 Blob 存储,而不是写入文件系统。

这些方法的缺点:

(1) 的最大缺点是,如果您不小心,可能会严重影响您的表现。

(2) 的最大缺点是它可能很慢。特别是,如果您需要从多个节点读取和写入数据。第二个缺点是您必须自己设置 NFS。

(3) 的最大缺点是您现在依赖于外部服务,并且可以说它不是您问题的直接解决方案。

关于python - 在 Ray 中的远程函数之间存储对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64840392/

相关文章:

python - 如何在 Django 中创建特定时间后删除记录?

python - Ray 集群配置 file_mounts 部分不允许启动工作节点

google-cloud-platform - 如何在 GCP 上设置射线项目自动缩放

python - “int”对象不可下标 - 不知道如何修复

python - Pandas Dataframe 检查交集并填写新的 dataframe

python - Pandas concat 使用多索引的一列

python-3.x - 从生成器创建 numpy 数组,列表列表

python |循环语句为 Excel 文件中的每个工作表创建文件

python-3.x - 当我将测试放在单独的目录中时,pytest 找不到包

python-3.x - 如何在 Ray Tune 中定义与搜索算法无关的高维搜索空间?