并行程序设计简介 曙光5000A超级计算机 曙光信息产业(北京)有限公司乡照
2021年1月 1/55 并行程序设计简介 曙光信息产业(北京)有限公司
乡 曙光 计算,改变您的现在 DAWNING 饼座内容提示 □@基本概念 画基本的MPI 画点到点通信 Point to point 4MP中AP的主要内容,为MP|最基本,最重要 的内容 MP程序的编译和运行 实例 2021年1月 2/55
2021年1月 2/55 讲座内容提示 基本概念 基本的MPI 点到点通信(Point to point) MPI中API的主要内容,为MPI最基本,最重要 的内容 MPI程序的编译和运行 实例
乡 曙光 计算,改变您的现在 DAWNING 参考文献 MP/-the complete reference. Marc Snir, MIT Press,1998.|SBN0262692155,0262692163. Using MP/: portable parallel programming with the message-passing interface, William Gropp, MIT Press, 1999. 2nd edition ISBN 0262571323 Using MP/-2: advanced features of the message- passing interface. William Gropp, MIT Press, 1999.|SBN0262571331 高性能计算并行编程技术M1并行程序设计,都志 辉,清华大学出版社,2001年8月。 2021年1月 3/55
2021年1月 3/55 参考文献 MPI--the complete reference. Marc Snir, MIT Press, 1998. ISBN 0262692155, 0262692163. Using MPI : portable parallel programming with the message-passing interface, William Gropp, MIT Press, 1999. 2nd edition. ISBN 0262571323. Using MPI-2 : advanced features of the messagepassing interface. William Gropp, MIT Press, 1999. ISBN 0262571331. 高性能计算并行编程技术-MPI并行程序设计,都志 辉,清华大学出版社, 2001年8月
乡 曙光 计算,改变您的现在 DAWNING 并行编程标准 多线程库标准 T- Win32 AP POSⅨ threads @编译制导标准 ■- OpenMP一可移植共享存储并行编 程标准 Q消息传递库标准 本讨论的重点>-MP T-PVM 2021年1月 4/55
2021年1月 4/55 多线程库标准 – Win32 API. – POSIX threads. 编译制导标准 – OpenMP – 可移植共享存储并行编 程标准. 消息传递库标准 – MPI – PVM 并行编程标准 本讨论的重点
乡 曙光 计算,改变您的现在 DAWNING 消息传递并行程序设计 消息传递并行程序设计 指用户必须通过显式地发送和接收消息来实现处理机间的数据交 换 画在这种并行编程中,每个并行进程均有自己独立的地址空间,相 互之间访问不能直接进行,必须通过显式的消息传递来实现。 ■这种编程方式是大规模并行处理机(MPP)和机群( Cluster) 采用的主要编程方式。 并行计算粒度大,特别适合于大规模可扩展并行算法 由于消息传递程序设计要求用户很好地分解问题组织不同进程间 的数据交换并行计算粒度大特别适合于大规模可扩展并行算法 消息传递是当前并行计算领域的一个非常重要的并行程序 设计方式 2021年1月 5/55
2021年1月 5/55 消息传递并行程序设计 消息传递并行程序设计 指用户必须通过显式地发送和接收消息来实现处理机间的数据交 换。 在这种并行编程中,每个并行进程均有自己独立的地址空间,相 互之间访问不能直接进行,必须通过显式的消息传递来实现。 这种编程方式是大规模并行处理机(MPP)和机群(Cluster) 采用的主要编程方式。 并行计算粒度大,特别适合于大规模可扩展并行算法 由于消息传递程序设计要求用户很好地分解问题,组织不同进程间 的数据交换,并行计算粒度大,特别适合于大规模可扩展并行算法. 消息传递是当前并行计算领域的一个非常重要的并行程序 设计方式
乡 曙光 计算,改变您的现在 DAWNING 什么是MP? e Massage Passing Interface:是消息传递 函数库的标准规范,由MP论坛开发,支持 Fortran和c 种新的库描述,不是一种语言。共有上百个 函数调用接口,在 Fortran和C语言中可以直接 对这些函数进行调用 画MP是一种标准或规范的代表,而不是特指某 个对它的具体实现 ■MP是一种消息传递编程模型,并成为这种编 程模型的代表和事实上的标准 2021年1月 6/55
2021年1月 6/55 什么是MPI? Massage Passing Interface:是消息传递 函数库的标准规范,由MPI论坛开发,支持 Fortran和C 一种新的库描述,不是一种语言。共有上百个 函数调用接口,在Fortran和C语言中可以直接 对这些函数进行调用 MPI是一种标准或规范的代表,而不是特指某 一个对它的具体实现 MPI是一种消息传递编程模型,并成为这种编 程模型的代表和事实上的标准
乡 曙光 计算,改变您的现在 DAWNING MP的发展过程 发展的两个阶段 MP11:1995 4MPCH:是MP最流行的非专利实现由 Argonne国 家实验室和密西西比州立大学联合开发具有更好的 可移植性 MP12~20:动态进程,并行MO,远程存储访问、 支持F90和C++(1997) 2021年1月 7/55
2021年1月 7/55 MPI的发展过程 发展的两个阶段 MPI 1.1: 1995 MPICH:是MPI最流行的非专利实现,由Argonne国 家实验室和密西西比州立大学联合开发,具有更好的 可移植性. MPI 1.2~2.0:动态进程, 并行 I/O, 远程存储访问、 支持F90和C++(1997)
乡 曙光 计算,改变您的现在 DAWNING 为什么要用MP? @高可移植性 画MP已在BMPC机上、 MS Windows上、所有主要的 Unix工作站上和所有主流的并行机上得到实现。使用 MP作消息传递的C或 Fortran并行程序可不加改变地运 行在|BMPC、 MS Windows、Unix工作站、以及各种 并行机上。 2021年1月 8/55
2021年1月 8/55 为什么要用MPI? 高可移植性 MPI已在IBM PC机上、MS Windows上、所有主要的 Unix工作站上和所有主流的并行机上得到实现。使用 MPI作消息传递的C或Fortran并行程序可不加改变地运 行在IBM PC、MS Windows、Unix工作站、以及各种 并行机上
乡 曙光 计算,改变您的现在 DAWNING 从简单入手 一Init和Fina1ize 下面我们首先分别以C语言和 Fortran语言 的形式给出一个最简单的MP并行程序 He|lo(下页) Q该程序在终端打印出 Hello world!字样 “ Hello world:一声来自新生儿的问候 2021年1月 9/55
2021年1月 9/55 :从简单入手 —Init和Finalize 下面我们首先分别以C语言和Fortran语言 的形式给出一个最简单的MPI并行程序 Hello (下页). 该程序在终端打印出Hello World!字样. “Hello World”:一声来自新生儿的问候
乡 曙光 计算,改变您的现在 DAWNING Hello world(c) #include #include mpi.h main( int argc char *argv[ MP工Init(& argc, &argv) printf("Hello, world! \n")i PI Finalize o 2021年1月 10/55
2021年1月 10/55 Hello world(C) #include #include "mpi.h“ main( int argc, char *argv[] ) { MPI_Init( &argc, &argv ); printf( "Hello, world!\n" ); MPI_Finalize(); }