在Unbuntu 16.04上安装openmpi和mpi4py
想重现开源项目https://github.com/tomgoldstein/loss-landscape,因此需要安装openmpi和mpi4py。该开源项目所需的numpy、h5py、matplotlib和scipy,均可在pycharm中安装,openmpi和mpi4py则需单独安装。(注:后来发现在pycharm里无法直接运行mpi4py命令,外网上有比较高阶的方法,但看了半天还是不知咋整,于是转而在系统控制台下运行——会提示缺少了哪些package,根据提示,用sudo pip install xxxx逐个安装就好。如果中间出现了一些小问题,那么把这些小问题放到搜索引擎里去查询,也能得到简单的解决方案)。
这里先放一个运行了mpi4py命令后的效果:
下载openmpi
从www.open-mpi.org/software/ompi/v4.0下载openmpi-4.0.5.tar.gz
解压openmpi-4.0.5.tar.gz,进入openmpi-4.0.5目录
安装openmpi
./configure
sudo make all install
添加库共享路径
sudo gedit /etc/profile
在profile文件的最后,加上一行(根据自己本机上openmpi的安装路径来写):
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/openmpi
使该配置文件生效:
source /etc/profile
进行测试
cd openmpi-4.0.5/examples
make
mpirun -np 4 hello_c
结果在make时报错:
mpicc: error while loading shared libraries: libopen-pal.so.4: cannot open shared object file:No such file or directory
于是在home下执行apt-file search libopen-pal.so.4
由于不曾安装过apt-file,系统提示安装。还需要先把apt-get给update了。直接apt-get update后运行apt-file search libopen-pal.so.4还是报错。尝试了以下步骤后成功:
add-apt-repository main
add-apt-repository universe
add-apt-repository restricted
add-apt-repository multiverse
apt-get update
apt-get install apt-file
apt-file search libopen-pal.so.4
再次进行测试,即可成功。其中mpirun -np 4 hello_c的数字4,表示进程数为4。
安装mpi4py
从https://pypi.tuna.tsinghua.edu.cn/simple/mpi4py/下载mpi4py-3.0.3.tar.gz,然后解压安装:
tar -xvzf mpi4py-3.0.3.tar.gz
cd mpi4py-3.0.3
python setup.py build
python setup.py install
测试mpi4py
在demo目录下运行helloworld.py来测试 mpi4py 是否安装好及能否正常使用:
cd demo
用下面的命令运行该程序:
mpiexec -n 3 python helloworld.py
显示: