MPI的Python绑定
项目描述
本包为 消息传递接口 (MPI) 标准提供了 Python 绑定。它基于 MPI 规范实现,并公开了一个基于标准 MPI-2 C++ 绑定的 API。
特性
本包支持以下功能:
方便地通信任何 可序列化 的 Python 对象
点对点(发送 & 接收)
集体操作(广播、散列 & 收集、规约)
快速通信暴露 Python 缓冲区接口 的 Python 对象(NumPy 数组、内置的字节/字符串/数组对象)
点对点(阻塞/非阻塞/持久发送 & 接收)
集体操作(广播、块/向量散列 & 收集、规约)
进程组和通信域
创建新的内部/外部通信器
笛卡尔 & 图拓扑
并行输入/输出
读写
阻塞/非阻塞 & 集体/非集体
单个/共享文件指针 & 显式偏移量
动态进程管理
创建 & 创建多个
接受/连接
名称发布 & 查找
单方面操作
远程内存访问(存储、检索、累加)
被动目标同步(启动/完成 & 后置/等待)
主动目标同步(锁定 & 解锁)
安装
使用 pip
您可以使用 pip 从其源分布包(位于 PyPI)安装最新的 mpi4py 版本。
$ python -m pip install mpi4py
您也可以使用以下方法安装开发版本:
$ python -m pip install git+https://github.com/mpi4py/mpi4py
或
$ python -m pip install https://github.com/mpi4py/mpi4py/tarball/master
使用 conda
conda-forge 社区提供了一组不断增长的软件库的二进制包,这些库是围绕多平台 conda 包管理器构建的。conda-forge 提供了四种 MPI 实现:Open MPI(Linux 和 macOS)、MPICH(Linux 和 macOS)、Intel MPI(Linux 和 Windows)以及 Microsoft MPI(Windows)。您可以使用 conda 包管理器安装 mpi4py 和您首选的 MPI 实现
要使用 MPICH,请执行:
$ conda install -c conda-forge mpi4py mpich
要使用 Open MPI,请执行:
$ conda install -c conda-forge mpi4py openmpi
要使用 Intel MPI,请执行:
$ conda install -c conda-forge mpi4py impi_rt
要使用 Microsoft MPI,请执行:
$ conda install -c conda-forge mpi4py msmpi
MPICH 和其许多衍生品都是 ABI 兼容的。您可以通过提供包规范 mpich=X.Y.*=external_*(其中 X 和 Y 是主版本号和次版本号)来请求 conda 包管理器使用系统提供的 MPICH(或衍生品)库。类似地,您也可以提供包规范 openmpi=X.Y.*=external_* 来使用系统提供的 Open MPI 库。
conda-forge 上的 openmpi 包内置了 CUDA 支持,但默认情况下是禁用的。要启用它,请遵循 conda install 期间概述的说明。此外,一旦安装了 ucx 包,也提供了 UCX 支持。
Linux
在Fedora Linux系统(以及使用EPEL软件仓库的RHEL及其衍生版本)上,您可以使用系统包管理器使用dnf和mpich软件包安装二进制软件包
使用dnf和mpich软件包
$ sudo dnf install python3-mpi4py-mpich
使用dnf和openmpi软件包
$ sudo dnf install python3-mpi4py-openmpi
请记住,为您的选择MPI实现加载正确的MPI模块
对于mpich软件包,请
$ module load mpi/mpich-$(arch) $ python -c "from mpi4py import MPI"
对于openmpi软件包,请
$ module load mpi/openmpi-$(arch) $ python -c "from mpi4py import MPI"
在Ubuntu Linux和Debian Linux系统上,可以使用系统包管理器安装二进制软件包
$ sudo apt install python3-mpi4py
请注意,在Ubuntu/Debian系统上,mpi4py软件包使用Open MPI。要使用MPICH,请安装libmpich-dev和python3-dev软件包(以及其他所有必需的开发工具)。之后,使用pip从源代码安装mpi4py。
macOS
macOS用户可以使用Homebrew软件包管理器安装mpi4py
$ brew install mpi4py
请注意,Homebrew的mpi4py软件包使用Open MPI。或者,安装mpich软件包,然后使用pip从源代码安装mpi4py。
Windows
Windows用户可以使用pip从Python包索引(PyPI)上提供的二进制wheels安装mpi4py
$ python -m pip install mpi4py
PyPI上可用的Windows wheels专门设计为与Intel MPI或Microsoft MPI运行时一起工作,因此需要单独安装这些软件包之一。
Intel MPI正在积极开发中,并支持最新的MPI标准。Intel MPI可以使用pip安装(请参阅PyPI上的impi-rt软件包),因此可以轻松地在Python环境中启动并运行。Intel MPI还可以作为Windows的Intel HPC Toolkit的一部分进行系统级安装,或者通过独立的在线/离线安装程序进行安装。
引用
如果Python的MPI对导致学术出版物的一个项目具有重要意义,请通过引用该项目来确认这一事实。
M. Rogowski, S. Aseeri, D. Keyes, and L. Dalcin, mpi4py.futures: MPI-Based Asynchronous Task Execution for Python, IEEE Transactions on Parallel and Distributed Systems, 34(2):611-622, 2023. https://doi.org/10.1109/TPDS.2022.3225481
L. Dalcin and Y.-L. L. Fang, mpi4py: Status Update After 12 Years of Development, Computing in Science & Engineering, 23(4):47-54, 2021. https://doi.org/10.1109/MCSE.2021.3083216
L. Dalcin, P. Kler, R. Paz, and A. Cosimo, Parallel Distributed Computing using Python, Advances in Water Resources, 34(9):1124-1139, 2011. https://doi.org/10.1016/j.advwatres.2011.04.013
L. Dalcin, R. Paz, M. Storti, and J. D’Elia, MPI for Python: performance improvements and MPI-2 extensions, Journal of Parallel and Distributed Computing, 68(5):655-662, 2008. https://doi.org/10.1016/j.jpdc.2007.09.005
李达辛,R.帕兹,M.斯托蒂,《Python的MPI》,并行与分布式计算杂志,第65卷第9期:1108-1115,2005年。https://doi.org/10.1016/j.jpdc.2005.03.010
项目详情
mpi4py-4.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 820d31ae184d69c17d9b5d55b1d524d56be47d2e6cb318ea4f3e7007feff2ccc |
|
MD5 | e97ed4ddf3b59a05729097ab66a46b03 |
|
BLAKE2b-256 | a0c7b0b4fdcc67a2020c1c762f3e289ad9b164ec806b0a8100678890abb1c6b7 |
mpi4py-4.0.0-pp310-pypy310_pp73-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9a7a81c58215a4bb22435b38755f577d4c25d25435144801d9a4ac1cb4ea1857 |
|
MD5 | 9ffc54b5bf5a371b4a57e057fc4f81ef |
|
BLAKE2b-256 | b3673038b8d6792f226a3af44cc6606bbb3a1bb92a408a912bdc347662f92e06 |
mpi4py-4.0.0-pp39-pypy39_pp73-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ae25e4180d0a41eaab12d0c35c8e4324631de03925208d1bdbdf48399c0a922f |
|
MD5 | 37f4509fc3f15b2dcb575b4dcec952da |
|
BLAKE2b-256 | 6af3e2ac593725ebd2341dc2b0da7069864fd2779969320a00ab3afdc1dc218c |
mpi4py-4.0.0-pp38-pypy38_pp73-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8186de3b98b07596fbc807f447ce973647d19b611463a6b84017e716db5c5bce |
|
MD5 | 1cfef953b7038d22ea6ce17657d71755 |
|
BLAKE2b-256 | e48ce0c01e80cb785fbdb93d685a59f5b0a0eb1d470ebc1f9be0334678fad195 |
mpi4py-4.0.0-pp37-pypy37_pp73-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0e6b917e30095150add80fa4875c1ed2769badfc76487f7f0da566d24a56bdb1 |
|
MD5 | 531b84c05464cf9e0624e08299fd3215 |
|
BLAKE2b-256 | eec279cd95134525030c0b3f60bb269baab3630884a5718f13a0c47af7a2f4c6 |
mpi4py-4.0.0-cp312-cp312-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 92b66a24fc932a1ee96e4830d71ca07de2835529df9f6b26044703b83cd86800 |
|
MD5 | 57370c55e5300b6f2723b372c3267548 |
|
BLAKE2b-256 | 42f765ba19bb88e94775b136fb559d02c4243ba776812ba9113b6fb770a808a3 |
mpi4py-4.0.0-cp311-cp311-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 03ecab5c3699ebd4a8a88acafb72d00c1cc7d3bfc466f0b9343b426d210cddb8 |
|
MD5 | 5e1d669a3bc5a2f397b9e29512fa005e |
|
BLAKE2b-256 | cccfbf6ce6991fc5699b8dc72003d2913893412a581a3dac9617f0f2bca1e6bf |