Можно ли контролировать память, используемую для вывода на рабочий стол Python Ray? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть функция 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)

Оптимально, это должно занять как можно меньше времени, так как элементы списка уже являются массивами. К сожалению, отдельные массивы в памяти не располагаются непосредственно один за другим, поэтому необходимо сначала выделить новую память, в которую затем будут скопированы отдельные массивы. Поскольку массивы очень большие, это занимает много времени. Есть ли способ хранить массивы в памяти один за другим, чтобы список вывода можно было легко интерпретировать как массив? Или можно выделить общую память, которая может использоваться отдельными процессами, и если да, то как именно это работает?

...