MPI并行计算环境的建立
MPI环境搭建

MPI 并行环境的搭建1、在计算机中,安装两个CentOS系统2、[root@node1 etc]# ifconfig #查看ip192.168.241.128[root@node2 etc]# ifconfig192.168.241.1293、互ping[root@node1 etc]# ping 192.168.241.129 #测试网络是否联通 [root@node2 etc]# ping 192.168.241.1284、修改/etc/hosts文件,在节点设置节点名称192.168.241.128 node1192.168.241.129 node2[root@node1 etc]# source /etc/hosts[root@node2 etc]# source /etc/hosts5、各个节点是否互通[root@node1 etc]# ping node2 #测试主机名修改是否成功[root@node2 etc]# ping node16、关闭iptables防火墙[root@node1 etc]# serviceiptables stop[root@node2 etc]# serviceiptables stop在各个节点设置iptables 防火墙开机关闭[root@node1 usr]# chkconfigiptables off #设置iptables开机关闭 [root@node2 usr]# chkconfigiptables off #设置iptables开机关闭7、在各个节点创建共享目录[root@node1 etc]#mkdir /usr/cluster[root@node2 etc]#mkdir /usr/cluster在node1上修改/usr/cluster为777[root@node1 etc]#chmod –R 777 /usr/cluster8、挂在nfs文件系统/etc/exports文件配置在node1(主节点)节点配置[root@node1 etc]# vi /etc/exportsusr/cluster 192.168.241.128(rw)/usr/cluster 192.168.241.129(rw)启动nfs服务在node1节点执行[root@node1 usr]# yum install nfs-utilsrpcbind #安装nfs[root@node1 usr]# service rpcbind start #启动rpc[root@node1 usr]# service nfs start #启动nfs服务[root@node1 usr]# chkconfigrpcbind on #设置rpcbind开机启动[root@node1 usr]# chkconfignfs on #设置nfs开机启动在node2节点执行[root@node2 usr]# yum install nfs-utilsrpcbind #安装nfs[root@node2 usr]# service rpcbind start #启动服务[root@node2 usr]# service nfs start #启动nfs服务[root@node2 usr]# chkconfigrpcbind on #设置rpcbind开机启动[root@node2 usr]# chkconfignfs on #设置nfs开机启动9、查看服务器已有的共享目录查看node2的共享目录[root@node2 usr]# showmount -e 192.168.241.129Export list for 192.168.241.129:/usr/cluster 192.168.241.129,192.168.241.128挂在共享目录node2的共享目录挂在node1[root@node1 etc]# mount -t nfs 192.168.241.129:/usr/cluster /usr/cluster设置文件系统启动时自动挂载在node2的/etc/fstab文件下添加下边代码[root@node2 etc]# vi /etc/fstab192.168.241.128:/usr/cluster /usr/cluster nfsdefaults 0 010、配置ssh实现MPI节点的无密码登陆在各个节点上操作[root@node1 ~]# cd ~/.ssh/[root@node1 .ssh]# ssh-keygen -t rsa #一直按回车键会产生一个私钥id_rsa 和公钥id_rsa.pub[root@node2 ~]# cd ~/.ssh/[root@node2 .ssh]# ssh-keygen -t rsa #一直按回车键会产生一个私钥id_rsa 和公钥id_rsa.pub将各个节点的公钥合并到authorized_keys文件[root@node1 .ssh]# cat id_rsa.pub >>authorized_keys[root@node1 .ssh]# ssh root@node2 cat /root/.ssh/id_rsa.pub >>authorized_keys将authorized_keys拷贝到各个节点[root@node1 .ssh]# scpauthorized_keys root@node2:/root/.ssh/[root@node1 .ssh]# scpknown_hosts root@node2:/root/.ssh/无密钥测试[root@node1 .ssh]# ssh node2 #node1登陆到node2[root@node2 .ssh]# ssh node1 #node2登陆到node111、安装MPICH2(在各个节点都需要操作)将下载的mpich-3.2.tar.gz文件拷贝到/usr/src目录下[root@node2 src]# tar -zxvf mpich-3.2.tar.gz #解压文件[root@node2 src]# cd mpich-3.2配置安装路径最新版本mpich3的进程管理默认使用hydra[root@node2 mpich-3.2]# yum -y install gcc-c++ #安装c++编译器[root@node2 mpich-3.2]# mkdir /usr/cluster/mpich3 #创建mpich3目录[root@node2 mpich-3.2]# ./configure --prefix=/usr/cluster/mpich3/ --with-pm=hydra --disable-fortran #配置安装路径[root@node2 mpich-3.2]# make #编译[root@node2 mpich-3.2]# make install #安装在node1里执行[root@node1 ~]# vi .bashrc #添加mpich3的路径export PATH=$PATH:/usr/cluster/mpich3/bin[root@node1 ~]# source .bashrc #配置生效在node2里执行[root@node2 ~]# vi .bashrc #添加mpich3的路径export PATH=$PATH:/usr/cluster/mpich3/bin检测是否配置成功[root@node2 ~]# which mpicc #显示mpicc的路径[root@node2 ~]# which mpiexec #显示mpiexec的路径11、配置hostfile文件在当前用户主目录下建立并编辑配置文件hostfile。
linux集群中MPI的并行计算环境简单配置

/n/20090826/4253.html一、集群和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集群环境的配置主要有以下几个部分:<!--[if !supportLists]-->1.<!--[endif]-->MPI并行计算环境的安装和配置<!--[if !supportLists]-->2.<!--[endif]-->计算节点之间的无密码访问<!--[if !supportLists]-->3.<!--[endif]-->NFS共享文件系统的配置//注:在集群配置过程中,MPI运行环境的安装和配置是必要的,至于计算节点之间的无密码访问和NFS共享,则是在运算效率和文件管理上对高性能计算提出的要求。
mpi并行计算教程与实例

mpi并行计算教程与实例MPI(Message Passing Interface)是一种用于编写并行计算程序的标准接口。
它是一种消息传递编程模型,能够在分布式内存系统中实现多个进程之间的通信和协调。
MPI并行计算的教程与实例,将为读者介绍MPI的基本概念、使用方法和相关实例,帮助读者快速入门并掌握MPI并行计算的技巧。
一、MPI的基本概念MPI是一种标准接口,提供了一组函数和语义规范,用于编写并行计算程序。
在MPI中,进程是程序的基本执行单元,每个进程都有自己的地址空间和计算资源。
进程之间通过消息进行通信,可以发送和接收消息,实现进程之间的数据交换和协调。
MPI中有两个基本的概念:通信域和通信操作。
通信域定义了一组进程的集合,这些进程之间可以进行消息的发送和接收。
通信操作是指进程之间进行消息传递的操作,包括发送、接收、同步等。
二、MPI的使用方法在MPI编程中,首先需要初始化MPI环境,然后确定通信域和进程之间的通信拓扑关系。
之后,可以使用MPI提供的函数进行消息的发送和接收,实现进程之间的通信和协调。
最后,需要在程序结束时释放MPI环境。
MPI提供了丰富的函数库,可以实现不同类型的通信和操作。
例如,MPI_Send函数可以将消息发送给指定的进程,MPI_Recv函数可以接收来自其他进程的消息。
此外,MPI还提供了一些高级函数,如MPI_Bcast和MPI_Reduce,用于广播和归约操作。
三、MPI的实例下面以一个简单的例子来说明MPI的使用方法。
假设有一个数组,需要计算数组中元素的总和。
可以使用MPI将数组分成若干部分,分配给不同的进程进行计算,最后将结果汇总得到最终的总和。
需要初始化MPI环境,并获取进程的总数和当前进程的编号。
然后,将数组分成若干部分,每个进程只计算分配给自己的部分。
计算完成后,使用MPI_Reduce函数将各个进程的计算结果进行归约,得到最终的总和。
最后,释放MPI环境。
MPI并行程序设计

MPI并行程序设计MPI并行程序设计引言MPI(Message Passing Interface)是一种常用的并行计算编程模型,用于在分布式计算环境中实现并行程序设计。
MPI提供了在多个进程之间进行通信和同步的机制,使得程序能够充分利用集群或超级计算机的并行性能。
本文将介绍MPI的基本概念和使用方法,并帮助读者了解如何进行MPI并行程序设计。
MPI基本概念MPI的核心思想是将计算任务划分为多个子任务,并将这些子任务分发给不同的进程进行并行计算。
MPI使用消息传递的方式来实现进程之间的通信和同步。
以下是一些MPI的基本概念:进程通信在MPI中,每个并行计算的进程都有一个唯一的标识符,称为进程号(rank)。
进程之间可以使用通信操作进行消息传递,包括发送消息(send)、接收消息(receive)和同步(synchronize)等操作。
点对点通信点对点通信是指在两个进程之间进行消息传递,包括发送方和接收方。
发送方使用`MPI_Send`函数发送消息,接收方使用`MPI_Recv`函数接收消息。
广播通信广播通信是指一个进程向所有其他进程发送消息的操作。
发送方使用`MPI_Bcast`函数广播消息,接收方使用`MPI_Recv`函数接收消息。
归约操作归约操作是指将一组数值合并为一个数值的操作,如求和、求最大值等。
MPI提供了多种归约操作,包括`MPI_Reduce`和`MPI_Allreduce`。
并行计算模式MPI支持多种并行计算模式,包括主从模式、对等模式等。
在主从模式中,一个进程作为主进程,负责分发任务和收集结果;其余进程作为从进程,负责执行分配的子任务。
在对等模式中,所有进程都具有相同的任务和贡献。
MPI程序设计步骤编写MPI并行程序的一般步骤如下:1. 初始化MPI环境:使用`MPI_Init`函数初始化MPI环境,并获取进程数量和进程编号等信息。
2. 分配任务:根据进程编号和任务数量,将总计算任务划分为子任务,并分发给各个进程。
MPI综合实验报告

MPI综合实验报告一、实验目的本次实验旨在探究MPI并行计算技术在多节点集群中的应用,并通过编写相关代码实现一个简单的并行计算任务,验证MPI的计算能力和效果。
二、实验原理MPI(Message Passing Interface)是一种并行计算中进程间通信的标准接口。
MPI通过发送和接收消息来实现进程之间的通信,协调各个计算节点的工作。
一般而言,MPI程序由多个进程组成,每个进程可以独立地执行计算任务,当需要进行通信时,进程可以通过MPI提供的接口来发送和接收消息。
三、实验过程1.配置MPI环境在实验开始前,需要在多个节点上安装MPI环境,并确保各节点之间能够正常通信,可以互相发送和接收消息。
2.编写代码首先,需要编写一个主进程(通常为进程0)和多个子进程参与计算的代码。
主进程负责将计算任务分配给子进程,并收集子进程的计算结果。
子进程则负责进行具体的计算任务。
以下是一个简单的示例代码:```pythonfrom mpi4py import MPIif rank == 0:#主进程负责任务分配data = [i for i in range(size-1)] # 分配给每个子进程的数据for i in range(1, size):#主进程接收结果result = []for i in range(1, size):print("Result:", result)else:#子进程接收任务数据#子进程进行计算result = data * 2#子进程发送计算结果```以上代码使用了mpi4py库来实现MPI的功能。
在主进程中,首先准备要分配的数据,然后将每个子进程的数据发送给相应的子进程,并接收子进程的计算结果。
在子进程中,首先接收来自主进程的数据,然后进行计算,并将计算结果发送给主进程。
3.运行实验在配置好MPI环境和编写好代码后,将代码保存并上传到各个节点上。
然后,在主节点上执行以下命令来运行程序:``````其中,`-np 5`表示使用5个进程来进行计算。
基于MPI的网络并行计算系统构建及分析

群的体系结构 如图 1 所示.
i
[ 巫[] _
而蕊
网关
1 网络并行计算 系统 的体 系结构
网络并 行 计 算 是 一 种 并 行 计 算 技 术 , 它 通 过 网络连 接 多个 计 算 机 系统 来 实 现 高 效 的 并 行 处理 任务 . 网络并 行计 算能 够充 分利 用 整个 系 统 的资 源进 行统 一调 度 和协调 处 理 , 目前 并行 是
算任务…. 此庞大计算 任务 的解 决依靠单 处 如
理 器是 无 法 实 现 的. 在这 些 领 域 , 切 需 要 高效 迫 的计 算 方 法 . 此 同 时 , 与 随着 P 机 性 能 的提 高 C 和 网 络 产 品 的 更 新 换 代 使 一 种 新 的 计 算 形
式 —— 网络并 行计 算 应运 而生 . 网络并行 计 算是
中图 分 类 号 : T 3 3 P 9
文 献 标 识 码 : A
现 代计 算 技 术 显著 地 促 进 了科 学 计 算 的发
系统 . 群 中 的各 台计 算 机 之 间联 系 紧密 , 某 集 在 种 程度 上 可将 整个 系统理 解成 一 台计算 机 . 群 集
中的计 算节 点 可 以是 P C或 工 作 站 , 一个 节 点 每
是将一组计算机连接起来实现高效并行计算 的
收稿 日期 : 2 1 0 1—1 2—2 2
作者简介 : 张克非( 9 9一) 满 , , 17 , 女 辽宁本溪人 , 讲师 , 硕士 , 主要从事并行计算方面 的研究
沈
阳
化
工
大
学
学
报
表, 而并 不 特 指某 一 个对 它 的具体 实 现 . 今 为 迄
基于MPI并行编程环境简述

基于MPI并行编程环境简述MPI并行编程环境是一种并行编程解决方案,它被广泛应用于高性能计算领域。
本文将对MPI并行编程环境做一个简单的介绍,包括MPI的概念、MPI的基本编程模式、MPI的特点和应用场景等方面。
最后还将介绍一些MPI编程中要注意的问题。
一、MPI的概念MPI是Message Passing Interface的缩写,意思是“消息传递接口”,它是一种并行计算环境的标准化接口,并且被广泛应用于高性能计算领域。
MPI允许程序员编写MPI应用程序来在多个进程之间传递消息,并对应用程序进行并行化处理。
MPI定义了一套通信协议,使得单个进程可以通过网络连接与其他进程进行通信。
MPI支持多种编程语言,包括C、C++、Fortran等。
MPI的实现通常包括一个标准库和一个运行时系统,它们提供了一系列函数和工具,用于支持消息传递协议和进程管理。
二、MPI的基本编程模式MPI的基本编程模式是消息传递模型,它通过传递消息实现进程之间的通信和同步。
MPI提供了一套通信协议,包括点对点通信和集合通信两种方式,以及同步通信和异步通信两种方式。
在点对点通信中,发送方将消息传递给接收方;在集合通信中,一组进程相互交换数据。
同步通信要求发送方等待接收方的响应,而异步通信则可以在发送消息之后立即返回并继续执行。
三、MPI的特点MPI具有以下几个特点:1. 并行性:MPI可以同时在多个进程之间完成任务,并能够将运算分解成多个独立的计算单元来并行执行。
2. 可移植性:MPI的标准化接口使得程序员可以跨平台编写MPI应用程序,而无需考虑底层计算机架构和操作系统的区别。
3. 可扩展性:MPI支持将计算任务分配到大规模的计算资源上,能够有效地扩展计算能力。
4. 通信效率高:MPI的通信协议具有高效的性能,支持传输大量的数据,因此可以在高速网络上实现高速通信。
四、MPI的应用场景MPI主要应用于高性能计算领域,可以用于大规模数值模拟、数据挖掘、机器学习等任务。
实验四MPI环境构建及程序设计

实验四MPI环境构建及程序设计MPI(Message Passing Interface)是一种并行计算通信标准,用于在并行计算环境中进行进程间通信。
构建MPI环境并进行程序设计是实现高性能计算的关键步骤之一、本实验将介绍如何构建MPI环境,并通过一个简单的程序设计来演示MPI的使用。
首先,我们需要在计算机上安装MPI环境。
MPI有多种实现,例如OpenMPI、MPICH和Intel MPI等。
这里我们以OpenMPI为例进行环境构建。
2. 安装OpenMPI:打开终端或命令提示符,进入到OpenMPI安装包所在目录,并执行以下命令进行安装:```$ tar xf openmpi-x.x.x.tar.gz # 解压安装包(x.x.x为安装包版本号)$ cd openmpi-x.x.x # 进入解压后的目录$ ./configure --prefix=/usr/local/openmpi # 配置安装路径$ make # 编译$ sudo make install # 安装(需要管理员权限)```3.配置环境变量:```export PATH=/usr/local/openmpi/bin:$PATHexportLD_LIBRARY_PATH=/usr/local/openmpi/lib:$LD_LIBRARY_PATH ```执行以下命令使环境变量生效:```$ source ~/.bashrc # 或 source ~/.bash_profile```4.验证MPI环境:执行以下命令验证MPI环境是否成功安装:```$ mpiexec --version```如果输出了MPI版本信息,则说明安装成功。
接下来,我们将通过一个简单的MPI程序来演示MPI的使用。
以下是一个求解圆周率的MPI程序示例:```c#include <stdio.h>#include <stdlib.h>#include <mpi.h>int main(int argc, char *argv[])int rank, size;double pi = 0.0;double sum = 0.0;MPI_Init(&argc, &argv);srand(rank);for (int i = start; i < end; i++)double x = (double)rand( / RAND_MAX;double y = (double)rand( / RAND_MAX;if (x * x + y * y <= 1.0)sum += 1.0;}}MPI_Reduce(&sum, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);if (rank == 0)printf("Approximated Pi: %f\n", pi);}MPI_Finalize(;return 0;```该程序使用蒙特卡洛方法求解圆周率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MPI并行计算环境的建立一、配置前的准备工作假设机群是3个节点。
1.安装Linux(CentOS 5.2)系统,并保证每个节点的sshd服务能正常启动。
笔者并没采用真实的3台机器,而是利用虚拟机(VMware Workstation6.5)在一台装有XP系统的机器上安装多个Linux系统进行模拟。
注意事项:(1)因为笔者采用mpich2-1.3.2p1.tar.gz,此版本对gcc、autoconf等软件包版本要求较高,为避免出错,尽量安装最新的Linux系统。
(2)在用VMware Workstation安装Linux系统时可能会遇到磁盘类型不兼容的问题,笔者采用的版本就出现了这样的问题,解决要点如下:a.启动Workstation选择创建定制的虚拟机;b.SCSI适配器类型选LSI Logic (Linux内核在2.4以下的选择BusLogic);c.选择虚拟磁盘类型(IDE)。
(3)安装VMware Workstation tools。
Linux系统启动后,选择菜单栏——虚拟机——安装VMware tools,按照提示将相应的安装包复制到你想要的目录下,执行命令:tar zxvf vmware-tools.tar.gzcd vmware-tools(进入解压目录)./install.pl(因版本不同,名字不一定相同,读者注意,执行名字类似的即可)2.为每个节点分配IP地址,IP地址最好连续分配,如192.168.1.2、192.168.1.3、192.168.1.4、......。
(不要分配192.168.1.1)3.配置/etc/hosts文件,该文件可以实现IP地址和机器的对应解析,所有节点的该文件均要按下面的内容修改:192.168.1.2 node1192.168.1.3 node2192.168.1.4 node3通过以上配置后节点之间能够通过各节点的机器名称相互访问。
例如,可以通过ping node2进行测试。
注意事项:该测试必须在关闭Linux防火墙的条件下进行,否则可能失败。
永久生效:chkconfig iptables on/off(重启生效)即时生效:service iptables start/stop(重启失效)二、挂载NFS文件系统由于MPICH的安装目录和用户可执行程序在并行计算时需要在所有节点保存副本,而且目录要相互对应,每次一个节点一个节点的复制非常麻烦,采用NFS文件系统后可以实现所有节点内容与主节点内容同步更新,并自动实现目录的对应。
NFS文件系统使得所有机器都能以同样的路径访问服务器上保存的文件,访问方法如同对本地文件的访问。
通常我们会将MPICH的安装目录及并行程序存放目录配置为NFS共享目录,这样可以省去将文件向各个节点复制的麻烦,大大提高工作效率。
NFS文件系统的配置方法示例如下(假设NFS服务器IP为192.168.1.2,配置需要在root 用户下完成)。
1.服务器端配置方法(下面的配置只在主节点进行)。
(1)/etc/exports文件配置在文件/etc/exports中增加以下几行:/usr/cluster 192.168.1.3(rw,sync,no_root_squash,no_subtree_check)/usr/cluster 192.168.1.4(rw,sync,no_root_squash,no_subtree_check)这几行文字表明NFS服务器向IP地址为192.168.1.3,192.168.1.4的2个节点共享其/usr/cluster 目录(目录必须存在),并使这些节点具有相应的权限(可查询相关的文档)。
如有更多的节点可按此方法填写。
(2)启动NFS服务启动NFS服务只需要以下两个命令:service portmap start注:在最新的内核中,NFS守护进程改为rpcbind,如是新内核,启动NFS守护进程的命令是“service rpcbind start”。
service nfs start到此IP为192.168.1.2的服务器已可以向其他两个节点提供/usr/cluster目录的文件共享。
2.客户端配置方法(需要在所有子节点做同样的配置)。
(1)建立共享目录。
建立与服务器相同的共享目录用于共享服务器文件:mkdir /usr/cluster(2)查看服务器已有的共享目录(这步可省略)。
showmount -e 192.168.1.2通过这条命令我们可以查看IP地址为192.168.1.2服务器可以共享的目录情况。
(3)挂载共享目录。
mount -t nfs 192.168.1.2:/usr/cluster /usr/cluster这一命令将NFS服务器192.168.1.2上的共享目录挂载到本地/usr/cluster目录下。
我们也可在所有子节点的/etc/fstab文件中输入以下的代码,使文件系统在启动时实现自动挂载NFS:192.168.1.2:/usr/cluster /usr/cluster nfs defaults 0 0至此我们已可以实现对NFS共享目录的本地访问,所有子节点的/usr/cluster文件夹都共享了NFS服务器的同名文件夹的内容,我们可以像访问本地文件一样访问共享文件。
MPICH的安装目录和用户存放并行程序的文件夹都需要实现NFS共享,从而避免了每次向各节点发送程序副本。
三、配置ssh实现MPI节点间用户的无密码访问由于MPI并行程序需要在各节点间进行信息传递,所以必须实现所有节点两两之间能无密码访问。
节点间的无密码访问是通过配置ssh公钥认证来实现的。
例如,对新用户user配置ssh公钥认证,先在node1上做以下操作。
(1)生成了私钥id_dsa和公钥id_dsa.pub,具体操作方法如下。
mkdir ~/.sshcd ~/.sshssh-keygen -t dsa系统显示一些信息,遇到系统询问直接回车即可。
(2)将该密钥用作认证,进行访问授权。
按如下命令在node1执行。
cp ~/.ssh/id_dsa.pub ~/.ssh/authorized_keyschmod go-rwx ~/.ssh/authorized_keys(3)将~/.ssh目录下的文件复制到所有节点。
scp -r ~/.ssh node2:scp -r ~/.ssh node3:(4)检查是否可以直接(不需要密码)登录其他节点。
ssh node1ssh node2如能两两之间不需要密码登录其他节点,则表明配置成功。
四、安装MPICH21.下载并解压MPICH2压缩包。
tar zxvf mpich2-1.3.2p1.tar.gz解压完成后将在当前目录生成一个MPICH文件目录。
2.进入MPICH解压后的目录,配置安装目录。
注意事项:最新版本mpich2的进程管理默认使用hydra,而不是mpd。
如果你要使用mpd,使用./configure --with-pm=mpd:hydra./configure --prefix=/usr/cluster/mpich2 --with-pm=mpd:hydra根据以上配置MPICH将安装在目录/usr/cluster/mpich2,并确保所有节点已建立针对该目录的NFS共享。
3.编译安装MPICH2。
进入解压后的MPICH文件目录,分别执行make和make install指令,这会花一段较长的时间。
4.在当前用户主目录下建立并编辑配置文件mpd.hosts。
将所有你允许访问本机进行并行计算的机器名填入,一行一个机器名,如果该机器上有两个CPU,就将它的名字加入两次,以此类型。
node1node2node3node4注意,文中包含自己的目的是为了在只有一个节点时也可以模拟并行计算环境。
5.配置环境变量。
编辑用户主目录下的~/.bashrc文件,增加一行:PATH="$PATH:/usr/cluster/mpich2/bin"这一行代码将MPI的安装路径加入用户的当前路径列表。
重新打开命令行窗口后生效。
6.启动mpd守护进程。
运行mpirun,首先要运行mpd。
在启动mpd守护进程前要在各个节点的安装目录(/usr/MPICHI-install/etc/mpd.conf)生成一个mpd.conf文件,内容为:secretword=123456其中,“123456”为识别口令,在所有节点中都建立该文件并保持口令一致,口令可自己设定。
进入/usr/MPICHI-install/etc/目录执行以下命令touch mpd.confchmod 600 mpd.confmpd &mpd &为启动本地mpd的命令,我们也可以采用以下命令同时启动mpd.hosts中所列节点的mpd。
mpdboot -n <节点个数> -f mpd.hosts这一命令将同时在mpd.hosts文件中所指定的节点上启动mpd管理器。
mpd启动后执行“mpdtrace -l”可以查看各个节点机器名。
7.编译、运行一个简单的测试程序cpi,这是一个MPICH自带的计算圆周率的并行示例程序,该例程在MPICH解压后的examples目录下。
运行命令如下:mpirun -np 3 ./cpimpi的编译命令为mpicc,如编译test.c可用如下命令:mpicc test.c -o testmpirun –np 3 ./test本文来自CSDN博客,转载请标明出处:/Leaderman_IT/archive/2011/03/03/6221427.aspx。