如何通过Python(linux)中的多处理来获得速度,这是输的



我搜索使用所有内核的方法。但我所尝试的,只是减少狂欢。

我尝试了以下操作:

from joblib import Parallel, delayed
import multiprocessing
from time import time
import numpy as np
inputs = range(1000)
def processInput(i):
return i * i

使用多处理

num_cores = multiprocessing.cpu_count()
start=time()
results = Parallel(n_jobs=num_cores)(delayed(processInput)(i) for i in inputs)
print 'multiproc time ', time()-start

无需多处理

start=time()
results =[]
for i in inputs:
results.append(processInput(i))
print 'simple time ', time()-start

并获取输出:

multiproc time 0.14687204361
simple time 0.000839948654175

这是多线程/多处理的经典问题。每当你想要并行处理某些东西时,你应该确保由于并行性而节省的时间大于管理并行进程所需的时间。

尝试增加输入大小。然后,您将看到并行性的影响。

相关内容

  • 没有找到相关文章

最新更新