fedora20上搭建MPI集群
2014-12-01 19:30
204 查看
因为计算需要,打算在几台fedora系统的服务器上搭建MPI集群,但是网上很多的搭建资料比较旧,所以在这里记录下我的搭建过程,希望给大家一点参考。
配置服务器,使它们可以相互识别
(1) 设置IP,更改主机名为node1,node2,node3,node4,如图所示2-1所示:
以四台pc为例,为了方便,分别更改了四台机器的主机名为node1,node2,node3,node4,以第一台为例:得网络配置
(2)hostname node1 临时更改主机名,使得在当前系统马上实现。
(3)vim /etc/sysconfig/network 永久更改主机名,使得下次启动系统时使用
编辑内容为(最后一行就是要改的主机名):
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=node1
(4)更改/etc/hosts文件
#vi /etc/hosts 打开hosts文件,更改如下:
127.0.0.1 localhost.localdomain localhost
192.168.0.164 node1
192.168.0.145 node2
192.168.0.151 node3
192.168.0.118 node4
#ssh-keygen -t dsa 产生.ssh文件,
#ls -a 查看是否有.ssh文件夹
(2)进入.ssh目录
#cd .ssh
(3)生成authorized_keys文件
#mv id_rsa.pub authorized_keys
(4)建立本身的信任连接
#ssh node1 按提示输入yes
(5)分别更改其他节点的hostname,/etc/sysconfig/network
(6)将生成authorized_keys文件scp给其他的节点
#scp -r ~/.ssh node2:/root/ 拷贝node1上的.ssh文件夹scp给node2
#scp /etc/hosts node2:/etc/ 拷贝node1上的hosts文件scp到node2上
设置node3,node4的方法与node2相同
(7)确认四台机器的信任连接已建立
对每个节点执行:
#ssh node1
#ssh node2
#ssh node3
#ssh node4
在提示处输入yes回车,最后确定无需输入密码并且没有任何提示信息即可登陆("Last login:时间日期"提示信息除外)
1.yum install gcc
2.yum install gcc-c++
3.yum install gcc-gfortran
(有人说需要 yum install compat-gcc-34-g77,但是如果只安装这个就会在下面的编译中出现问题,Fortran77与Fortran90不兼容错误,但是只需要安装gfortran就可以了,因为gfortran可以编译Fortran77和Fortran90)
下面正式安装MPICH2
(1)到MPICH官方网站下载源代码包,解压缩
#tar -zxvf mpich3-1-3.tar.gz
(2)进入mpich2解压目录
#cd mpich3-1-3
(3)编译并且指定安装目录
#./configure --prefix=/usr/local/mpi
(如果编译不通过,请仔细检查错误信息,确保依赖的包都下载安装成功)
(4)编译
#make
(5)安装
#make install
(6)进入hydra目录,安装hydra
注意新版的MPICH用的是hydra而不是mpd,网上很多帖子教如何不用hydra而用mpd,但其实hydra的安装是非常简单的,不需要绕远路去装mpd
#cd src/pm/hydra
#./configure --prefix=/usr/local/mpi
#make && make install
(除了目录名不一样,跟mpd一样只需要简单的编译就好了)
(7)退出到root目录
#cd
(8)配置hydra
配置hydra让他能够正常工作。首先hydra需要一个hosts文件,需要告诉hydra都有那些节点可用,每个节点都有几个CPU。我们在/etc下建立一个hydra目录,然后建立一个hosts文件(当然也可以建在别的地方):
$ sudo mkdir /etc/hydra
$ sudo vi /etc/hydra/hosts
文件的结构如下:
# Some Comments
MainNode:8 # other comments
Node1:2
Node2:2
每行中由冒号(:)分隔的前半部分表示节点,可以使用节点名也可以使用IP地址,貌似不区分大小写;后半部分表示可用的CPU数量。注释用“#”前导。根据你的实际情况撰写hosts文件。
(9)通过编辑.bashrc文件修改环境变量,还有,我们需要告诉hydra hosts文件的位置
#vim .bashrc
在.bashrc文件添加几句话
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
export PATH="/usr/local/mpi/bin:$PATH" #新增加的
export HYDRA_HOST_FILE="/etc/hydra/hosts" #新增加的,为hydra建立寻找路径
#Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
(10)测试环境变量设置
#which mpicc
#which mpiexec
#which mpirun
(没有mpd了,所以不用测试)
大功告成!至此MPI环境的搭建就结束了,下面我们来测试一下
在软件的安装包里有圆周率计算的原代码icpi.c,先编译成可执行文件
#cd /usr/local/mpich/install/examples/
mpicc cpi.c -o cpi
然后再执行
mpirun -n 4 ./cpi
-n指定了有几个进程,./别少加,它是指在当前路径下的意思
这下放心了,心里还有点小激动,确实是可以运行了,现在可以写自己的MPI程序了!
配置服务器,使它们可以相互识别
(1) 设置IP,更改主机名为node1,node2,node3,node4,如图所示2-1所示:
Pc | 主机名 | IP |
节点1 | Node1 | 192.168.0.164 |
节点2 | Node2 | 192.168.0.145 |
节点3 | Node3 | 192.168.0.151 |
节点4 | Node4 | 192.168.0.118 |
(2)hostname node1 临时更改主机名,使得在当前系统马上实现。
(3)vim /etc/sysconfig/network 永久更改主机名,使得下次启动系统时使用
编辑内容为(最后一行就是要改的主机名):
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=node1
(4)更改/etc/hosts文件
#vi /etc/hosts 打开hosts文件,更改如下:
127.0.0.1 localhost.localdomain localhost
192.168.0.164 node1
192.168.0.145 node2
192.168.0.151 node3
192.168.0.118 node4
创建SSH信任连接(在root目录下)
(1)在station1生成SSH秘钥对#ssh-keygen -t dsa 产生.ssh文件,
#ls -a 查看是否有.ssh文件夹
(2)进入.ssh目录
#cd .ssh
(3)生成authorized_keys文件
#mv id_rsa.pub authorized_keys
(4)建立本身的信任连接
#ssh node1 按提示输入yes
(5)分别更改其他节点的hostname,/etc/sysconfig/network
(6)将生成authorized_keys文件scp给其他的节点
#scp -r ~/.ssh node2:/root/ 拷贝node1上的.ssh文件夹scp给node2
#scp /etc/hosts node2:/etc/ 拷贝node1上的hosts文件scp到node2上
设置node3,node4的方法与node2相同
(7)确认四台机器的信任连接已建立
对每个节点执行:
#ssh node1
#ssh node2
#ssh node3
#ssh node4
在提示处输入yes回车,最后确定无需输入密码并且没有任何提示信息即可登陆("Last login:时间日期"提示信息除外)
安装MPICH2
在下载安装MPICH之前,先确定计算机上已经安装gcc,g++,以及Fertran,以fedora为例,安装步骤如下:1.yum install gcc
2.yum install gcc-c++
3.yum install gcc-gfortran
(有人说需要 yum install compat-gcc-34-g77,但是如果只安装这个就会在下面的编译中出现问题,Fortran77与Fortran90不兼容错误,但是只需要安装gfortran就可以了,因为gfortran可以编译Fortran77和Fortran90)
下面正式安装MPICH2
(1)到MPICH官方网站下载源代码包,解压缩
#tar -zxvf mpich3-1-3.tar.gz
(2)进入mpich2解压目录
#cd mpich3-1-3
(3)编译并且指定安装目录
#./configure --prefix=/usr/local/mpi
(如果编译不通过,请仔细检查错误信息,确保依赖的包都下载安装成功)
(4)编译
#make
(5)安装
#make install
(6)进入hydra目录,安装hydra
注意新版的MPICH用的是hydra而不是mpd,网上很多帖子教如何不用hydra而用mpd,但其实hydra的安装是非常简单的,不需要绕远路去装mpd
#cd src/pm/hydra
#./configure --prefix=/usr/local/mpi
#make && make install
(除了目录名不一样,跟mpd一样只需要简单的编译就好了)
(7)退出到root目录
#cd
(8)配置hydra
配置hydra让他能够正常工作。首先hydra需要一个hosts文件,需要告诉hydra都有那些节点可用,每个节点都有几个CPU。我们在/etc下建立一个hydra目录,然后建立一个hosts文件(当然也可以建在别的地方):
$ sudo mkdir /etc/hydra
$ sudo vi /etc/hydra/hosts
文件的结构如下:
# Some Comments
MainNode:8 # other comments
Node1:2
Node2:2
每行中由冒号(:)分隔的前半部分表示节点,可以使用节点名也可以使用IP地址,貌似不区分大小写;后半部分表示可用的CPU数量。注释用“#”前导。根据你的实际情况撰写hosts文件。
(9)通过编辑.bashrc文件修改环境变量,还有,我们需要告诉hydra hosts文件的位置
#vim .bashrc
在.bashrc文件添加几句话
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
export PATH="/usr/local/mpi/bin:$PATH" #新增加的
export HYDRA_HOST_FILE="/etc/hydra/hosts" #新增加的,为hydra建立寻找路径
#Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
(10)测试环境变量设置
#which mpicc
#which mpiexec
#which mpirun
(没有mpd了,所以不用测试)
大功告成!至此MPI环境的搭建就结束了,下面我们来测试一下
测试
测试运行MPICH的圆周率的程序在软件的安装包里有圆周率计算的原代码icpi.c,先编译成可执行文件
#cd /usr/local/mpich/install/examples/
mpicc cpi.c -o cpi
然后再执行
mpirun -n 4 ./cpi
-n指定了有几个进程,./别少加,它是指在当前路径下的意思
这下放心了,心里还有点小激动,确实是可以运行了,现在可以写自己的MPI程序了!
相关文章推荐
- Fedora20搭建伪Hadoop集群,运行Wordcount程序
- windows环境下MPI集群搭建
- 阿里云搭建基于MatlabMPI的集群(五):ssh免密码访问
- docker搭建linux集群,搭建mpi环境,并使用MTT benchmark测试集群性能
- J1800N-D2H主板升级bios,安装Fedora20,并搭建开发环境
- 如何在fedora20上用squid搭建代理服务器
- 阿里云搭建基于MatlabMPI的集群(八):NFS性能调优
- fedora20搭建嵌入式开发环境1 - 系统安装
- 阿里云搭建基于MatlabMPI的集群(四):阿里云实例之间内网互通
- Fedora20 + Nginx + uWSGI + Django环境的搭建
- fedora 20 与 centos 6.5 搭建openldap服务器心得
- fedora20 编译Hadoop-eclipse 1.1.2插件(hadoop开发环境搭建)
- Fedora 20 下搭建Android开发环境
- 阿里云搭建基于MatlabMPI的集群(一):阿里云连接基本操作
- Fedora20 + Nginx + uWSGI + Django环境的搭建
- 阿里云搭建基于MatlabMPI的集群(六):NFS文件共享系统安装与配置
- 阿里云搭建基于MatlabMPI的集群(九):一个基本的MatlabMPI程序
- fedora20搭建嵌入式开发环境2 - 开发工具安装
- Fedora20搭建OpenMP和MPICH3并行开发环境
- RTEMS4.11 FEDORA20 64BIT环境搭建