为何Numba并行循环比普通Python循环更慢?附测试案例
Python循环与Numba并行版本的性能对比
普通Python循环实现
def two_d_array_reduction_prod(n): shp = (13, 17) result1 = 2 * np.ones(shp, np.int_) tmp = 2 * np.ones_like(result1) for i in range(n): result1 *= tmp return result1
调用方式:
two_d_array_reduction_prod(50000)
耗时约 0.7482060070033185 秒。
Numba并行优化版本
@nb.njit(parallel=True) def two_d_array_reduction_prod(n): shp = (13, 17) result1 = 2 * np.ones(shp, np.int_) tmp = 2 * np.ones_like(result1) for i in nb.prange(n): result1 *= tmp return result1
调用方式:
two_d_array_reduction_prod(50000)
耗时 3.9858204890042543 秒。
运行环境
- Amazon Linux 2 操作系统,x86_64架构处理器
- 8核CPU
- 32GB内存
内容的提问来源于stack exchange,提问作者Krishna Sunuwar
相关产品推荐
相关产品推荐

