首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mpi4py还是Python中的多处理?

mpi4py还是Python中的多处理?
EN

Stack Overflow用户
提问于 2018-06-10 19:38:42
回答 1查看 3.8K关注 0票数 10

我正在编写一个机器学习工具包,以并行运行不同设置的算法(每个进程运行一个设置的算法)。我想要么使用mpi4py,要么使用python的内置多处理?

我正在考虑一些利弊。

  1. 使用方便:
代码语言:javascript
复制
- mpi4py: It seems more concepts to learn and a bit more tricks to make it work well
- multiprocessing: quite easy and clean API

  1. 速度:
代码语言:javascript
复制
- mpi4py: people say it is more low level, so I am expect it can be faster than python multiprocessing ?
- multiprocessing: compared with mpi4py, much slower ?

  1. 干净和简短的代码:
代码语言:javascript
复制
- mpi4py: seems more code to write
- multiprocessing: preferred, easy to use API

工作背景是,我的目标基本上是在一台计算机或GPU服务器上运行代码。并不是真正针对在网络中的不同机器上运行(只有MPI才能做到这一点)。

由于主要目标是进行机器学习,所以并行化并不需要非常优化,所以我想要达到的关键目标是平衡容易、干净和快速地维护代码库,但同时也希望利用并行化的好处。

在上面描述的背景下,是否建议只使用多处理就足够了?还是有很强的理由使用mpi4py?

EN

回答 1

Stack Overflow用户

发布于 2019-09-20 10:49:42

通过使用mpi4py,您可以将任务划分为多个线程,但在性能或核心数量有限的一台计算机上,可用性将受到限制。然而,你可能会发现它在训练中很方便。

mpi4py是在MPI-1/2规范的基础上构建的,并提供了一个与MPI-2 C++绑定密切相关的面向对象接口。

MPI for Python为Python语言提供MPI绑定,允许程序员利用多个处理器计算系统。MPI for Python支持通用Python对象的方便的、基于泡菜的通信,以及缓冲区提供者对象的快速、接近C-速度的直接数组数据通信。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50787392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档