安装和使用 mpi4py

  • Post author:
  • Post category:其他



本文从本人简书博客同步过来



上一篇

中我们简要介绍了 mpi4py 及其所提供的并行编程功能,本文介绍如何安装和使用 mpi4py。

安装依赖

要正确地安装和使用 mpi4py,你需要先安装和设置好以下软件:

  • 一个 MPI 实现软件,最好能支持 MPI-3 标准,并且最好是动态编译的。比较常用的 MPI 实现软件有 OpenMPI,MPICH 等。
  • Python 2.7,Python 3.3+。要写 Python 的并行程序,Python 自然是必不可少的。

安装 mpi4py

当你已经安装好以上依赖的软件后,就可以安装 mpi4py 了,不过在这之前你需要

mpicc

在你的程序搜索路径上,可以简单地通过以下命令查看:

$ which mpicc

如果该命令输出对应的

mpicc

执行路径,你就可以进行下面的安装步骤了,但是如果没有输出,你需要把安装的 MPI 软件的 bin 目录添加到

PATH

环境变量,lib 目录添加到

LD_LIBRARY_PATH

环境变量,以使

mpicc

可以被搜索到。

使用 pip 安装

使用 pip 安装 mpi4py 非常简单,如果你有 root 权限,直接在终端中输入下面的命令就行了:

$ pip install mpi4py

如果没有 root 权限,你可以安装 mpi4py 到自己的 $HOME 目录下,这样只能供你自己使用:

$ pip install mpi4py --user

保证安装的可执行文件路径 ~/.local/bin 添加到了

PATH

环境变量中,库文件路径 ~/.local/lib 添加到了

LD_LIBRARY_PATH

环境变量中。

从源文件安装



https://pypi.python.org/pypi/mpi4py

上下载 mpi4py 安装包,然后解压安装包:

$ tar -xvzf mpi4py-X.Y.Z.tar.gz
$ cd mpi4py-X.Y.Z

编译安装包:

$ python setup.py build

编译完成后就可以安装了:

$ python setup.py install

或者

$ python setup.py install --user

测试 mpi4py 是否安装正确

现在可以写一段简单的程序来测试 mpi4py 是否安装好及能否正常使用:

# mpi_helloworld.py

from mpi4py import MPI


comm = MPI.COMM_WORLD
size = comm.Get_size()
rank = comm.Get_rank()
node_name = MPI.Get_processor_name() # get the name of the node

print 'Hello world from process %d at %s.' % (rank, node_name)

运行 mpi4py 程序

用下面的命令运行一个 Python 写的 MPI 程序:

$ mpiexec -n 3 python mpi_helloworld.py
Hello world from process 2 at node1.
Hello world from process 0 at node1.
Hello world from process 1 at node1.

也可以用一种较老的方式:

$ mpirun -np 3 python mpi_helloworld.py
Hello world from process 2 at node1.
Hello world from process 0 at node1.
Hello world from process 1 at node1.

其中 -n 或者 -np 指定使用多少个 MPI 进程来执行这个程序。

上面的命令会在单个节点(单台机器)上发起3个 MPI 进程来并行执行

mpi_helloworld.py

,如果要在多个节点(多台机器)上并行执行程序,可以用下面的命令:

$ mpiexec -n 3 -host node1,node2,node3 python mpi_helloworld.py
Hello world from process 1 at node2.
Hello world from process 2 at node3.
Hello world from process 0 at node1.

其中 -host (或者 -H)后面指定所要使用的节点,这些节点以逗号分隔。如果节点很多也可以用选项 -hostfile 或者 -machinefile 指定一个文件,在这个文件中写入你需要使用的计算节点。更多的运行选项可以通过下面的命令获得:

$ mpiexec --help



下一篇

中我们将通过几个简单的例子来展示怎么使用 mpi4py 来进行并行编程,以使读者能够快速地上手使用 mpi4py。



版权声明:本文为ZuoShifan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。