zoukankan      html  css  js  c++  java
  • MPICH2在两台Ubuntu上安装

    本文在经过大量的实验终于不负众望成功的在两台Ubuntu 12.04上部署MPI的一个小型集群,MPICH2所用版本为mpich2-1.4.1,下载地址:http://www.mcs.anl.gov/research/projects/mpich2staging/goodell/downloads/index.php?s=downloads

    1.安装准备

    1.1 首先肯定是需要安装GCC和G++编译器,这个直接apt-get就OK了;

    sudo apt-get g++ gfortran

    1.2 设置主机名

    先在/etc/hosts中删除原来的hostname,然后 vi /etc/hostname改成你想要的,注意必须顶行写。然后使用hostname命令来重新得到hostname, logout一下再login就会改掉。

    这里我用的是node1-ubuntu和node2-ubuntu。

    1.3 修改hosts文件,修改如下:

     192.168.1.133    node1-ubuntu server
     192.168.1.135    node2-ubuntu

    1.4 配置自动ssh登录

    这里主要是要各个机器之间能无密码访问,主要用到的就是SSH,因此需要一些设置。

    首先,我们需要导出各个节点的公钥和私钥:

    $ ssh-keygen -t rsa 

    在运行过程中,会提示你输入这个输入那个,不用管那么多,直接回车就完了。等运行结束后,进入.ssh目录,你会看到公钥和私钥文件;

    $ cd ~/.ssh 
    $ ls  
    id_rsa   id_rsa.pub  

    其中id_rsa就是私钥,id_rsa.pub就是公钥,现在我们需要把各个节点上的公钥都集中发送到一个节点上,来制作授权文件(authorized_keys).

    注意:在两台机器必须安装ssh(sudo apt-get install ssh openssh-server)而且必须设置root密码(sudo passwd root),才能远程登录

    $ scp ~/.ssh/id_rsa.pub node1-ubuntu:~/.ssh/1.pub

    在将node2-ubuntu拷贝到node1-ubuntu后进行如下处理:

    $ cp ~/.ssh/id_rsa.pub authorized_keys  
    $ cat ~/.ssh/1.pub >> authorized_keys  

    在node1-ubuntu上制作好的authorized_keys拷贝到node2-ubuntu上:(node1-ubuntu使用scp)

    $ scp ~/.ssh/authorized_keys node2-ubuntu:~/.ssh/

    要想让这两台机器无密码登录,所以我们需要更改一下必要的文件的权限(所有节点都要更改):其实只要保证authorized_keys的文件权限为600或者644

    $ chmod 755 ~  
    $ chmod 755 ~/.ssh  
    $ chmod 600 ~/.ssh/authorized_keys  
    $ chmod 600 ~/.ssh/id_rsa  
    $ chmod 644 ~/.ssh/id_rsa.pub  

    至此,SSH配置就完成了。下面检验一下:

    在一个主机上面SSH另一个主机:

    $ ssh node1-ubuntu

    2.安装MPICH2

    2.1  首先将下载的文件解压,下载的文件在当前用户目录里面的“下载”目录里面,我直接解压到当前目录:

    $ tar xvfz mpich2-1.4.1.tar.gz  

    2.2 安装官方文档配置的,可以查看解压后的README文档参考:由于是bash,因此选择以下命令,prefix指示安装路径,USERNAME就是当前用户的用户名,由于这里我不用fortran,因此加上参数(--disable-f77 and --disable-fc),

    在此之前当然要建立安装MPICH的路径,也就是:

    $ mkdir mpich2

    运行shell程序configure对mpich进行一些配置,使用hydra作为pm

    $ ./configure --prefix=/home/<USERNAME>/mpich2 --with-pm=hydra --disable-f77 --disable-fc 2>&1 | tee c.txt  

    而且在之前的安装过程中,我发现如果不禁止fortran,安装会出问题,会导致MPICH2安装不完全而出错,是因为没有安装fortran编译器,如果使用C/C++的话,这里建议禁用fortran。

    接下来,编译和安装:

    $ make 2>&1 | tee m.txt  
    $ make install 2>&1 | tee mi.txt  

    安装完成后,会有如下情况:

    至此,MPICH2安装完成。

    2.3 设置进程的配置环境

    这里所说的配置文件主要是进程管理的配置文件,hydra是默认的进程管理,smpd只支持MPICH2的windows版本。这段配置的详细情况见官方安装文档(章节:Installing and Managing Process Managers):http://www.mcs.anl.gov/research/projects/mpich2staging/goodell/documentation/files/mpich2-1.5-installguide.pdf

    首先在/etc下面建立目录:

    $ sudo mkdir /etc/hydra

    建立hosts文件:

    $ sudo vim /etc/hydra/hosts  

    文件的结构如下:
    # Some Comments
    MainNode:8 # other comments
    Node1:2
    Node2:2

    每行中由冒号(:)分隔的前半部分表示节点,可以使用节点名也可以使用IP地址,貌似不区分大小写;后半部分表示可用的CPU数量。注释用“#”前导。根据你的实际情况撰写hosts文件。

    编辑如下:

    node1-ubuntu:1  # 192.168.1.133  
    node2-ubuntu:1  #192.168.1.135 

    然后我们需要告诉hydra hosts文件的位置,hydra通过环境变量进行配置,因此我们需要修改.bashrc文件:

    $ vim ~/.bashrc  
    在文件最后加入如下:
    export HYDRA_HOST_FILE=/etc/hydra/hosts  

    至此,设置完毕进程环境。

    2.4 设置环境变量

    这里设置环境变量主要是将MPICH的安装目录加到系统环境变量中,这里我在/etc/environment中加入对应的路径:

    用vim编辑器打开/etc/environment:

    $ sudo vim /etc/environment

    输入密码之后,将下面语句添加到最后一行:

    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/awy/mpich2/bin"

    3.测试:

    测试MPICH源码包里example下的cpi,然后在主节点下运行:

    mpiexec -np 2 ./Download/mpich2-1.4.1/example/cpi

  • 相关阅读:
    Windows关于文件句柄数的限制
    python 的未来5-10年的就业方向
    想着给要做的软件起一个名儿~
    sql server 特殊sql
    字节序之大小端_Intelx86是小端_网络传输是大端
    维基百科Wikipedia镜像网站列表
    NodeJS开启GZIP功能
    SqlServer2008 跨服务器同步数据
    Asp.net中的ViewState用法
    JAVA Netty入门Demo实例代码(自写测试可用)实现客户端服务器端互传数据
  • 原文地址:https://www.cnblogs.com/awy-blog/p/3295581.html
Copyright © 2011-2022 走看看