栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Numba时如何并行化此Python for循环

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Numba时如何并行化此Python for循环

Numba已更新,

prange()
现在可以工作! (我正在回答自己的问题。)

日期为2017年12月12日的此博客文章讨论了Numba并行计算功能的改进。这是该博客的相关摘要:

很久以前(超过20个发行版!),Numba曾经支持惯用语来编写称为的并行for循环

prange()
。在2014年对代码库进行了重大重构之后,必须删除此功能,但自那以来,它一直是Numba最常请求的功能之一。英特尔开发人员将数组表达式并行化之后,他们意识到带回
prange
是很容易的

使用Numba版本0.36.1,我可以

for
使用以下简单代码并行化尴尬的parallel -loop:

@numba.jit(nopython=True, parallel=True)def csrMult_parallel(x,Adata,Aindices,Aindptr,Ashape):    numRowsA = Ashape[0]        Ax = np.zeros(numRowsA)    for i in numba.prange(numRowsA):        Ax_i = 0.0     for dataIdx in range(Aindptr[i],Aindptr[i+1]): j = Aindices[dataIdx] Ax_i += Adata[dataIdx]*x[j]        Ax[i] = Ax_i    return Ax

在我的实验中,并行化

for
-loop使该函数的执行速度比我在问题开头发布的版本快了八倍,该版本已经在使用Numba了,但尚未并行化。此外,在我的实验中,并行版本比
Ax= A.dot(x)
使用scipy的稀疏矩阵矢量乘法函数的命令快大约5倍。 Numba压碎了scipy
,我终于有了一个python稀疏的矩阵向量乘法例程,它的 速度与MATLAB一样快



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624749.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号