我正在尝试以下代码来了解Python中的多处理模块。我不确定为什么多处理部分比串行处理花费更多的时间
import numpy as np
import multiprocessing
from itertools import product
import timeit
def sum_diff(a,b):
return a+b,a-b
a = np.linspace(1,11,100000)
b = np.linspace(11,21,100000)
sum = np.zeros_like(a)
diff = np.zeros_like(a)
nprocs = 4
pool = multiprocessing.Pool(nprocs)
start = timeit.default_timer()
result = pool.starmap(sum_diff,zip(a,b))
end = timeit.default_timer()
print('time pool',start - end)
#print(result)
print()
start = timeit.default_timer()
for i in range(len(a)):
sum[i],diff[i] = sum_diff(a[i],b[i])
end = timeit.default_timer()
print('time sp',start - end)
# print(sum)
# print(diff)
time pool -2.431158052000683
time sp -0.30316245200810954