[英]Performance of Parallel computing is lower than No parallel computing in Python
我只是写了一个在 Numba 上处理列表和并行的示例,如下所示:Parallel 和 No Parallel:
平行
@njit(parallel=True)
def evaluate():
n = 1000000
a = [0]*n
sum = 0
for i in prange(n):
a[i] = i*i
for i in prange(n):
sum += a[i]
return sum
无并行
def evaluate2():
n = 1000000
a = [0]*n
sum = 0
for i in range(n):
a[i] = i*i
for i in range(n):
sum += a[i]
return sum
并比较评估时间
t.tic()
print(evaluate())
t.toc()
结果:333332833333500000 经过的时间是 0.233338 秒。
t.tic()
print(evaluate2())
t.toc()
结果:333332833333500000 经过的时间是 0.195136 秒。
答案是操作的数量仍然很少。 当我将 n 更改为 100,000,000 时,性能发生了显着变化。
我还没有在 Numba 中尝试过。 但是,当 CPU 用作非并行处理器并且 GPU 用于并行处理时,这恰好发生在 Matlab 或其他编程语言中。 处理小数据时,CPU处理速度超过GPU,并行计算无用。 只有当处理数据大小超过一定值时,并行处理才有效。 有一些基准可以向您展示并行处理何时有效。 我读过论文,他们在代码中放置了开关,用于在处理过程中在 CPU 和 GPU 之间进行选择。 用一个大数组尝试相同的代码并比较结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.