首页 > 解决方案 > ipyparallel 推送一个元组以避免在每个引擎中加载它

问题描述

我有一个 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 秒。我正在寻找推送选项,但它只适用于字典。有没有办法可以将我的矩阵转换为字典或者推送我的矩阵?

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

标签: python-3.xipythonjupyter-notebook

解决方案


找到了一种方法,我只是在调用函数时将矩阵作为参数发送。


推荐阅读