首页后端开发Python如何使用Python的multiprocessing进行分布式计算

如何使用Python的multiprocessing进行分布式计算

时间2023-06-04 03:52:01发布访客分类Python浏览1082
导读:如何使用Python的multiprocessing进行分布式计算?由于GIL的存在,python中的多线程其实并不是真正意义上的多线程,前面一篇文章Python中的多线程与多进程那些事 中提到I/O密集型使用多线程并发执行提高效率、计算密...

如何使用Python的multiprocessing进行分布式计算?

由于GIL的存在,python中的多线程其实并不是真正意义上的多线程,前面一篇文章Python中的多线程与多进程那些事 中提到I/O密集型使用多线程并发执行提高效率、计算密集型使用多进程并行执行提高效率。

针对计算密集型的任务,我们如何通过多进程提高效率?

Window下的multiprocessing分布式计算

基于multiprocessing、queue等模块实现简易的分布式计算框架。服务节点负责任务的派发和任务结果的采集,工作节点分布在同一电脑的不同进程,或者其他电脑上,负责任务执行和结果反馈,服务节点与工作节点通过Queue实现数据共享(任务下发、结果反馈)。

其中包含Task、MaterWork、SlaveWork三个模块,大体介绍及源码如下:

Task模块

根据任务需求,将自己的任务单独封装在task模块中。

MaterWork(主节点/服务节点)

负责任务派发和结果采集,主从节点通过Queue实现任务、结果共享。代码中注释中已介绍的较清楚,这里不做赘述。

SlaveWork(从节点/计算节点)使用说明

3.1 在Task.py 添加任务函数。

3.2 调整主从节点任务派发具体函数、次数或参数。一般情况分发次数等于任务数,即分发任务的参数。

# 添加待处理任务,实际应用过程添加的任务可以为函数的参数

for i in range(0, 10):

task = Task(i).computer()

print 'Dispatch job: { 0} '.format(i)

dispatched_jobs.put(task)

3.3 启动主节点

3.3 启动从节点

将从节点计算模块发送至不同电脑,启动从节点即实现分布式计算,即N个从节点消费服务节点分发任务,并返回任务执行状态、结果。

3.4 启动从节点后,可以在主节点运行界面,看到任务完成情况。

若对你有帮助,点赞支持一下。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何使用Python的multiprocessing进行分布式计算
本文地址: https://pptw.com/jishu/60567.html
python中tem函数用法 python数据分析工具

游客 回复需填写必要信息