python--并行计算

python--并行计算,第1张

python能够应用并行计算的模块有多个multiprocessing、pathos等。其中multiprocessing模块应用的较多,但对于数据挖掘场景来说,pathos模块更实用,尤其允许输入多个可变参数非常简单实用。

本文总结整理了常见的并行计算场景,编写parallel.py模块,主要利用pathos模块实现,可以实现单变量并行、多变量并行、并行嵌套等功能。通过tdqm模块增加了进度条,可以显示计算进度等信息,通过functools模块中的partial函数将静态参数冻结,以适应并行框架。

parallel.py

函数parallel的参数定义顺序需要注意: 必选参数--任意位置参数--默认参数--任意关键字参数

定义另一个parallel_main.py模块,用来展示各个场景下并行计算结果。

parallel_main.py

parallel函数使用注意点:

Python的线程池可以有效地控制系统中并发线程的数量。

当程序中需要创建许多生存期较短的线程执行运算任务时,首先考虑使用线程池。线程池任务启动时会创建出最大线程数参数 max_workers 指定数量的空闲线程,程序只要将执行函数提交给线程池,线程池就会启动一个空闲的线程来执行它。当该函数执行结束后,该线程并不会死亡,而是再次返回到线程池中变成空闲状态,等待执行下一个函数。配合使用 with 关键字实现任务队列完成后自动关闭线程池释放资源。

用multiprocessing类。

例如,进程process

multiprocessing.Process(target=None, args=()) target: 可以被run()调用的函数,简单来说就是进程中运行的函数 args: 是target的参数process的方法: start(): 开始启动进程,在创建process之后执行 join([timeout]):阻塞目前父进程,直到调用join方法的进程执行完或超时(timeout),才继续执行父进程 terminate():终止进程,不论进程有没有执行完,尽量少用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8096918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存