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

更新时间:2023-06-02 11:23:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

简要介绍linux下在Eclipse中对MPI编译环境的搭建。

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.localdomainlocalhost

192.168.19.165 node1

192.168.19.169 node2

(注意127.0.0.1 localhost.localdomainlocalhost一定不能缺,否则将可能导致之后 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

简要介绍linux下在Eclipse中对MPI编译环境的搭建。

#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 -o example C语言源代码

或#mpic++ -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

简要介绍linux下在Eclipse中对MPI编译环境的搭建。

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

/usr/local

简要介绍linux下在Eclipse中对MPI编译环境的搭建。

简要介绍linux下在Eclipse中对MPI编译环境的搭建。

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

简要介绍linux下在Eclipse中对MPI编译环境的搭建。

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

参考资料:

SSH设置:

/15798089_d.html

MPICH2配置:

/linux/article/accidence/install/20070514/8413.html MPI与Eclipse:

/cleverysm/archive/2007/06/06/1640290.aspx

一些MPI错误解决方法:

/xiaxiazls/archive/2009/09/08/4530423.aspx

本文来源:https://www.bwwdw.com/article/5rz1.html

Top