我有两个大小为n1 X n2
的数组,我想把它们并行地加在一起。我有一个启用了openMP
的Python
版本,但是当我在bash
shell内部设置export OMP_NUM_THREADS=4
时,我看不到我的代码是多线程的。是否可以以多种方式执行arr = arr + tarr
?在
#!/usr/bin/env python
import numpy as np
n1 = 20000
n2 = 20000
arr = np.random.random_sample((n1,n2))
for i in range(10):
tarr = np.random.random_sample((n1,n2))
arr = arr+tarr
你的BLAS链接只与线性代数运算有关(矩阵积、求解线性系统等)。numpy本身不在数组上执行基本的元素算术运算(如加法、非矩阵乘法、求幂等)。在
多线程计算最简单的选择之一是使用numexpr:
相关问题 更多 >
编程相关推荐