DAWNING 乡 曙光 DAWNING MP的发展过程 科拔计算未来 发展的两个阶段 -MP1.1:1995 MPCH:是MP|最流行的非专利实现,由 Argonne国家 实验室和密西西比州立大学联合开发,具有更好的可 移植性. MP|1.2~2.0:动态进程,并行MO,支持F90和 C++(1997) 2021年1月 MP|并行程序设计 8/217
2021年1月 MPI并行程序设计 8/217 MPI的发展过程 • 发展的两个阶段 – MPI 1.1: 1995 • MPICH:是MPI最流行的非专利实现,由Argonne国家 实验室和密西西比州立大学联合开发,具有更好的可 移植性. – MPI 1.2~2.0:动态进程, 并行 I/O, 支持F90和 C++(1997)
DAWNING 乡 曙光 DAWNING 为什么要用MP? 科拔计算未来 高可移植性 MP|已在|BMPC机上、 MS Windows上、所有主要的 Uniⅸx工作站上和所有主流的并行机上得到实现。使用 MP作消息传递的C或 Fortran并行程序可不加改变地运 行在|BMPC、 MS Windows、Uni工作站、以及各种并 行机上 2021年1月 MP|并行程序设计 9/217
2021年1月 MPI并行程序设计 9/217 为什么要用MPI? • 高可移植性 – MPI已在IBM PC机上、MS Windows上、所有主要的 Unix工作站上和所有主流的并行机上得到实现。使用 MPI作消息传递的C或Fortran并行程序可不加改变地运 行在IBM PC、MS Windows、Unix工作站、以及各种并 行机上
DAWNING 乡 曙光 DAWNING 讲座内容提示 科拔计算未来 ·基本的MP 基本概念 点到点通信( Point to point) MP|中AP的主要内容,为MP最基本,最重要的内容 MP序的编译和运行 ·深入MP 用户自定义派生数据类型User- defined(Derived) data type 事实上MP的所有数据类型均为MP自定义类型 支持异构系统 允许消息来自不连续的或类型不一致的存储区(结构数组散元 集合通信( Collective ·数据移动,数据聚集,同步 基于 point to point构建 MP环境管理函数 组,上下文和通信空间通信子的管理 实例 2021年1月 MP|并行程序设计 10/217
2021年1月 MPI并行程序设计 10/217 讲座内容提示 • 基本的MPI – 基本概念 – 点到点通信(Point to point) • MPI中API的主要内容,为MPI最基本,最重要的内容 – MPI程序的编译和运行 • 深入MPI – 用户自定义(/派生)数据类型(User-defined(Derived) data type) • 事实上MPI的所有数据类型均为MPI自定义类型 – 支持异构系统 – 允许消息来自不连续的或类型不一致的存储区(结构,数组散元) – 集合通信(Collective) • 数据移动,数据聚集,同步 • 基于point to point 构建 – MPI环境管理函数 • 组,上下文和通信空间/通信子的管理 • 实例
DAWNING 乡 曙光 DAWNING 从简单入手! 科拔计算未来 下面我们首先分别以C语言和 Fortran语言的 形式给出一个最简单的MP|并行程序He|o (下页) 该程序在终端打印出 Hello world!字样. ·“He| lo World:一声来自新生儿的问候 2021年1月 MP|并行程序设计 11/217
2021年1月 MPI并行程序设计 11/217 从简单入手! • 下面我们首先分别以C语言和Fortran语言的 形式给出一个最简单的MPI并行程序Hello (下页). • 该程序在终端打印出Hello World!字样. • “Hello World”:一声来自新生儿的问候
DAWNING 乡 曙光 DAWNING 科拔计算未来 Hello world(c) include <stdio. h> include "mpi. h w main( int argc, char *argv [] MPI Init( &argc, &argv printf("Hello, world! \n") MPI Finalize 2021年1月 MP|并行程序设计 12/217
2021年1月 MPI并行程序设计 12/217 Hello world(C) #include <stdio.h> #include "mpi.h“ main( int argc, char *argv[] ) { MPI_Init( &argc, &argv ); printf( "Hello, world!\n" ); MPI_Finalize(); }