Создание общего массива NumPy между процессами
Я прочитал довольно много вопросов о SO по поводу совместного использования массивов, и это кажется достаточно простым для простых массивов, но я застрял, пытаясь заставить его работать для моего массива.
import numpy as np
data=np.zeros(250,dtype='float32, (250000,2)float32')
Я пытался преобразовать это в общий массив, пытаясь как-то сделатьmp.Array
принятьdata
Я также попытался создать массив с использованием ctypes как таковой:
import multiprocessing as mp
data=mp.Array('c_float, (250000)c_float',250)
Единственный способ заставить мой код работать - не передавать данные в функцию, а передавать закодированную строку для распаковки / декодирования, однако это приведет к вызову n (количество строк) процессов, что кажется избыточным. Моя желаемая реализация основана на разбиении списка двоичных строк на x (количество процессов) и передаче этого чанка,data
иindex
к процессам, которые работают за исключением того, чтоdata
модифицируется локально, поэтому вопрос окак сделать это общимлюбой пример работы с пользовательским (вложенным) массивом numpy уже очень помог бы.
PS: этот вопрос является продолжениемМульти-обработка Python