Om *_*ari 1 python python-3.x ray pandas
如何从多个参与者读取数据并将数据写入同一对象?
文档说: https://docs.ray.io/en/master/memory-management.html
import numpy as np
a = ray.put(np.zeros(1))
b = ray.get(a)
Run Code Online (Sandbox Code Playgroud)
但这会产生新副本。
小智 5
在参与者之间使用全局变量(可以读/写)的正确方法是使用持有对象的参与者。https://docs.google.com/document/d/167rnnDFIVRhHhK4mznEIemOtj63IOhtIPvSYaPgI4Fg/edit#heading=h.eg7m6lz2y48u
Plasma 对象是不可变的,只有在将对象复制到工作线程的堆内存后才能修改该对象(这意味着此时它不再是全局的)。
另请注意,对于您的示例,它不会创建新副本!它使用称为零复制读取(https://www.python.org/dev/peps/pep-0574/)的东西,这意味着仅复制带内数据(numpy对象的元数据),而带外数据则被复制。数据(缓冲区)不会复制到Python的堆内存(它驻留在共享内存中,并且您的ray程序直接指向该内存区域)。