最近处理fMRI数据时由于采用了的算法需要随机成千上万次,因此所需的计算量相当大, 单线程处理的话一般要一天,python原生是不支持多线程的,因此考虑采用python的多进程。其实编写python多进程的程序还是比较简单。下面实在自己的电脑上开启了4进程。
任务管理器里面CPU显示已经占用了100%。
准备开始coding...
首先导入相应的多进程的包:
import multiprocessing
下面就可以开始编写多就进程的程序了:
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count())
pool_outputs = pool.map(func, var_list)
pool.close()
pool.join()
第一行代码表示获取CPU核心的数量,第二行的map函数的第一个参数是多进程需要调用的函数, var_list是参数,是一个list类型的。pool_outputs 是多进程处理后返回的处理结果。