为了加快速度,当然必须要多进程啦,Python可没有MATLAB里面的parfor

源代码

import multiprocessing
pool = multiprocessing.Pool() #默认能调用几个进程就用几个进程,也可以传入一个参数指定数目
result = {} #储存函数的返回值的

def time_consuming(dim,method):
    print(multiprocessing.current_process().name+' has start')
    pass
    

for method in methods:
    for dim in dims: #遍历所有的参数,按照自己的需求写即可,我是需要跑所有不同维度,不同方法下的时间损耗。
		result[(method,dim)]=pool.apply_async(time_consuming, (dim,method, ))
        #time_consuming是函数名
        #(dim,method, ) 是传入的参数
        #result 保存了这些进程地址,便于之后获取函数返回值
pool.close()# 关闭进程池,不再接收新的任务
pool.join()#等待所有进程运行完毕

for method in methods:
    for dim in dims:
        time_cost_result=result[(method,dim)].get() #这就可以再一个一个的获取结果了

主要是怎么把自己的代码封装到一个函数里,因为多进程只能一个函数一个函数的调用。