Linux下MPI的环境配置还真是有些复杂,通过查资料和自己摸索,终于搞定了,现总结如下,以免以后忘记。(只作备忘之用,无通用性)
(一)安装MPICH2
安装包可去MPICH2的主页下载,我下载的是MPICH2-1.2.1.tar.gz,放在/home/hadoop下
1、解压缩 tar -xzvf mpich2-1.2.1.tar.gz 得到mpich2-1.2.1文件夹
2、进入mpich2-1.2.1:cd mpich2-1.2.1
3、安装:
(1) ./configure --prefix=/home/hadoop/mpich2
如果提示缺少什么软件,就sudo apt-get install 所缺软件名
(2) make
(3) make install
4、安装完毕后,配置环境变量
export PATH=/home/hadoop/mpich2/bin:$PATH
测试:
which mpd
which mpicc
which mpirun
正确安装的结果为 /home/hadoop/mpich2/bin/ +(mpd, mpicc, mpirun )
(二)单机测试
1、运行程序之前配置进程管理器MPD
cd $HOME
touch .mpd.conf
chmod 600 .mpd.conf
vi .mpd.conf 加入一行:secretword=[自定的密码]
2、启动MPD
MPD &
3、编译程序
mpicc program_name.c -o program_name.out
4、运行
mpirun -n 4 ./program_name.out
5、结束MPD
mpdallexit
(三)多机测试
1、建立ssh信任
sudo vi /etc/hosts
加入参与运算的主机IP,可以为每个IP起别名,如
196.168.1.123 node1
返回主目录
ssh-keygen -t rsa
生成.ssh文件夹,其中,id_rsa为私钥,id_rsa.pub为公钥
scp ~/.ssh/id_rsa.pub hadoop@59.67.33.163:.ssh/id_rsa.pub0
(复制到另一方需重命名,防止覆盖原来机器的公钥)
然后ssh到slave一方,将公钥加到authorized_keys中:
cat .ssh/id_ras.pub0 >> .ssh/authorized_keys
之后便可 ssh hadoop@59.67.33.163 连接到服务器,无需密码
设置/etc/hosts,~/mpd.hosts无需再说
之后就可用mpdboot命令在集群上跑程序了。
注:当配置有问题的时候,有几个方法查看,首先是mpdcheck。mpdcheck -pc可获得一些本机的信息。mpdcheck -l差错。mpdcheck -f mpd.hosts可以查看文件错误。其次,在mpdboot过程中可以加入 -d -v 可以debug和查看过程
转载于:https://blog.51cto.com/eexcalibur/531550