集群中MPI简单配置

来源:互联网 发布:ubuntu安装win10 编辑:程序博客网 时间:2024/05/18 02:54
一、集群和Linux上的集群解决方案
集群计算机是指用一组联网的PC或工作站来搭建成的,提供比单个PC(节点)计算性能高得多的计算机。说其是计算机,其实是针对所提供出来的服务而言的, 或者说是逻辑上来说的。集群计算机的主要优势就是成本,相同的计算能力下,其成本只有传统大型机的十分之一,在全球计算机TOP500中,集群计算机的比 重越来越大,近两年的比重超过了80%。特别是对中小企事业应用,实验研究和教学有很大的竞争力。
集群系统(Cluster)主要解决下面几个问题
1.高可靠性(HA)。利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。
2.高性能计算(HP)。充分利用集群中的每一台计算机的资源,实现复杂运算的并行处理,通常用于科学计算领域,比如基因分析,物理与化学分析等。
3.负载平衡。即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
在实际应用中,最常见的情况是利用集群解决负载平衡问题,比如用于提供WWW服务。在这里主要展示如何使用LVS(Linux Virtial Server)来实现实用的WWW负载平衡集群系统
关于集群计算机的操作系统,在TOP500中现在主要的操作系统都有身影,但是应用最多的是LINUX操作系统。这首先利益于LINUX的开放源代码,使得其有很高的可制定性,可以根据不同的硬件和应用环境作出相应的修改,其次,LINUX也有很高的稳定性,而且不乏商业支持。
为了降低程序开发的难度和提高程序的可移植性,目前基于LINUX的集群计算环境主要是通过配置MPI(Message Passing Interface)环境可实现的。这也是目前比较成熟的应用模式。因此,本文主要讲解LINUX下的集群环境配置的要求和MPI的配置。
LINUX集群环境的配置主要有以下几个部分:
1. MPI并行计算环境的安装和配置
2. 计算节点之间的无密码访问
3. NFS共享文件系统的配置
//
注:在集群配置过程中,MPI运行环境的安装和配置是必要的,至于计算节点之间的无密码访问和NFS共享,则是在运算效率和文件管理上对高性能计算提出的要求。一般来说,只要具有MPI运行环境可以运算并行计算。
二、linux集群中MPI的并行计算环境的简单配置 
MPI的安装及简单测试 
MPI有多种实现版本,如MPICH, CHIMP以及OPENMPI。其中MPICH是一种最重要的MPI实现,它可以从网上免费获得Linux和Windows版本。它的开发和MPI规范的制定是同步的,因此最能反映MPI的变化和发展,MPICH由此成为实现MPI的最成熟和最广泛使用的版本。本文安装的MPI软版本为MPICH-1.2.6。 
安装步骤: 
1、从网上下载MPICH压缩包(mpich.tar.gz) 
2、解压:# tar zxvf mpich.tar.gz 
3、进入解压后的目录: # cd mpich-1.2.6 
4、配置: # ./configure –prefix=/usr/local/mpich 
其中/usr/local/mpich为软件所安装的目录 
5、编译 # make 
6、安装 # make install 
7、配置该软件的用户搜索路径 
Root 用户下:修改/etc/profile 加入 
PATH=$PATH:/usr/local/mpich/bin 
MANPATH=$MANPATH:/usr/local/mpich/man 
Export PATH MANPATH 
普通用户下:修改~/.bash_profile 加入 
export PATH=$PATH:/usr/local/mpich/bin 
8、修改/usr/local/mpich/share/machines.LINUX文件,加入集群中可以用来做并行计算的主机名(八节点集群为例) 
加入的内容为: 
Local:4
Node11:4
Node22:4
(注:冒号后为节点的CPU数或者内核数)
9、MPI环境的简单测试 
在服务器节点上,以mpich 自带的计算PI值的并行计算程序cpi对所搭建的集群环境做简单的测试。 
步骤: 
在/usr/local/mpich/example目录下 
(1) 编译 # make cpi 
(2) 启动并行计算 # mpirun –np N cpi (其中N 为节点机的个数) 
可以看到PI值及误差和计算时间,说明环境搭建基本成功。至此,所组建的MPI集群基本成。
虽然现在主流的集群配置都是基于MPI的,但是由于MPI的标准和MPI实现的多样性,特别是商业应用领域中不同的商业封装的存在,在MPI环境的安装和配置过程中,要详细的阅读相关的帮助文件。以求正确的配置好MPI运行环境。
三、计算节点之间的无密码访问
这 一点主要是针对高性能计算来说的。在高性能计算中,计算任务被分割成并行的几个部分,而这几个部分之间也是有相互关联,根据计算任务的不同和任务分割的方 法的不同。计算节点之间的通信量也是不同的。这也是衡量和影响集群计算机性能的主要方面。从逻辑上讲,计算节点之间的无密码访问可以使计算进程在集群计算 机内自由跳跃,从而提高集群计算的效率。目前主要的访问机制有RSH和SSH,相对来说SSH的安全性更好些。关于这两种节点间访问机制的配置,网上有很 多的教程,本文将简述SSH在节点之间的无密码访问。
实现原理
使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释是
首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)
然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥
当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了
1.用用户anyone登录客户机器并在客户端机器上执行"ssh-keygen -t rsa"产生的密钥文件。

如果文件"~/.ssh/id_rsa"存在,会提示是否覆盖该文件,此时可选择"n"不覆盖该文件而使用已有的id_rsa文件;如果选择"y"则会重 新生成"~/.ssh/id_rsa"文件,接下来会提示输入passphrase,回车确定使用空的passphrase,再次回车确认(这里也可以输 出passphrase,相当于ssh时登录的密码)。然后会重新生成"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件 (结果如下)。 
如果"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件不存在则会自动创建新的"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件,passphrase设置同上。
2、使用ssh登录到服务器,编辑服务器上"~/.ssh/authorized_keys"文件,将客户端机器上的"~/.ssh/id_rsa.pub"文件内容追加到"~/.ssh/authorized_keys"文件中。
此时会要求输入zhaoy在服务器上的登录密码,输入后即会将客户端机器上的"~/.ssh/id_rsa.pub"文件内容追加到服务器上的"~/.ssh/authorized_keys"文件中)
3.完成了密钥的生成和分发之后就可以进行无密码的SSH登陆了,当然在密钥的生成和分发过程中,有很多可控的参数。这一点要注意查看相关的MAN和使用GOOGLE来解决。
四、NFS共享文件系统的配置
配置NFS共享文件系统是因为在高性能计算过程中,各计算节点要频繁对任务进行数据的读取和存储。使用NFS一来可以提高I/O读写的效率,可以有针对性 的提高NFS系统的可靠性。另外有一点需要注意,在配置计算环境时,要尽量使得与节点配置无关的文件处于NFS系统中,这可以提高管理效率,降低文件冗 余。还有就是使文件系统在各个节点上有相同的路径。关于NFS的设置网上和书本中有很多。下面简单介绍一下。
1. 服务器端的设定
服务器端的设定都是在/etc/exports这个文件中进行设定的,设定格式如下:
欲分享出去的目录 主机名称1或者IP1(参数1,参数2) 主机名称2或者IP2(参数3,参数4) 
上面这个格式表示,同一个目录分享给两个不同的主机,但提供给这两台主机的权限和参数是不同的,所以分别设定两个主机得到的权限。
例如可以编辑/etc/exports为:
/tmp     *(rw,no_root_squash)
/home/public 192.168.0.*(rw)   *(ro)
/home/test  192.168.0.100(rw)
/home/linux  *.the9.com(rw,all_squash,anonuid=40,anongid=40)
设定好后可以使用以下命令启动NFS:
/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)
/etc/rc.d/init.d/nfs start
可以通过MAN命令来查看exports的相关参数。
2. 客户端设定
mount nfs目录的方法:
mount -t nfs hostname(orIP):/directory /mount/point
具体例子:
Linux: mount -t nfs 192.168.0.1:/tmp /mnt/nfs
关于mount和相关参数可以查看相关的MAN文件。
原创粉丝点击