У меня есть функция 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)
Оптимально, это должно занять как можно меньше времени, так как элементы списка уже являются массивами. К сожалению, отдельные массивы в памяти не располагаются непосредственно один за другим, поэтому необходимо сначала выделить новую память, в которую затем будут скопированы отдельные массивы. Поскольку массивы очень большие, это занимает много времени. Есть ли способ хранить массивы в памяти один за другим, чтобы список вывода можно было легко интерпретировать как массив? Или можно выделить общую память, которая может использоваться отдельными процессами, и если да, то как именно это работает?