Linux下安装MPICH

Linuxmpich2安装

1:从MPICH2官网下载源代码,[http://www.mcs.anl.gov/research/projects/mpich2](http://www.mcs.anl.gov/research/projects/mpich2) /downloads/tarballs/1.0.8/mpich2-1.0.8.tar.gz目前最新的是1.0.8,当然如果你使用的windows平台也可以下载[http://www.mcs.anl.gov/research](http://www.mcs.anl.gov/research) /projects/mpich2/downloads/tarballs/1.0.8/mpich2-1.0.8-win-ia32.msi,以及[http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-1.0.8-windevguide.pdf](http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-1.0.8-windevguide.pdf)这是windows平台下的开发文档。

你也可以登录[http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads](http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads),查看你需要的mpich版本,根据自己需要下载即可。

2、然后,将mpich2-1.0.8.tar.gz解压到/home/mpi/mpich2/src中,

执行下列命令:cd /home/mpi/mpich2/src

./configure -prefix=/home/mpi/mpich2(配置安装位置为 /home/mpi/mpich2)

如果没有问题,再运行下面

make

make install

稍等就大功造成了。

3、修改机器的~/.bash_profile(Ubuntu修改~/.bashrc)文件,在最后加上下面的语句

export MPI_ROOT=/home/mpi/mpich2

export PATH=$MPI_ROOT/bin:$PATH

export MANPATH=$MPI_ROOT/man:$MANPATH





4、编辑下面的文件,并存储为hello.c

`#``include````"mpi.h"``

``#``include````<``stdio``.``h``>``

``#``include````<``math``.``h``>``



``int``main``(``int``argc``,````char````**``argv``)``

``{``

``int``myid``,``numprocs``;``

``int``namelen``;``

``char``processor_name``[``MPI_MAX_PROCESSOR_NAME``];``



MPI_Init
``(&``argc``,````&``argv``);``

MPI_Comm_rank
``(``MPI_COMM_WORLD``,````&``myid``);``

MPI_Comm_size
``(``MPI_COMM_WORLD``,````&``numprocs``);``

MPI_Get_processor_name
``(``processor_name``,````&``namelen``);``

``fprintf````(``stderr``,````"Hello World! Process %d of %d on %s\n"``,``myid``,``numprocs``,``processor_name``);``

MPI_Finalize
``();``

``return``0``;``

``}`

5、接着编译一下

mpicc -o hello hello.c

C程序用mpicc编译,C++程序用mpicxx编译)

6MPI应用一个管理器来管理运行MPI程序,这个管理器就是mpd,但是在正式开始运行mpd前还需要一个基于安全考虑的配置文件.mpd.conf,这个文件是要放在运行程序的用户的home目录下,本例子中就是/home/mpi/.mpd.conf,而且这个文件只能由这个用户读写,创建文件的命令是,

cd $HOME

touch .mpd.conf

chmod 600 .mpd.conf

然后在.mpd.conf文件中(如果没有这个文件需要创建一个)写入这么一行,secretword=******可以是任意的值,如果配置集群的话,这个值在参与计算的计算机上必需完全一致。如果是root用户的话,这个文件应该是/etc/mpd.conf

7、启动并行环境mpdboot

第一次使用这个命令时,可能会出现错误,执行以下代码

cd


touch .mpd.conf //
这是修改mpd配置文件的时间戳

chmod 600 .mpd.conf //
这是修改配置文件的权限



运行程序:mpirun -np 4 ./hello

-np
是指用几个进程模拟运行,这里用4

输出结果为: (下面结果每台机器可能都不一样,是正常的)

Hello World! Process 1 of 4 on jack-laptop

Hello World! Process 3 of 4 on jack-laptop

Hello World! Process 2 of 4 on jack-laptop

Hello World! Process 0 of 4 on jack-laptop

想停止并行运行环境

mpdcleanup

8、如在第七步出现类似下面的报错

mpdroot: perror msg: Connection refused

mpdroot: cannot connect to local mpd at: /tmp/mpd2.console_root

probable cause: no mpd daemon on this machine

possible cause: unix socket /tmp/mpd2.console_root has been removed

请打开另外一个终端,并执行mpd命令,同时不要关闭这个终端,在执行第7步即可。

9、 如果你的os是Ubuntu的话,安装过程中如果提示缺少什么,首先安装这个东西之后再按照这个步骤即可。

原文链接: https://www.cnblogs.com/liyanwei/archive/2010/04/26/1721142.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/10391

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月6日 下午11:39
下一篇 2023年2月6日 下午11:39

相关推荐