zoukankan      html  css  js  c++  java
  • Linux下mpi环境配置与执行步骤(Ubuntu为例)

    转载注明出处:

    http://blog.csdn.net/bendanban/article/details/9136755

    以两台计算机为例,将这两台计算机应用于MPI运行环境。

    第一步:在两台机器上安装Linux 操作系统

    我安装的是ubuntu 12.04,主机名随便你自己取,我命名两台机器为sinco和cosin。


    第二步:为两台机器设置固定的IP

    当然,我这里假设两台机器属于同一个局域网中。

    我设置sinco的IP为192.168.0.2

                cosin的IP为192.168.0.3


    第三步:设置通过主机名登录(需要ROOT)

    编辑sinco上的/etc/hosts 文件,文件的前几行修改成如下形式

    127.0.0.1     localhost
    192.168.0.2   sinco
    192.168.0.3   cosin
    


    编辑cosin上的/etc/hosts 文件,文件的前几行也他哦功能样修改成如上形式


    第四步:设置无密码登录

    我默认两台机器上已经安装了ssh服务器,如果不能ssh登录,安装一下ssh就行了。别忘了安装就行。

    在sinco上,你的用户目录下进入 .ssh 目录,如果没有这个目录,就先创建他,进入之后,执行下面的命令:

    执行:

    ssh-keygen -t dsa


    在.ssh目录下会产生两个文件,id_dsa  id_dsa.pub。

    执行:

     cat id_dsa.pub >> authorized_keys 



    把id_dsa.pub和authorized_keys一起拷贝到cosin机器上的.ssh目录下,如果你也想从cosin机器上无需密码登录回sinco机器上,只要将id_dsa一起拷贝到cosin的.ssh目录下就行了。


    实验一下前四步是否成功,在sinco上执行ssh cosin,如果没有密码就登录上去了,说明成功了。如果不行,你就需要在看看是不是做错哪个步骤了。


    第五步:编译和安装MPICH

    我用的版本是MPICH-3.0.4 , 下载后,解压,安装配置如下:

    ./configure --enable-fc --enable-cxx --enable-romio --enable-threads=multiple --prefix=${HOME}/soft/mpich2/3.0.4 --with-pm=mpd
    make
    make install
    


    两台机器都要这样安装MPICH


    第六步:设置环境变量

    由于我安装到了非标准目录下,所以要设置下环境变量。

    我用的是bash shell,编辑~/.bashrc

    在文件的末尾,添加如下几行

    export PATH=${HOME}/soft/mpich2/3.0.4/bin:${PATH}
    export LD_LIBRARY_PATH=${HOME}/soft/mpich2/3.0.4/lib:${LD_LIBRARY_PATH}
    export MANPATH=${HOME}/soft/mpich2/3.0.4/share/man:${MANPATH}


    两台机器的.bashrc都要这样设置


    第七步:设置进程管理器

    我用的是mpd,这一点在mpich编译的时候就指定了。

    在两台机器上,编辑${HOME}/mpd.hosts

    添加如下两行:

    sinco:4
    cosin:4


    4指的是CPU的个数,我假设两台机器都有四个CPU。


    在两台机器上编辑${HOME}/.mpd.conf文件,添加一行:

    MPD_SECRETWORD=mypasswd

    第八步:启动与测试进程管理器

    我在sinco启动进程管理器,

    mpdboot -n 2


    -n 2 指定启动两个节点。

    测试一下:

    mpdtrace


    如果输出两个主机名,说明测试成功。


    测试下mpiexec

    mpiexec -n 2 ls -l


    看下输出结果是否正确。


    第九步:执行自己的MPI程序

    我现在用的机器是两台独立的机器,他们没有共享硬盘空间,所以,我只能从一个机器拷贝到另一个机器执行程序,例如我在$HOME目录下有个mpi01.exe,想让他在两个机器上运行下。可以这样做。

    将这个程序拷贝到另一个机器上的$HOME目录下。

    然后执行:

    mpiexec -wdir $HOME -n 2 ./mpi01.exe


  • 相关阅读:
    Python 里的下划线
    浅谈TCP拆包粘包问题
    40 张图带你搞懂 TCP 和 UDP
    头条面试官问:如何保证网络传输的可靠性?这就很尴尬了
    TCP协议灵魂12问,面试总会用得到(建议收藏)
    TCP网络握手
    HTTP1.0、HTTP1.1和HTTP2.0的区别
    面试官:这波HTTP究极combo,你顶得住吗?_chuhe1989的博客-CSDN博客
    腾讯面试官:说一下Android网络知识和框架?
    网络通信必备基础之Http协议&TCP/IP协议(二)
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3146831.html
Copyright © 2011-2022 走看看