首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么numba parallel=True比parallel=False慢

为什么numba parallel=True比parallel=False慢
EN

Stack Overflow用户
提问于 2019-10-29 02:31:18
回答 1查看 1.4K关注 0票数 1

我正在尝试使用numba执行并行计算,然而,我遇到了一个问题:使用以下代码,与关闭parallel=True相比,打开numba的速度要慢得多。

代码语言:javascript
复制
import numpy as np
from numba import njit, prange
from numba.typed import List
import time


n = 1000

@njit(parallel = True)
def lamb(now):
    timez = List()
    k1 = List()
    k = 0
    for i in range(n):
        timez.append(np.arange(i+1))
        k1.append( len(timez[i][timez[i]<=now]) )

    for i in prange(n):
       k += k1[i]

    return k


lamb(21)

start = time.time()
lamb(21)
end = time.time()
print("Elapsed (after compilation) = %s" % (end - start))

如果为parallel = True,则运行时间为Elapsed (after compilation) = 0.012674093246459961。相比之下,如果为parallel = False,则所用时间为Elapsed (after compilation) = 0.007932901382446289

你知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

发布于 2019-10-29 02:44:35

不同进程之间的协调会增加性能成本。这就是你看到的性能损失,如果工作真的值得努力并行化,那么假设工作足够大,你就会获得净收益。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58596516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档