设置多处理程序会在轻载CPU时延长执行时间吗?

2024-04-26 05:11:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图利用我的处理器的多核来加速NumPy计算,但是当设置multiprocessing.Pool()时,代码反而会变慢,这是因为负载与设置线程的时间相比微不足道吗

下面是我试图使用multiprocessing加速的代码:

import multiprocessing as mps
from time import time
import matplotlib.pyplot as plt

def f(x,y):
        return np.sin(x)+np.cos(y)-x*y

if __name__=="__main__":

    x = np.arange(-10,10,0.01); y = x
    with mps.Pool(4) as pool:
        start = time()
        x, y = pool.apply(np.meshgrid,(x,y))
        z = pool.apply(f,(x,y))
        plt.contour(x,y,z)
        print("Took: {} seconds".format(time()-start))
        plt.show()

multiprocessing.Pool()时,操作大约需要2.4秒,而没有multiprocessing.Pool()时,操作大约需要0.78秒


Tags: 代码importnumpy利用timeasnpplt