Xin*_*ong 6 mpi python-multiprocessing
我正在编写一个机器学习工具包来并行运行具有不同设置的算法(每个进程运行一个设置的算法)。我正在考虑使用 mpi4py 或 python 的内置多处理?
我正在考虑一些优点和缺点。
便于使用:
速度:
干净和简短的代码:
工作环境是我的目标是基本上在一台计算机或 GPU 服务器上运行代码。并不是真正针对在网络中的不同机器上运行(只有 MPI 可以做到)。
由于主要目标是进行机器学习,因此并行化并不是真的需要非常优化,我想要的关键目标是平衡简单、干净和快速维护代码库,但同时喜欢利用并行化的好处。
有了上述背景,是否建议使用多处理就足够了?或者是否有充分的理由使用 mpi4py ?
小智 -1
通过使用 mpi4py,您可以将任务划分为多个线程,但对于性能或内核数量有限的单台计算机,可用性将受到限制。但是,您可能会在训练期间发现它很方便。
mpi4py 构建在 MPI-1/2 规范之上,并提供严格遵循 MPI-2 C++ 绑定的面向对象的接口。
MPI for Python 为 Python 语言提供 MPI 绑定,允许程序员利用多处理器计算系统。MPI for Python 支持通用 Python 对象的便捷、基于 pickle 的通信,以及缓冲区提供程序对象的快速、接近 C 速度的直接数组数据通信