应用python进行数据挖掘或计算时,往往需要遍历多种参数进行数据建模,而单次的建模或计算有时候非常耗时,这时候可以利用python的并行计算功能,加快计算速度。
python能够应用并行计算的模块有多个multiprocessing、pathos等。其中multiprocessing模块应用的较多,但对于数据挖掘场景来说,pathos模块更实用,尤其允许输入多个可变参数非常简单实用。
1.环境&软件
- win10 64bit
- Python 3.7
2.功能实现
本文总结整理了常见的并行计算场景,编写parallel.py模块,主要利用pathos模块实现,可以实现单变量并行、多变量并行、并行嵌套等功能。通过tdqm模块增加了进度条,可以显示计算进度等信息,通过functools模块中的partial函数将静态参数冻结,以适应并行框架。
parallel.py
import
函数parallel的参数定义顺序需要注意:必选参数--任意位置参数--默认参数--任意关键字参数。
3.结果展示
定义另一个parallel_main.py模块,用来展示各个场景下并行计算结果。
parallel_main.py
from
运行parallel_main.py文件,结果如下:
4.总结&归纳
parallel函数使用注意点:
(1)函数至少输入一个被并行函数,和可迭代序列参数
(2)要显示计算过程,设置show=True
(3)被并行函数的依赖模块需要导入,否则报NameError
(4)嵌套并行需要导入parallel模块,且子并行需要设置为多线程模式(thread=True)
http://weixin.qq.com/r/mShLU4rECNd3rc4w932L (二维码自动识别)