【发布时间】:2015-11-30 16:39:11
【问题描述】:
代码:
import multiprocessing as mp
import time
def seq(count):
print "runing seq"
start_time = time.time()
result = []
for i in range(count):
result.append(cube(i))
print "seq --- time:{0:.4f}".format(time.time() - start_time)
#print "seq --- time:{0:.4f}, result:{1}".format(time.time() - start_time, result)
def par(count):
print "runing par"
start_time = time.time()
result = mp.Pool(processes=2).map(cube,range(count))
print "par --- time:{0:.4f}".format(time.time() - start_time)
#print "par --- time:{0:.4f}, result:{1}".format(time.time() - start_time, result)
def cube(x):
return x*x*x
count = 4000000
seq(count)
par(count)
输出:
seq --- 时间:1.7011
标准 --- 时间:2.3112
我的 mac 有一个处理器,两个物理内核,每个物理内核有 2 个虚拟内核。所以,我认为它应该可以很好地并行运行以获得一些加速。然而,从输出来看,并行版本比顺序版本慢。为什么会这样?
规格:
【问题讨论】:
标签: python parallel-processing multiprocessing python-multiprocessing