安装mpi4py
mpi4py是一个Python库,它提供了与MPI(Message Passing Interface)兼容的接口,使得Python程序能够利用MPI实现并行计算。mpi4py 的核心是基于MPI标准的C/C++实现,它能够在高性能计算环境下进行高效的并行处理。mpi4py的主要特点:
- 兼容性强:mpi4py 兼容 MPI-1 和 MPI-2 标准,支持广泛的 MPI 实现,包括 MPICH、Open MPI 等。
- 简单易用:mpi4py 提供了直观的 API,用户可以通过简单的函数调用实现复杂的并行计算。
- 高性能:由于 mpi4py 底层使用 C 语言实现,能够充分利用 MPI 的性能优势。
安装mpi4py需要mpi支持,编译安装mpich或者openmpi以提供支持,个人更倾向于mpich。
apt-get install mpich
yum install mpich
源码安装mpich:https://fakerth.blog.csdn.net/article/details/135157375。如下所示,安装mpi4py失败的原因基本都是因为系统环境中没有mpi。
gcc -pthread -B /root/archiconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/root/archiconda3/include/python3.7m -c _configtest.c -o _configtest.o_configtest.c:2:10: fatal error: mpi.h: No such file or directory#include <mpi.h>^~~~~~~compilation terminated.failure.removing: _configtest.c _configtest.oerror: Cannot compile MPI programs. Check your configuration!!!
安装mpich:
tar -zvxf mpich-4.1.2.tar.gz
cd mpich-4.1.2
./configure
make -j 10
sudo make install
安装成功后直接安装mpi4py即可。
如果没有root权限:
tar -zvxf mpich-4.1.2.tar.gz
cd mpich-4.1.2
./configure --prefix=/home/mpich-install
make -j 10
sudo make install
安装mpi4py时添加mpi的环境变量:
export PATH=/home/mpich-install/bin/:$PATH
export LD_LIBRARY_PATH=/home/mpich-install/lib/:$LD_LIBRARY_PATH
export CPATH=/home/mpich-install/include/:$CPATH
fakerth@fakerth-IdeaCentre-GeekPro-17IRB:~$ pip install mpi4py
Defaulting to user installation because normal site-packages is not writeable
Collecting mpi4pyDownloading mpi4py-3.1.6.tar.gz (2.4 MB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4/2.4 MB 1.7 MB/s eta 0:00:00Installing build dependencies ... doneGetting requirements to build wheel ... donePreparing metadata (pyproject.toml) ... done
Building wheels for collected packages: mpi4pyBuilding wheel for mpi4py (pyproject.toml) ... doneCreated wheel for mpi4py: filename=mpi4py-3.1.6-cp310-cp310-linux_x86_64.whl size=2751721 sha256=4e979b26a6f6d72cf358fbb12a3b4c7baee2d33e1abcba7df12c2f04bcbf21f9Stored in directory: /home/fakerth/.cache/pip/wheels/4c/ca/89/8fc1fb1c620afca13bb41c630b1f948bbf446e0aaa4b762e10
Successfully built mpi4py
Installing collected packages: mpi4py
Successfully installed mpi4py-3.1.6
一个简单的mpi程序测试:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/3141221a253b44a198a577e88cadf5d5.png)
from mpi4py import MPIcomm = MPI.COMM_WORLD
rank = comm.Get_rank()
size = comm.Get_size()if rank == 0:data = {'key1': [1, 2, 3], 'key2': ('a', 'b', 'c')}comm.send(data, dest=1, tag=11)print(f"Process {rank} sent data: {data}")
elif rank == 1:data = comm.recv(source=0, tag=11)print(f"Process {rank} received data: {data}")
mpirun -n 2 python3 testmpi4py.py
安装dlio_profiler_py
DLIO Profiler for Python(dlio_profiler_py)是一个用于分析深度学习 I/O 工作负载的 Python 包。当前的 I/O 分析器(例如 Darshan 和 Recorder)不允许执行应用程序级和 I/O 级分析,这使得分析 AI 和工作流等工作负载变得困难。它提供了分析诸如 TensorFlow 和 PyTorch 等深度学习框架的 I/O 模式的实用工具。该分析器有助于理解这些框架的 I/O 行为,这对于优化性能特别重要,特别是在大规模分布式训练场景中。
pip install dlio_profiler_py
在ubuntu上是可以直接安装成功的,在redhat上却需要安装hwloc。hwloc下载:https://github.com/open-mpi/hwloc
编译安装:
autoreconf
./configure --prefix=/home/hwloc-install
make && make install
添加环境变量:
export PATH=/home/hwloc-install/bin/:$PATH
export LD_LIBRARY_PATH=/home/hwloc-install/lib/:$LD_LIBRARY_PATH
fatal error: hwloc.h: No such file or directory
解决方法:
export CPATH=/home/hwloc-install/include/:$CPATH
note:/usr/bin/ld: cannot find -lhwloc
解决方法:
export LIBRARY_PATH=/home/hwloc-install/lib/:$LIBRARY_PATH
$LIBRARY_PATH 是一个环境变量,用于指定编译器在链接阶段查找库文件(如 .so 或 .a 文件)的目录路径。设置这个环境变量可以告诉编译器在哪里找到你需要链接的库文件。