Python - 多进程共享内存与 python numpy 数组?

问题描述

这里我有一个 2 numpy 数组,以及一个将这些数组作为输入的函数,然后进行一些 numpy 计算并返回结果。它按原样工作,但速度很慢,我认为我们可以使用多处理使其更快。

无论如何,这是我的代码:

A = #4 dimensions big numpy array
B = #1 dimension numpy array

def function(A,B):
    P = np.einsum("ijkl,ij->kl",A,B)
    return P.astype(np.uint8)

result = function(A,B)

我对 Multiprocessing 的东西仍然很陌生,但认为我们能够将数组 AB 作为共享内存(也许使用 multiprocessing.Array() ??) ,然后进行多个过程来计算 function(A,B)。但我仍然不太明白如何将所有这些都放入代码中。

编辑:

好的,所以上面的方法似乎不起作用,但让我们尝试另一种情况,但是现在,假设数组 A 的长度为 120,现在我只想使用 3/4数组 A 的部分从索引号 0 到 89 并在进程号 1

中使用所有数组 B

然后,我还想使用数组 A 的 3/4 部分,但从索引号 30 到 119 并在进程中使用数组 B 的所有部分No.2,这有帮助吗?当然,我可以使 A 数组更大,以便用更多的过程计算它的一部分,但问题是,这个概念是否可行?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...