MPICH2(1.2.1) Debian6 安装配置参考

来源:互联网 发布:淘宝 账号 霸王条款 编辑:程序博客网 时间:2024/06/07 01:43

文章参考:http://www.xxlinux.com/linux/article/accidence/install/20070514/8413.html 《mpich2安装全过程》

由于安装的过程有些改变,故重新组织,以及加了很多自己的弯路,申明不一定能完全复制就能安装成功,因为我也不懂。


MPICH2的主要安括 SSH、NFS、MPICH2

其中NFS是很必要的,否则编译好的程序总是要拷贝几次,那是相当痛苦的。


以下的安装为普通用户,各node的用户名,密码都一样。



Debian下要安装ssh服务器,Debian安装的时候已经选择ssh服务器,故不需要再重新安装

node02上要安装客户端

$sudo apt-get install rsh-client


一、创建SSH信任连接


1、更改/etc/hosts文件-----〉这里要每个node都要修改
 $sudo vim /etc/hosts 打开hosts文件,更改如下:


127.0.0.1 localhost.localdomain localhost
node01的IP node01                                这是不能用原系统的 127.0.0.1  node01   否mpd启动的时候会有提示。

node02的IP node02

node03的IP node03



2、在node01生成SSH秘钥对.

 $ssh-keygen -t rsa 一路回车即可
 产生.ssh文件夹。
 $ls -a 查看是否有.ssh文件夹

3、进入.ssh目录
 $cd .ssh


4、生成authorized_keys文件

$cp  id_rsa.pub authorized_keys 

或者用 $cat   id_rsa.pub>authorized_keys 



5、退出到root目录
 $cd ..


6、建立本身的信任连接
 $ssh node01 按提示输入yes(三个字母要打全)

7、设置node02(node02的root目录下)

 $ssh-keygen -t rsa 生成.ssh文件夹

$scp   ~/.ssh/ id_rsa.pub    node02:~/.ssh/2.key


 $ssh node01 提示处输入yes回车,建立无密码ssh登录方式
原文把RSA的公钥和私钥都拷过来了,其实只要 id_rsa.pub就行了


再在node01将node02公钥合并

$cat   2.key >> authorized_keys 

再将此公钥分发给node2

$scp   ~/.ssh/authorized_keys    node02:~/.ssh/

如果有多个节点,也要合并其他节点的公钥。再分别在各个机子上ssh相互间登录下,输入一次密码。以后就不用再输入了,



8、确认2台机器的信任连接已建立
对每个节点执行:
 $ssh node01
 $ssh node02

 在提示处输入yes回车,最后确定无需输入密码并且没有任何提示信息即可登陆("Last login:时间日期"提示信息除外)


如果还需密码可以用命令:

$ssh-add id_rsa


这里本来已经安装好的,但是之前用vmware的虚拟机练手的时候就是不能用,总是出错,单机MPICH2的程序可以跑,指定node的时候也可以跑,

但是跨节点算的时候就是不行,最后安装了实际的Debian后,可以用,没有问题,原因不知。




二、安装MPICH2

Debian下我的node01服务器,早就安装MPICH2.所以采用apt方式安装

在node02上

$sudo apt-get install mpich2

我是安装PETSc所以实际安装的有:

$sudo apt-get install petsc-dev petsc3.1-doc libpetsc3.1  libpetsc3.1-dev  libpetsc3.1 libpetsc3.1-dbg

后来node02补充安装 openmpi, PS:因为我的主服务器上装了太多的东西,整个IDE,库都在上面,所以不敢随便调,只能需要什么给什么.

$sudo apt-get install openmpi-common openmpi*




1、解压缩
#tar -zxvf mpich2-1.0.1.tar.gz
或者 #gunzip -c mpich2-1.0.1.tar.gz|tar xf mpich2-1.0.1.tar


2、创建安装目录
#mkdir /usr/MPICH-instsll


3、进入mpich2解压目录
#cd mpich2-1.0.1


4、设置安装目录
#./configure --prefix=/usr/MPICH-install


5、编译
#make


6、安装
#make install


7、退出到root目录
#cd ..


8、通过编辑.bashrc文件修改环境变量
#vi .bashrc
修改后的.bashrc文件如下:


# .bashrc


# User specific aliases and functions
PATH="$PATH:/usr/MPICH-install/bin" 新增加的


#Source .bashrc




9、测试环境变量设置

$which mpd     Debian下mpich2的稳定版本是1.2.1而网上下的一般是1.2.5新版本下没有mpd,只是hydra,其实是更方便的东西,轻量级

$which mpicc                      
$which mpiexec
$which mpirun


10、修改/etc/mpd.conf文件,内容为secretword=myword
#vi /etc/mpd.conf

普通用户为

$vim  ~/.mpd.conf   是隐藏文件

加入 MPD_SECRETWORD=mypassword  一

设置文件读取权限和修改时间
$touch ~/.mpd.conf
$chmod 600 ~c/.mpd.conf


11、创建主机名称集合文件 ~/mpd.hosts
 $vim mpd.hosts


文件内容如下:
node01

node02




  三、测试


1、本地测试
 $mpd & 启动 
 $mpdtrace 观看启动机器
 $mpdallexit 退出     这个最好不要在node02等运算节点上运行,否则会出错、原因不知。


2、通过mpd.hosts运行集群系统
 $mpdboot -n number -f mpd.hosts number为要起动的机器个数
 $mpdtrace                可以看到node01和node02
 $mpdallexit




3、测试运行MPICH的例子程序
 $mpdboot -n 2 -f mpd.hosts     启动2台机器

 $mpiexec -n number /home/myname/NFSdir/cpi number为使用的进程数

也可以  $mpiexec -n 10 -H node01  -n 20 -H node02  /home/myname/NFSdir/cpi  这样指定各个节点的进程数

 $mpdallexit


4、如果测试不能通过,请进行第四步

网上传出问题比较多可能是防火墙。ps -A看看进程里有没有iptable进程就知道有没有开防火墙了,可以关,也可以设置防火墙。庆幸未安装,所以省了点事。



四、问题解决


1、通过mpdcheck获得一写帮助信息
 $mpdcheck -pc

2、查错
 $mpdcheck -l


3、通过mpd.hosts文件查错
 $mpdcheck -f mpd.hosts 如果无错误
 $mpdcheck -f mpd.hosts -ssh


4、如果上述无错误,可略过此步
对任意两台机器进行查错
m1: #mpdcheck -s 输出主机名host和端口port
m2: #mpdcheck -c host port


注意:以上四步都是在没有运行mpd的情况下进行的


5、mpd查错
 m1:$mpd -e & 返回使用的端口    在node01上运行

 m2: $mpd -h m1 -p echoed_port_m1 &     在node02或者其它普通节点上运行



五、NFS安装

本机上NFS也已经安装,不过还是查看一下比较好

node01服务器上

$apt-get install nfs-common nfs-kernel-server  portmap

node02普通节点上

$apt-get install nfs-common portmap


修改主机/etc/exports加入行

/home/myname/NFSdir node02(sync,rw,secure,no_root_squash)

然后重启NFS服务

$sudo /etc/init.d/nfs-kernel-server restart

$exportfs -rv    

输出NFS,这里原则上不应该有什么错误。


然后在node02上

$mkdir   /home/myname/NFSdir

$sudo mount -t nfs node01:/home/myname/NFSdir   /home/myname/NFSdir


这样应该就没什么问题了,网上说对NFS文件夹 $chown nobody.nogroup  /home/myname/NFSdir结果NFS不能写入

只能 $chmod a+w NFSdir来解决


好了,备注完了,还要调LAPACK和mpich2的问题,以上安装有些多余的部分,以后再来精简,希望能对人有用。