近期由于使用遗传算法,计算时间过长,观察CPU运行情况,发现基本上处于一人干活,全家围观的场景,便想着研究一下多进程并行计算,简单总结一下。
【电脑简述】
电脑类型:台式机电脑
操作系统:Windows10
CPU硬件:双路Intel至强处理器、24核48线程、主频2.8Ghz
程序运行环境:Python3.7.2、Jupyter notebook
【错误的并行打开方式】
from multiprocessing.pool import ThreadPool
from scoop import futures
from concurrent.futures import ThreadPoolExecutor
import time
def fib(n):
if n<= 2:
return 1
return fib(n-1) + fib(n-2)
#(一)
begin = time.time()
returnValues=[]
for i in range(36):
returnValues.append(fib(i))
end = time.time()
print ('a:',end-begin)
#(二)
begin = time.time()
returnValues = list(map(fib, range(36)))
end = time.time()
print ('b:',end-begin)
#(三