是否可以控制用于Python Ray worker输出的内存?

时间:2019-10-23 17:48:03

标签: python-3.x numpy ray

我有一个ray.remote函数,它从一个小的输入产生一个大的输出数组。

@ray.remote
def function(input):
    large_numpy_array = do_smth_with_input
    return large_numpy_array

我列出了应该对其执行功能的各种输入参数:


ray.init()

input = [param1,param2....]

output = [function.remote(i) for i in input]

output = output.get()

最后,由此产生的列表应解释为数组

output = numpy.asarray(output)

理想地,这应该花费尽可能少的时间,因为列表元素已经是数组。不幸的是,存储器中的各个阵列不是直接相接的,因此必须先分配新的存储器,然后再将各个阵列复制到其中。由于阵列非常大,因此需要很多时间。有没有一种方法可以将数组一个接一个地存储在内存中,以便可以将输出列表轻松地重新解释为数组?还是有可能分配可以由各个进程使用的共享内存,如果可以,它到底是如何工作的?

0 个答案:

没有答案