Python 分布式计算

Python 分布式计算,第1张

Python分布式计算 ipyparallel

待补充

parallelpython

Parallelpython是一个提供并行计算的python库,多处理器、多核和集群提供并行计算的可能,易于使用、安装和与其它python软件集成。是用纯python编写的开源、跨平台模块,其官网是https://www.parallelpython.com/。

特点
  • 基本不依赖其它库,安装、部署比较简单,只需安装six库(手机termux也能部署)
  • 对python版本没有强依赖性,python3所有版本理论上都可行(目前已经测试了3.7,3.10)
  • 集成、扩展、二次开发比较容易
  • 可主动发现server和client,无需各种配置,开箱即用

官网的python3版本好像存在bug,ppserver以自发现方式创建后,互相却无法发现。经过debug修复后,现在已经上传到了github ParallelPython仓库中。
同时添加了一个采用节点主动发现的计算质数求和的例程:

pp-1.6.4.4/examples/sum_primes_autodetect.py

安装
python setup.py install
使用方法

具体使用方法根据不同情况可查看官网文档Documentation小节的内容。本文主要介绍分布式/集群方式的使用方法:

  1. 节点:承担计算的节点运行ppserver.py -a -d,并确保每个节点的调试信息总出现其它节点的广播消息
  2. 客户端:导入pp库import pp
  3. 客户端: 创建ppserverjob_server = pp.Server(ppservers=("*",))
  4. 客户端:拆分计算任务
  5. 客户端:提交任务f1 = job_server.submit(func1, args1, depfuncs1, modules1)
  6. 客户端:获取结果r1 = f1()
例子

按照官网创建集群部分的指南,不同机器启动./ppserver.py -a -d,每个节点调试信息中会输出接受到的其它节点的信息。

然后客户端启动任务程序:python sum_primes_autodetect.py
客户端将任务分配到已经发现的各个节点进行计算。所有任务结束后,最终输出任务执行的统计信息。

同时做了以下试验来验证分布式并行计算的有效性,任务、试验环境和结果如图片所示:

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

原文地址: https://www.outofmemory.cn/langs/798170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存