我想在使用 python 库 numpy 的 IJulia 笔记本中运行一个简单的代码。我用 PyCall 调用 numpy:
使用 PyCall
@pyimport numpy 作为 np
这工作正常。然后我想把它分成几个处理器。我添加处理器:
addprocs(4)
然后,我为函数 f 运行 N/proc 迭代,其中 proc 是我的处理器数量。我在计算机上的四个处理器之间平均分配负载:
n=round(Int,N/proc); proc_sum = @parallel (+) for i=1:proc f(n) end return proc_sum / proc
没有 numpy,这可以正常工作。但是,当我尝试使用 numpy 将代码拆分到不同的处理器时,出现错误
错误(未处理的任务失败):在工人 3 上:
UndefVarError: np 未定义
有什么办法可以在其他处理器上进行 numpy 工作?请注意,我有 Julia 0.5.2,我有 Canopy。我知道之前有人报告过 PyCall 和 Canopy 的问题,但我更希望将 Canopy 保留在我的机器上。