待补充
parallelpythonParallelpython是一个提供并行计算的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小节的内容。本文主要介绍分布式/集群方式的使用方法:
- 节点:承担计算的节点运行
ppserver.py -a -d
,并确保每个节点的调试信息总出现其它节点的广播消息 - 客户端:导入pp库
import pp
- 客户端: 创建ppserver
job_server = pp.Server(ppservers=("*",))
- 客户端:拆分计算任务
- 客户端:提交任务
f1 = job_server.submit(func1, args1, depfuncs1, modules1)
- 客户端:获取结果
r1 = f1()
按照官网创建集群部分的指南,不同机器启动./ppserver.py -a -d
,每个节点调试信息中会输出接受到的其它节点的信息。
然后客户端启动任务程序:python sum_primes_autodetect.py
,
客户端将任务分配到已经发现的各个节点进行计算。所有任务结束后,最终输出任务执行的统计信息。
同时做了以下试验来验证分布式并行计算的有效性,任务、试验环境和结果如图片所示:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)