sudo vim /etc/profile
输入密码之后,将下面语句添加到最后一行:export PATH=/home/luo/mpich2-install/bin:$PATH
保存强制退出。最后可以用一下命令看看mpicc和mpiexec位置:
which mpicc which mpiexec
这里会显示mpicc和mpiexec的位置,也就是在MPICH的安装牡蛎中的bin文件夹中。至此,环境变量设置完成。
4.添加配置文件
这里所说的配置文件主要是进程管理的配置文件,由于Ubuntu 11.10的进程管理从mpd改为了hydra,因此导致我之前一直是无法配置成功,还在苦苦寻找mpd为何没有安装,这一点其实在官方给的文档中有说明,不过自己当时因为看到大片英文就头疼,所以并没有仔细看,导致浪费了好长时间,这个教训要吸取。
首先在/etc下面建立目录:
sudo mkdir /etc/hydra
用vim编辑器建立hosts文件:sudo vim /etc/hydra/hosts
文件的结构如下:
# Some Comments
MainNode:8 # other comments
Node1:2
Node2:2
每行中由冒号(:)分隔的前半部分表示节点,可以使用节点名也可以使用IP地址,貌似不区分大小写;后半部分表示可用的CPU数量。注释用“#”前导。根据你的实际情况撰写hosts文件。这里我是将我自己的两台计算机名加入其中,可能在此之前需要设置/etc/hosts中IP与机器名的对应关系:
192.168.1.105 luo-UBUNTU 192.168.1.106 luo-VirtualBox
上面就是我自己的/etc/hosts文件中加入的信息。在/etc/hydra/hosts中加入:
luo-UBUNTU:1 # 192.168.1.105 luo-VirtualBox:1 #192.168.1.106
然后我们需要告诉hydra hosts文件的位置,hydra通过环境变量进行配置,因此我们需要修改.bashrc文件:$ vim ~/.bashrc
在其中加入如下行:
export HYDRA_HOST_FILE=/etc/hydra/hosts
5.配置SSH
这里主要是要各个机器之间能无密码访问,主要用到的就是SSH,因此需要一些设置。
首先,我们需要导出各个节点的公钥和私钥:
$ ssh-keygen -t rsa
在运行过程中,会提示你输入这个输入那个,不用管那么多,直接回车就完了。等运行结束后,进入.ssh目录,你会看到公钥和私钥文件:$ cd ~/.ssh $ ls id_rsa id_rsa.pub
(可能还有其他乱七八糟的东西)其中id_rsa就是私钥,id_rsa.pub就是公钥,现在我们需要把各个节点上的公钥都集中发送到一个节点上,来制作授权文件(authorized_keys):
$ scp id_rsa.pub User@MainNode:/path/to/yours/id_rsa.pub-X
其中有色字体需要你根据实际情况进行调整,这里我们讲所有的公钥发送到了MainNode,然后我们在MainNode上用这些公钥合成一个authorized_keys:
$ cp ~/.ssh/id_rsa.pub authorized_keys $ cat /path/to/yours/id_rsa.pub-X >> authorized_keys
其中第2条语句需要反复多次,讲所有的公钥都放入authorized_keys中,这样就做好了authorized_keys文件。然后我们分别把他拷到各个机器的.ssh目录中:$ cp authorized_keys ~/.ssh/ $ scp authorized_keys User@SomeNode:/home/User/.ssh/
如果你现在试一下ssh很可能发现他们仍旧不好用,别急,我的话还没有说完呢。这个东西对权限的要求很严格,所以我们需要更改一下必要的文件的权限(所有节点都要更改):$ chmod 755 ~ $ chmod 755 ~/.ssh $ chmod 600 ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/id_rsa $ chmod 644 ~/.ssh/id_rsa.pub
至此,SSH配置就完成了。下面检验一下: