Centos7虚拟机配置MPI3.2

    xiaoxiao2021-04-17  31

    Centos7虚拟机配置MPI3.2

    主机1:   主机名:node1   IP:192.168.19.165   系统:centos7    用户名:centos   密码root

    主机2:   主机名:node2   IP:192.168.19.169   系统:centos7    用户名:centos   密码root

     

    *为了省事,以下操作都是以root用户进行的

     

    1.    安装mpich-3.2,hydra-3.2  (下载地址  http://www.mpich.org/downloads/)

    ./configure;  make; make install

     

    2.    在root下添加环境变量(方法很多,不唯一)

    [root@node1 ~]#vim.bashrc

    添加  export LD_LIBRARY_PATH=$PATH:/usr/local/lib/

    3.    改IP地址  设置->网络->ens33设置->IPv4

    地址(A)改为手动

    地址192.168.16.165

    网络掩码255.255.255.0

    网关 192.168.0.1

     

    4.    添加hosts文件

    [root@node1 ~]#vim hosts

    添加node1

    node2

        保存退出

     

    5.    关闭防火墙

    [root@node1 ~]#systemctl stopfirewalld.service     //暂时关闭防火墙

    [root@node1 ~]#systemctl disabledfirewalld.service     //永久关闭防火墙

     

    6.    联网安装openssh-askpass

    [root@node1 ~]#yum installopenssh-askpass

     

    7.    Root下设置ssh (   可参考http://1inux.blog.51cto.com/10037358/1638880  )

    Node1上设置

    [root@node1 ~]#ssh-keygen -trsa     //一路回车即可

    [root@node1~]#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.19.169  //此步要输入node2密码

    验证[root@node1 ~]# ssh root@192.168.19.169

    运行结果

    Last login: Thu Apr 13 21:18:06 2017 from node1

    [root@node2 ~]#

     

    Node2上设置

    [root@node2 ~]#ssh-keygen -trsa     //一路回车即可

    [root@node2~]#ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.19.165 //此步要输入node1密码

    验证[root@node2 ~]#ssh root@192.168.19.165

    运行结果

    Last login: Thu Apr 13 21:18:06 2017 from node1

    [root@node1 ~]#

     

    8.    运行测试程序(mpi自带的测试程序)

    [root@node1 ~]#mpiexec -f hosts -n 5 /home/centos/mpich-3.2/examples/cpi

    通过运行该命令测试是否正确安装mpich3。上述命令的结果是:

    Process 2 of 6 is on node1

    Process 5 of 6 is on node1

    Process 0 of 6 is on node2

    Process 3 of 6 is on node2

    Process 1 of 6 is on node3

    Process 4 of 6 is on node3

    pi is approximately 3.1415926544231243,Error is 0.0000000008333312

    wall clock time = 0.001908

     

    9.    Eclipse配置MPI

    项目->属性(properties)->C/C++ Build->Settings->GCC C++ Linker->Libraries

    Libraries(-l) 添加 mpich mpichcxx

    Libraries search pash(-L) 添加 /usr/local/lib

    编译运行生成Debug文件(目录/home/centos/workspace/MPI_test/Debug/MPI_test)

     

    10. 运行程序

    [root@node1 ~]# mpiexec -f hosts -n 3/home/centos/workspace/MPI_test/Debug/MPI_test

     

    11. 注意事项:

    * [root@node1 ~]#与[root@node1 centos]#, 输入#cd可进入[root@node1 ~]#

    * node1和node2上都必须有相应的程序代码,而且可执行程序在不同服务器上的位置要一样

    * mpi不会同步代码:node1里改代码不会影响到node2里的代码,而且代码不一样时能正常运行,

      若需要同步代码,需要在node1,node2里都改代码

     

    附:sftp文件传输命令(可将node1里改好的代码<文件夹MPI_test1>直接发送到node2)

    1.    建立连接

    [root@node1 ~]# sftp centos@192.168.19.169

    centos@192.168.19.169's password:

    Connected to 192.168.19.169.

     

    2.    在node2上相应目录下建立文件夹

    sftp> mkdir/home/centos/workspace/MPI_test1

     

    3.    发送文件夹

    sftp> put -r /home/centos/workspace/MPI_test1/home/centos/workspace

    *注意MPI_test1与/home之间有空格

    转载请注明原文地址: https://ju.6miu.com/read-673465.html

    最新回复(0)