linux集群中mpi的并行计算环境简单配置
一、集群和 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:4Node11:4Node22: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/i