如何避免在进程间复制非全局的numpy数组?
我看过“ Python多进程中共享只读数据是否会被复制到不同进程? ”这篇文章,但里面提到的数组是全局的。那有没有可能对局部数组做同样的事情呢?
1 个回答
-1
我觉得不是这样,不过你可以把东西保存到一个模块的变量里。如果你在分叉(fork)之前这样做(并且你不是在Windows上),应该没问题。
比如说:
import mymodule
def somefunc(parameter):
# do something with mymodule.var
# load/process local data
# save to module variable
mymodule.var = var
# now fork
p = multiprocessing.Pool(8)
p.map(somefunc, list_of_params)
如果你使用ipython,你还需要把somefunc放到一个模块里(在main里保存函数似乎不太管用)。