国家973项目高性能计算环境支持讲座19140.docx
《国家973项目高性能计算环境支持讲座19140.docx》由会员分享,可在线阅读,更多相关《国家973项目高性能计算环境支持讲座19140.docx(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、国家973项目高性能计算环境支持讲座MPI与PETSc莫则尧(北京应用用物理与与计算数数学研究究所)日期内容815上午进程与消息息传递、MPI应用用现状、MPI并行行程序设设计入门门、初步的MPPI消息息传递函函数下午作业一、讨讨论816上午作业一讲评评、先进的MPPI函数数、并行程序示示例2、MPI的发发展下午作业二、讨讨论817上午作业二讲评评、并行可扩展展科学计计算工具具箱PEETScc介绍下午PETScc程序示示例个人介绍莫则尧,男男,汉族族,19971年年7月生生,副研研究员:l 1992年年国防科科技大学学应用数数学专业业本科毕毕业;l 1997年年国防科科技大学学计算机机应用专专
2、业并行行算法方方向博士士毕业;l 1999年年北京应应用物理理与计算算数学数数学博士士后流动动站出站站,并留留所工作作;l 主要从事大大规模科科学与工工程并行行计算研研究。消息传递并并行编程程环境MMPI一、 进程与消息息传递二、 MPI环境境的应用用现状三、 MPI并行行程序设设计入门门(程序序例1)四、 初步的MPPI消息息传递函函数五、 作业一六、 先进的MPPI函数数七、 MPI并行行程序示示例2(求求解-Du=ff);八、 MPI环境境的发展展九、 作业二一、进程与与消息传传递1单个进进程(pproccesss)l 进程是一个个程序,同同时包含含它的执执行环境境(内存存、寄存存器、程
3、程序计数数器等),是是操作系系统中独独立存在在的可执执行的基基本程序序单位;l 通俗理解:串行应应用程序序编译形形成的可可执行代代码,分分为“指令”和“数据”两个部部分,并并在程序序执行时时“独立地地申请和和占有”内存空空间,且且所有计计算均局局限于该该内存空空间。进程1进程2 内存2单机内内多个进进程:l 多个进程可可以同时时存在于于单机内内同一操操作系统统:由操操作系统统负责调调度分时时共享处处理机资资源(CCPU、内内存、存存储、外外设等);l 进程间相互互独立(内存空空间不相相交):在操作作系统调调度下各各自独立立地运行行,例如如多个串串行应用用程序在在同一台台计算机机中运行行;l 进
4、程间可以以相互交交换信息息:例如如数据交交换、同同步等待待,消息息是这些些交换信信息的基基本单位位,消息息传递是是指这些些信息在在进程间间的相互互交换,是是实现进进程间通通信的唯唯一方式式;l 最基本的消消息传递递操作:发送消消息(ssendd)、接接受消息息(reeceiive)、进进程同步步(baarriier)、规规约(rreduuctiion);l 消息传递的的实现:共享内内存或信信号量,用用户不必必关心; 进进程1 进程22 发送数数据 接收数数据 (消消息传递递) 内内存空间间3包含于于通过网网络联接接的不同同计算机机的多个个进程:l 进程独立存存在:进进程位于于不同的的计算机机,
5、由各各自独立立的操作作系统调调度,享享有独立立的CPPU和内内存资源源;l 进程间相互互信息交交换:消消息传递递;l 消息传递的的实现:基于网网络soockeet机制制,用户户不必关关心;4消息传传递库函函数:l 应用程序接接口(AAPI):提供给给应用程程序(FFORTTRANN、C、CC+语语言)的的可直接接调用的的完成进进程间消消息传递递的某项项特定功功能的函函数;l 消息传递库库:所有有定义的的消息传传递函数数编译形形成的软软件库,调调用其内内部函数数的应用用程序,通通过与之之联接,即即可成为为可并行行执行的的程序;l 目前流行的的消息传传递函数数库:PPVM 3.33.111、MPP
6、ICHH 1.2、LLAMMMPI 6.44等;5标准消消息传递递界面(MMPI:Messsagge PPasssingg Innterrfacce):l MPI标准准:根据据应用程程序对消消息传递递功能的的需求,全全球工业业、应用用和研究究部门联联合推出出标准的的消息传传递界面面函数,不不考虑其其具体实实现,以以保证并并行应用用程序的的可移植植性;l MPI的具具体实现现:消息息传递库库函数,目目前有影影响的为为MPIICH和和LAMMMPII,我们们注重MMPICCH系列列;6基于消消息传递递的并行行程序执执行模式式:l SPMD模模式:单单程序多多数据流流并行应用程序代码 可执行行代码
7、运行复制多份并独立执行,形成多个独立的进程 进程三(内存)进程二(内存)进程一(内存)消息传递(交换数据、同步、规约)协同l MPMD模模式:多多程序多多数据流流,除初初始启动动多个可可执行代代码,其其余与SSPMDD模式一一致;7共享存存储与分分布式存存储:l 属于并行机机体系结结构的范范畴,与与消息传传递并行行程序设设计平台台无关; 节节点CPUCPU CPUCPUCPUCPUMMM互连网络互连网络MMM 分分布式存存储 共享享存储l 消息传递是是相对于于进程间间通信方方式而言言的,与与具体并并行机存存储模式式无关,任任何支持持进程间间通信的的并行机机,均可可支持消消息传递递并行程程序设计
8、计;l 几乎所有共共享和分分布存储储并行计计算环境境均支持持进程间间的消息息传递通通信;二、MPII环境的的应用现现状l MPI(消消息传递递界面)是是全球工工业、政政府和科科研部门门联合推推出的适适合进程程间进行行标准消消息传递递的并行行程序设设计平台台,最初初版MPPI 11.0本本于19994年年6月推推出,目目前最新新的为MMPI 2.00版,于于19998年年年低推出出;l MPI的具具体实现现:MPPICHH和LAAMMPPI,目目前均已已实现MMPI 1.22版,适适用于任任何并行行计算平平台;部部分并行行机已实实现MPPI 22.0版版;l MPI是目目前应用用最广的的并行程程
9、序设计计平台,几几乎被所所有并行行计算环环境(共共享和分分布式存存储并行行机、MMPP、机机群系统统等)和和流行的的多进程程操作系系统(UUNIXX、Wiindoows NT)所所支持,基基于它开开发的应应用程序序具有最最佳的可可移植性性;l 目前高效率率的超大大规模并并行计算算(10000个个处理器器)最可可信赖的的平台;l 工业、科学学与工程程计算部部门的大大量科研研和工程程软件(气气象、石石油、地地震、空空气动力力学、核核等)目目前已经经移植到到MPII平台,发发挥了重重要作用用;l 目前,MPPI相对对于PVVM: 优点:功能能强大,性性能高,适适应面广广,使用用方便,可可扩展性性好;
10、 缺点:进程程数不能能动态改改变;三、MPII并行程程序设计计入门1 MPI并行行程序设设计平台台由标准准消息传传递函数数及相关关辅助函函数构成成,多个个进程通通过调用用这些函函数(类类似调用用子程序序),进进行通信信;2 MPI程序序:l SPMD执执行模式式:一个个程序同同时启动动多份,形形成多个个独立的的进程,在在不同的的处理机机上运行行,拥有有独立的的内存空空间,进进程间通通信通过过调用MMPI函函数来实实现;l 每个进程开开始执行行时,将将获得一一个唯一一的序号号(raank)。例例如启动动P个进进程,序序号依次次为0,11,P-1;l MPI程序序例1:进程00发送一一个整数数给进
11、程程1;进进程1将将该数加加1,传传递给进进程2;进程22再将该该数加11,再传传递给进进程3;依次类类推,最最后,进进程P-1将该该数传递递给进程程0,由由进程00负责广广播该数数给所有有进程,并并打印输输出。 proograam exaamplle1 inncluude “mpiif.hh” ! MMPI系系统头文文件 inntegger sstattus(MPII_STTATUUS_SSIZEE),mmy_rrankk,p,souurcee,deest,tagg,ieerr,dattacc-进入MMPI系系统 caall MPII_Innit(ierrr) caall MPII_Coom
12、m_rannk(MMPI_COMMM_WWORLLD,mmy_rrankk,ieerr) caall MPII_Coomm_sizze(MMPI_COMMM_WWORLLD,pp,ieerr)cc-数据交交换 daata=0 taag = 5 soourcce= my_rannk-11 iff(soourcce.eeq.-1) souurcee=p-1 deest =myy_raank+1 iff(deest.eq.p) desst=00 iff(myy_raank.eq.0) theen caall MPII_Seend(datta,11,MPPI_IINTEEGERR,deest,tagg
13、,MPPI_CCOMMM_WOORLDD,ieerr) caall MPII_Reecv(datta,11,MPPI_IINTEEGERR,soourcce,ttag,MPII_COOMM_WORRLD,staatuss,ieerr) ellse caall MPII_Reecv(datta,11,MPPI_IINTEEGERR,soourcce,ttag,MPII_COOMM_WORRLD,staatuss,ieerr) daata=datta+11 caall MPII_Seend(datta,11,MPPI_IINTEEGERR,deest,tagg,MPPI_CCOMMM_WOORLD
14、D,ieerr) enndiffcc-广播数数据 caall MPII_Bccastt(daata,1,MMPI_INTTEGEER,00,MPPI_CCOMMM_WOORLDD,ieerr)cc-打打印输出出 iff(myy_raank.eq.0) theen iff(daata.eq.p-11) tthenn prrintt *,”Succcesssfuul, datta=”,daata ellse prrintt *,”Faiilurre, datta=”,daata enndiff enndiffc ccalll MPPI_FFinaalizze(iierrr) eendl 编译命令:
15、 mmpiff77 -oo eexamm.e exxampple.f l 运行命令: mmpirrun np 4 exxam.e l 运行效果:MPII系统选选择相同同或不同同的4个个处理机机,在每每个处理理机上运运行程序序代码eexamm.e。 MPII函数 进进程0 进程11 进程程2 进进程3进入MPI系统 Innit() Comm_rannk() myy_raank=0 myyrannk=11 myrrankk=2 mmy_rrankk=3Comm_sizze() p=4 p=44 pp=4 pp=4 taag=55,daata=0 tagg=5,datta=00 ttag=5,dda
16、taa=0 tagg=5,datta=00 soourcce=33 ssourrce=0 souurcee=1 souurcee=2 ddestt=1 desst=22 deest=3 ddestt=0数据交换 seend() reccv() reecv() reccv() rrecvv() ddataa=daata+1 空空 sennd() 闲闲 datta=ddataa+1 等等 ssendd() 待待 daata=datta+11 消消息传递递 ssendd()Broaddcasst() seend() reccv() reecv() reccv()退出MPI系统 ouutpuut “d
17、atta”Finallizee()3MPII重要概概念l 进程序号(rrankk);各各进程通通过函数数MPII_Coomm_rannk()获取各各自的序序号;l 消息号:消消息的标标号;l 通信器(CCommmuniicattor):1)理解为为一类进进程的集集合,且且在该集集合内,进进程间可可以相互互通信;类比:邮局、电电话局、国国际网;2)任任何MPPI通信信函数均均必须在在某个通通信器内内发生;3) MPII系统提提供省缺缺的通信信器MPPI_CCOMMM_WOORLDD,所有有启动的的MPII进程通通过调用用函数MMPI_Iniit()包含在在该通信信器内;4)各各进程通通过函数数M
18、PII_Coomm_sizze()获取通通信器包包含的(初始启启动)的的MPII进程个个数;l 消息:分为为数据(ddataa)和包装(eenveeloppe)两两个部分分,其中中,包装装由接收收进程序序号、发送进进程序号号、消息标标号和通信器器四部分分组成,数数据包含含用户将将要传递递的内容容;l 进程组:一一类进程程的集合合,在它它的基础础上,可可以定义义新的通通信器;l 基本数据类类型:对对应于FFORTTRANN和C语语言的内内部数据据类型(IINTEEGERR,REEAL,DDOUBBLE PREECISSIONN,COOMPLLEX,LLOGIICALL,CHHARAACTEER)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 国家 973 项目 性能 计算 环境 支持 讲座 19140
限制150内