


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MPI的搭建及OpenMP的配置实验指导书1. MPI简介消息传递接口( Message Passing Interface , MPI)是目前 应用较广泛的一种并行计算软件环境,是在集群系统上实现 并行计算的软件接口。为了统一互不兼容的的用户界面,1992年成立了 MPI委员会,负责制定MPI的新标准,支持最 佳的可移植平台。MPI不是一门新的语言,确切地说它是一个C和Fortran的函数库,用户通过调用这些函数接口并采用并行编译器编译 源代码就可以生成可并行运行的代码。MPI的目标是要开发一个广泛用于编写消息传递程序的标准,要求用户界面实 用、可移植,并且高效、灵活,能广泛应用于各类并行机
2、, 特别是分布式存储的计算机。每个计算机厂商都在开发标准 平台上做了大量的工作,出现了一批可移植的消息传递环 境。MPI吸收了它们的经验,同时从句法和语法方面确定核 心库函数,使之能适用于更多的并行机。MPI在标准化过程中吸收了许多代表参加,包括研制并行计 算机的大多数厂商,以及来自大学、实验室与工业界的研究 人员。1992年开始正式标准化 MPI, 1994年发布了 MPI的定 义与实验标准MPI 1,相应的MPI 2标准也已经发布。MPI吸取了众多消息传递系统的优点,具有很好的可以执行、易用性和完备的异步通信功能等。MPI事实上只是一个消息传递标准,并不是软件实现并行执行的具体实现,目前比
3、较 著名的 MPI具体实现有 MPICH LAM MPI等,其中 MPICH是 目前使用最广泛的免费 MPI系统,MPICH2是MPI 2标准的一 个具体实现,它具有较好的兼容性和可扩展性,目前在高性 能计算集群上使用非常广泛。MPICH2的使用也非常简单,用户只需在并行程序中包含MPICH的头文件,然后调用一些 MPICH2函数接口将计算任务 分发到其他计算节点即可,MPICH2为并行计算用户提供了100多个C和Fortran函数接口,表1-1列出了一些常用的 MPICH2的C语言函数接口,用户可以像调用普通函数一样, 只需要做少量的代码改动就可以实现程序的并行运行,MPICH并行代码结构如
4、图1-1所示。表0-1常用的MPICH2函数接口编号函数名称功能描述01MPI_Init初始化MPI接口02MPI_Comm_size通信器进程数03MPI_Comm_当前进程的进程号rank04MPI_Bcast广播方式发送数据05MPI_Reduce组合数据到主进程06MPI_Finalize终止MPI(include "mpiJh* / 包含 MP1CH 的茨文僻(2) 7 /其他代罔(3JMPI IniU); / 初始化Ml叫(4) MJ4i-anktMPl COMM W(J*LD.&灿诋前邀禅杯収弓(5) MPI_Comm sizetMPI COMM WORLD.&
5、amp;siz);的进出的个数(6)MPI Bcasr(); " 广描发迖任务(7 H发谴的汁悴任等S)MP/ 聚址备肖点迖的站忆(9)MPI_FiiuilizeO; / FiT 束MF】图0-1 MPICH并行代码结构在Linux集群环境下,MPICH2运行并行程序需要借助于网络 文件系统(Network File System ,NFS共享工作区和使用 SSH( Secure SHELL)通过网络发送共享工作区中的并行可 执行代码,其中NFS需要编译内核使Linux支持网络文件系 统。NFS的内核选项在 File System 宀Network File System 下,服务器
6、端要变异 NFS Server Support ,客户端编译 NFS Client Support。下面以在Red Hat Enterprise Linux 5上安装MPICH2为例简述在IBM Blade集群环境下搭建 MPI并行运行环境的过程。2. MPI的搭建 1)服务器的配置(1)编译安装MPICH2MPICH2的安装可以使用根用户root安装也可以使用普通用户权限安装,这里我们以 root用户安装为例,首先创建MPICH2的安装目录,如/user/local/mpich2-install,然后指定 mpich2-1.1.0al.tar.gz 安装包,切换到该目录下运行./config
7、ure-prefix=/user/local/mpich2-install指定MPICH2安装目录,执行命令 make &&makeinstall将 MPICH2的可执行程序及库文件安装到/user/local/mpich2-install目录下。(2)设置NFS服务器端修 改 /etc/exports,在文件中加入/user/local/mpich2-install*(rw,no_root_squash,sync)指定将MPICH2的安装目录(这里我么将MPICH2安装目录作为工作区)通过 NFS服务器共享给所有客户机。(3)设置SSH更改/etc/hosts 文件,添加主机
8、名IP地址,例如:127.0.0.1 localhost Localdomain localhost192.168.0.1 bcln1192.168.0.2 bcln2192.168.0.3 bcln3配置host.conf文件完成后,为了使节点相互通信不需要输入密码,还要进行安全验证的配置,使用ssh-keygen-trsa命令生成SSH密钥对。切换到/root目录下,cp id_rsa.pub authorize_keys将公钥拷贝为授权钥匙,并将在 /root目录下生成的.ssh文件夹拷贝到所有节点。这里我们使用了IBM集群管理软件XCAT的并行拷贝命令 pscp-r/root/.ssh
9、bcln1-bcln14:/root/次性地将.ssh目录并行拷贝到所有的计算节点上,避免重复多次运行scp命令的麻烦。(4)修改环境变量 profile在尼tc/profile中加入 MICH2可执行文件的环境变量export PATH= ” $PATH:/user/MPICH-install/bin ”,用命令 sourc ele tc/profile是新增加的环境变量生效。(5)添加mpd.conf文件#echo “secretword=myword ” >/etc/mpd.conf#echo /etc/mpd.conf#echo 600 /etc/mpd.conf(6) 添加主机
10、名称集合文件mpd.hosts文件在mpd.hosts文件中加入如下主机名:bclnlbcln22) 客户端的配置(1)挂载网络文件系统在/user/local目录下创建 mpich2-install文件夹,然后在/etc/fstab中加入需要挂载的网络文件系统,将服务器端共 享的工作区挂载到本地,内容如下Server:/user/local/mpich2-install /user/local/mpich2-install nfs defaylts 0 0(2)添加环境变量类似于服务器端,在尼tc/profile中加入 MPICH2可执行文件 的 环 境 变 量 ecportPATH=使用命
11、令$PATH:/user/MPICH-install/binsourc e尼tc/profile是新增加的环境变量生效。3) MPICH2测试切换到工作区,运行mpdboot-n vnumber if hosts> -fmpd.conf启动mpi的守护程序,该守护程序通知所有参加 并行计算的计算节点,接下来运行mpiexec-n vnumber ofprocesess> cpi 命令测试由 MPICH2提供的计算圆周率的并 行程序,若运行完毕未出现错误提示,则表示 MPICH2的环 境配置成功。3. OpenMF简介OpenMP是 一种针对共享内存的多线程编程技术(SMP是配合Op
12、enMP进行多线程编程的最佳硬件架构),是由一些具有国 际影响力的大规模软件和硬件厂商共同定义的的标准。它是 一种编程指导语句,指导多线程、共享内存并行的应用程序 编程接口,OpenMP是一种能被用于显示指导多线程、共享内存并行的应用程序编程接口。其规范由SGI发起。OpenMP具有良好的可移植性,支持多种编程语言。OpenMP能够支持多 种平台,包括大多数的类 UNIX及 Windows NT系统。OpenMP 最初是为了共享内存多处理的系统结构而设计的并行编程 方法,与通过消息传递进行并行编程的模型有很大的区别。这是用来处理多处理器共享的一个内存设备的情况。多个处 理器在访问内存的时候使用
13、的是相同的内存编址空间。SMP是一种共享内存的体系结构,分布式共享内存将多及的内存 资源通过虚拟化的方式形成一个统一的内存空间提供给多 个机器上的处理器使用,Ope nMF对这样的机器也提供了一定 的支持。OpenMP的编程模型以线程为基础,通过编译指导语句来显示 地指导并行化,为编程人员提供了对并行化的完整控制。OpenMP使用Fork-Join (派生连接,见图1-2 )并行执行模 型。一个OpenMP程序从一个单个线程开始执行,在程序某 点需要并行时程序派生(Fork )出一些额外的线程组成线程 组,被派生出来的线程称为组的从属线程,并行区域中的代 码在不同的线程中并行执行,程序执行到并
14、行区域末尾,线程将会等待直到整个线程组到达,然后将它们连接( Join ) 在一起。在该点处线程组中的从属线程终止而初始主线程继 续执行直到下一个并行区域到来。一个程序中可以定义任意 数目的并行块,因此,在一个程序的执行中可Foek-Join若干次。使用OpenMP在编译器编译程序时,会识别特定的注释,而 这些特定的注释就包含着OpenMF程序的一些语句。在C/C+程序中,OpenMF是以#pragma omp开始,后面跟具体的功能 指令。在OpenMP中编译指导语句是用来表示开始并行运算的特定 注释,在编译器编译程序时,编译指导语句能够被并行编译 程序识别,串行编译程序则忽略这些语句。并行编译程序根 据这些指导语句将相关代码转换成在并行计算机中运行的 代码。一条编译指导语句由directive (命令/指令)和clauselist (子句列表)组成。OpenMP的编译指导语句格式为: #pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业分析2025年 VFP考试常见疑问及试题及答案
- 四年级上册期末考试语文试卷(二)
- 2024届新高考名校试题分类汇编专题06 应用文写作 (摸底考试专辑)(原卷版)
- 内蒙古赤峰市第二中学2023-2024学年高三上学期10月月考数学(文) 无答案
- 2025年嵌入式考试的重点难点分析试题及答案
- 合同协议书门面店有效吗
- 公司租赁合同变更协议书
- 逐渐适应2025年税法考试试题及答案
- 嵌入式开发项目的中后期管理试题及答案
- 了解C语言的多线程编程基础试题及答案
- 六、回顾整理-总复习2.图形的认识与测量(二)-平面图形的周长和面积(课件)青岛版六年级下册数学
- 中医养生(灵源万应茶)
- 追索子女抚养费起诉状
- 六年级数学质量分析PPT
- 土地平整、池塘推土、杂草灌木丛及树木清除施工方案
- 眼镜镜架的整形专业培训2课件
- 下线仪式串词策划
- 通用长期供销合同范本
- 《社区治理研究国内外文献综述(1900字)》
- 2023浙江省学生艺术特长测试A级理论复习资料
- 建筑业企业资质职称人员相近专业认定目录
评论
0/150
提交评论