问题标签 [ray]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-cloud-platform - 如何在 GCP 上的 Ray 中传输有关工作人员的数据?
我想介绍三种情况:
- 我想将各种配置文件复制到头节点
- 我想将各种数据(例如图像)复制给工作人员,以便他们每个人都可以独立工作,而不必每次都通过远程调用传递数据。这些可能在 GCP 云存储上。
- 我想将必要的二进制文件复制给工人。这些不能位于某些共享存储上或通过远程调用传递,并且必须实际存在于每个工作节点上。
实现这一目标的最佳方法是什么?
ray - 是否可以将任务分配给 Ray 中的特定工作人员?
具体来说,我希望始终在 HEAD 节点上调用我的参数存储工作者,而不是在任何工作者上调用。这样我可以优化资源配置。目前,参数存储任务似乎是在随机服务器上启动的,即使它首先调用,即使它后面跟着一个 ray.get()
也许可以做类似的事情:
ps = ParameterStore.remote(onHead=True)
?
python - 检查在光线中完成了哪些 ObjectID
我在提交计算的光线中有一些远程函数。在得到它们之前,ray.get
我想先检查它们是否完成,这样我就可以在它们计算的同时继续做其他事情。
另外我真的在考虑用这种结构维护一本字典
这样我就可以定期阅读这本字典并收集完成的 OBJECTid。为此,我需要询问任务管理器以了解 OBJECTid 是否已完成。
在此页面上,我似乎看到了有趣的功能,例如ray.objects()
功能。然而,这似乎在我的笔记本中不可用,尽管我看到那里列出了许多其他功能,例如ray.init()
、ray.shutdown()
等。列出的所有功能Inspect the Cluster State
似乎都不见了,也许我错过了一些重要的步骤(导入?)
ray - 如何在 2 个 GPU 上运行 Flow 训练?
从 Wouter J 转发。
如何在 GPU 上运行流训练?
我目前正在尝试让ppo_runner
基准测试与我的 2 个 GPU 一起工作。但是,我找不到任何方法来利用这些资源。我需要对代码进行哪些更改才能使用 GPU?
ray - 用于 Actor 对象中的方法时,远程调用会阻塞吗?
执行以下操作不会同时进行,而是先执行 Run1 并阻塞,直到完成,然后再执行 Run2。
输出:
这有点出乎意料。如何强制方法同时执行?
编辑以解决后续评论:
执行双线程方法似乎不起作用。下面的代码始终导致 PyArrow 的管道损坏。我想同时运行 self.PreloadSamples 方法和 self.Optimize 方法。BufferActor 类通过 @ray.remote 修饰的 GetSamples() 方法收集和提供批处理样本。由于 GPU 上的数据不可序列化,因此这需要在优化器对象端完成,并且我想确保这是并行完成的,而不是相对于优化按顺序完成的。
请参阅下面的问题的完全隔离版本,该版本在运行约 1 分钟后复制问题:
python-3.x - 如何通过互联网(使用IP地址的分布式计算)将python ray用于独立计算机(每台计算机都有其用户名和密码)?
我知道光线在一个头节点(用户工作的计算机)和许多工作节点(其他计算机)中的基本用法。这可以通过为最新的 ray 0.8 填充 yaml 文件来完成。
但是,现在假设我有三台独立的机器,每台机器都有独立的ip、用户名和密码。我想连接其中一个并将其用作头节点,另外两个用作工作节点。但是我找不到任何关于射线文档的说明。
有谁知道如何在射线上进行这项工作?
ray - object_store_memory 和 redis_max_memory 有什么关系?
我不认为我完全理解 object_store_memory 和 redis_max_memory 之间的关系。我最初认为 redis db 将所有对象都保存在内存中,但是如何使对象存储大小大于 redis_max_memory 大小?或者它的某些部分是否写入磁盘?RAM是如何消耗的?是 RAM_CONSUMED = object_store_memory + redis_max_memory,还是它的并集?
python - 数据分区的多处理
我有如下代码:
我在类结构中有以下代码:
我实际上是在尝试识别文本之间的相似性。在这里,我使用了一个玩具数据集,但在我的情况下,我有一个巨大的文本数据,我必须在其中找到相似性。我无法将整个数据放入 RAM 中,因此决定划分数据并构建距离矩阵。但是它花费了太多时间,并且希望通过使用多处理来更快地运行它。我尝试了几种方法,但我陷入了僵局。另外,我找到了 ray 库,但无法将其集成到此代码中(尝试但未能减少时间)。有没有办法在处理方面对其进行优化。
ray - 如何在 PyTorch 中有效地从缓冲区获取数据到 GPU 上?
我有一个收集经验的射线演员(缓冲区)和一个对其进行优化的射线演员(学习者)+几个只收集经验的演员。这类似于 Ape-X 强化学习算法。
我的主要问题是使用学习器从缓冲区中采样需要很多时间,因为数据只能以 cpu 格式从缓冲区传输到学习器(即使学习器和缓冲区在同一台机器上)。因此,为了在学习器上运行优化传递,我仍然需要在每次调用ray.get(buffer.GetSamples.remote())
. 这是非常低效的,并且会花费大量时间进行优化计算。
在理想的世界中,缓冲区会不断地将随机样本推送到 GPU,并且学习者可以简单地从每次通过的样本中挑选一个块。我怎样才能使这项工作?
此外,将学习者和缓冲区都放入一个 ray actor 是行不通的,因为 ray(和 obv python)似乎在多线程方面存在重大问题,并且以串行方式执行它会破坏目的(因为它将是甚至更慢)。
请注意,这是我在这里提出的另一个问题的后续行动。
编辑:我应该注意这是针对 PyTorch
ray - 如何将试用输出定向到文件
我正在运行Experiment
多个试验,我想在ray_results
为该试验创建的目录中的文件中记录每个试验的过程的 STDOUT。
由于驱动程序跟不上,我已设置log_to_driver
为 false ,并且我已设置redirect_worker_output
为 true,但这似乎也没有达到我想要的结果。
也许有一个选项 ray.tune.run
?我已经设置verbose=2
了,但这不起作用。