为什么我的多核代码与python多处理的单核速度相同

时间:2017-04-06 08:36:19

标签: python concurrency multiprocessing python-multiprocessing

我正在使用以下代码测试python的多处理模块:

from multiprocessing import Pool
import math

def f(x):
    for i in range(1,1000):
        y = (x*x)/math.sqrt(i)
    return y

if __name__ == '__main__':
    p = Pool(7)
    print(p.map(f, range(20000)))

这给了我一个大约39.8s的时间,有7个核心。我验证了所有7个处理器正在处理任务管理器。

单核实施:

print [f(x) for x in range(20000)]

需要38秒才能完成。我的理解是,这是一项非常耗费CPU的任务,因此7核版本应该比单核更快。为什么我没有看到任何性能上的改善(实际上看到减少)

0 个答案:

没有答案