我有以下代码,我想将任务分散到多个进程中。经过实验,我意识到增加CPU内核的数量会对执行时间产生负面影响
我的机器上有8个磁芯
情况1:不使用多处理
案例2:使用ncores
=4进行多处理
情况3:使用ncores
=7进行多处理
以下代码:
import time
import multiprocessing as mp
def _fun(i, args1=10):
#Sort matrix W
#For loop 1 on matrix M
#For loop 2 on matrix Y
return value
def run1(ncores=mp.cpu_count()):
ncores = ncores - 4 # use 4 and 1 to have ncores = 4 and 7
_f = functools.partial(_fun,args1=x)
with mp.Pool(ncores) as pool:
result = pool.map(_f, range(n))
return [t for t in result]
start = time.time()
list1= run1()
end = time.time()
print( 'time {0} minutes '.format((end - start)/60))
我的问题是,使用多处理的最佳实践是什么?据我所知,我们使用cpu核的越多,速度就越快
目前没有回答
相关问题 更多 >
编程相关推荐