ipyparallel Нажмите на кортеж, чтобы избежать загрузки его в каждый двигатель - PullRequest
0 голосов
/ 04 июня 2018

У меня есть матрица размера MxN, и у каждого пробела в матрице есть большой список с номерами.Это выглядит так:

matrix=[[a,b,c,],[d,e,f],[g,h,i]]

, где a, b, c, d, e, f, g, h, i также являются матрицами, каждая из которых выглядит следующим образом:

a,b,c,d,e,f,g,h,i=[[12,32],[54,54],[54,34],[54,23]]

где каждая пара представляет x, y, координаты. это только для представления, реальный размер вышеуказанных матриц огромен.

, поэтому мой код должен циклически проходить по основной матрице и находить максимальные и минимальные значения в пределахподматрицы a, b, c, d ..... Поскольку это не последовательная работа, y разбили работу, используя многоядерную функцию ipyparallel, и это довольно быстро.проблема в том, что я должен загрузить большую матрицу в каждое отдельное ядро, чтобы использовать ее, и эта загрузка занимает около 2 секунд.Я искал опцию push, но она работает только со словарями.Есть ли способ, которым я мог бы преобразовать свою матрицу в словарь или, может быть, толкнуть мою матрицу?

from ipyparallel import client
rc=Client(profile='default')
lv=rc.direct_view()

lv.map_sync(method,(0,1000,2000,3000),(1000,2000,3000,4000))

def method(a,b):
     matrix=np.load('')#here I load the matrix
     #the do all the work here and return desired values.
     return answer

1 Ответ

0 голосов
/ 05 июня 2018

нашел способ, я просто отправил матрицу в качестве аргумента при вызове функции.

...