• 【转】Linux下MPI并行环境与Eclipse配置全过程。Linux + mpich2 + Eclipse


    Linux下MPI并行环境与Eclipse配置全过程。Linux + mpich2 + Eclipse

    我是Linux超级新手,文中难免有错误的地方,望指正和多多包容

    硬件情况:2台主机
    主机1: 主机名:node1  IP:192.168.19.165   操作系统:CentOS 5.2  用户:root 密码:root
    主机2: 主机名:node2  IP:192.168.19.169   操作系统:CentOS 5.2  用户:root 密码:root
    (这里的两台主机上的用户名和密码设置成一样的,好像不一样的话将会影响之后mpi程序的执行)

    为了省事,以下操作都是以root用户进行的
    1、===================配置host文件=========================
    在node1和node2上
    #vi /etc/hosts   打开hosts文件,修改如下:
    127.0.0.1 localhost.localdomain localhost
    192.168.19.165 node1
    192.168.19.169 node2
    (注意127.0.0.1 localhost.localdomain localhost一定不能缺,否则将可能导致之后 mpiexec运行出错)

    2、====================设置SSH信任连接====================
    在node1上生成SSH秘钥对.
    #ssh-keygen -t rsa    yes,一路回车
    #cat  /root/.ssh/id_rsa.pub | root@192.168.19.169 "cat - >> root/.ssh/authorized_keys" 将密钥等信息拷贝至node2中,该过程需要输入node2上root用户的密码
    #ssh root@node2   登陆node2
    #exit
    #ssh root@node2   第二次登陆node2,无需再输入密码了
    #exit
    #ssh root@node1   登陆自身一次

    在node2上执行同样的操作,只不过目标换成node1了
    #ssh-keygen -t rsa    yes,一路回车
    #cat  /root/.ssh/id_rsa.pub | root@192.168.19.165 "cat - >> root/.ssh/authorized_keys"
    #ssh root@node1 
    #exit
    #ssh root@node1  
    #exit
    #ssh root@node2  
    (以上使用的ssh,如果系统安装的ssh2,设置过程将与上有所不同)

    3、=====================安装mpich2======================
    在node1和node2上:
    #tar -zxvf mpich2-1.0.1.tar.gz  解压缩
    #cd mpich2-1.0.1
    #./configure     --prefix==安装路径,指定安装路径时可以使用#./configure --prefix=???,不带参数时默认安装路径为/usr/loacl,我用的是默认安装路径
    #make
    #make install  安装完成
    (为了避免未知错误,两台机器的mpich2安装位置最好一样)

    设置环境变量:
    #cd /etc/
    #vi profile   编辑profile文件
    添加   PATH="$PATH:/usr/local/bin"
    #source profile
    #which mpd    测试环境变量

    创建并修改/etc/mpd.conf文件
    #vi /etc/mpd.conf
    内容为
    secretword=myword
    #touch /etc/mpd.conf     
    #chmod 600 /etc/mpd.conf     (设置文件读取权限和修改时间,这两步好像不能省)

    创建主机名称集合文件/root/mpd.hosts
    #vi /root/mpd.hosts
    文件内容如下:
    node1
    node2

    4、=====================简单的测试=========================
    在node1上
    #mpd &    启动
    #mpdboot -n 2 -f mpd.hosts   启动2台机器(启动的机器数不能超过集群中的主机数,这里只有2台)
    #mpdtrace 观看启动机器
    #mpiexec -n 4 /usr/local/examples/cpi     number为使用的进程数,运行mpi自带的测试程序(不一定存在)
    #mpdallexit   退出

    mpi程序的编译
    #mpicc example.cc -o example          C语言源代码
    或#mpic++ example.cc -o example       C++语言源代码
    或#mpif77 example.f -o example         Fortran语言源代码

    编译后可以执行:
    #mpdboot -n 2 -f mpd.hosts
    #scp /tmp/example  root@node2:/tmp/example  (/tmp/为刚才编译的程序所在文件夹)
    (需要并行运算的程序在两台主机上所存放的路径必须相同,文件名也必须相同我这里都存放在/tmp/文件夹下)
    #mpiexec -n 4 /tmp/example

    5、===================在Eclipse中开发MPI程序=================
    在新建的工程上点右键 选择Properties


    添加include路径,我的mpich2安装在/usr/local




    添加lib库路径,添加mpich,mpichxx,pthread   注:这是在linux下,与windows环境下需添加的库不同


    OK,Eclipse加MPI开发环境配置完成

    参考资料:
    SSH设置:
    http://stevenz.blog.hexun.com/15798089_d.html
    MPICH2配置:
    http://www.xxlinux.com/linux/article/accidence/install/20070514/8413.html
    MPI与Eclipse:
    http://blog.csdn.net/cleverysm/archive/2007/06/06/1640290.aspx
    一些MPI错误解决方法:
    http://blog.csdn.net/xiaxiazls/archive/2009/09/08/4530423.aspx
  • 相关阅读:
    一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS,NGINX支持多个带SSL证书的网站同时部署在同一台服务器上
    SVN报错:Node remains in conflict显示冲突的解决办法
    阿里云上部署了zabbix,突然无法收到报警邮件的解决办法
    npm安装socket.io时报错的解决方法(npm WARN enoent ENOENT: no such file or directory, open '/usr/local/nodejs/bin/package.json')
    winscp以命令行方式同步服务器数据到PC机磁盘上
    在阿里云上无法使用mailx发送邮件的解决办法,验证可用。
    编译geth报错的解决方法 make: *** [geth] 错误 1
    ZABBIX 3.0 监控MongoDB性能【OK】
    print命令
    软件开发规范
  • 原文地址:https://www.cnblogs.com/HOUST/p/3029472.html
Copyright © 2020-2023  润新知