- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲
消息传递编程接口MPI
一、MPI 编程基础
主要内容
MPI 安装、程序编译与运行
MPI 编程基础
MPI 程序基本结构
MPI 数据类型
消息发送和接收
MPI 一些常用函数
MPI 介绍
Message Passing Interface
消息传递编程标准,目前最为通用的并行编程方式
提供一个高效、可扩展、统一的并行编程环境
MPI 是一个库,不是一门语言,MPI 提供库函数/过程
供C/FORTRAN 调用
MPI 是一种标准或规范的代表而不特指某一个对它的
具体实现。迄今为止所有的并行计算机制造商都提供对
MPI 的支持
MPI 是一种消息传递编程模型,最终目的是服务于进
程间通信这一目标
MPI 介绍
MPI 的目标
较高的通信性能;
较好的程序可移植性;
强大的功能
MPI 的实现—— 免费版本
1994 年公布MPI 1.0 标准,1998 年公布2.0 标准
MPI 1.0 :MPICH 1.2.7
MPI 2.0 :MPICH2 1.0.7
MPI 商业版本
一些厂商也提供商业版的MPI 系统,许多是在MPICH
的基础上优化产生的
MPI 下载与安装
MPICH 下载
/
MPICH 的安装
参考MPICH Install Guide
MPICH 的使用
参考MPICH User Guide
MPI 编程基本概念
MPI 进程
MPI 程序中一个独立参与通信的个体
MPI 进程组
MPI 程序中由部分或全部进程构成的有序集合
每个进程都被赋予一个所在进程组中唯一的序号(rank),
用于在该组中标识该进程,称为进程号,取值从0 开始
MPI 进程与通信器
MPI 通信器/通信子(Communicator)
MPI 程序中进程间的通信必须通过通信器进行
通信器分为域内通信器 (同一进程组内的通信)和域间
通信器 (不同进程组的进程间的通信)
MPI 程序启动时自动建立两个通信器:
MPI_COMM_WORLD :包含程序中所有MPI 进程
MPI_COMM_SELF :有单个进程独自构成,仅包含自己
MPI 程序中,一个MPI 进程
由一个进程组和在该组中的进程号唯一确定;或
由一个通信器和在该通信器中的进程号唯一确定
进程号是相对进程组或通信器而言的,同一进程在不
同的进程组或通信器中可以有不同的进程号
MPI 消息
进程号是在进程组或通信器被创建时赋予的
空进程:MPI_PROC_NULL
与空进程通信时不做任何操作
消息(message)
一个消息指进程间进行的一次数据交换
一个消息由通信器、源地址、目的地址、消息标签、
和数据构成
第一个MPI Fortran 程序
mpif.h 是MPI相对于FORTRAN的头文件
program main
include mpif.h
character * (MPI_MAX_PROCESSOR_NAME) proc_name
integer myid, numprocs, namelen, rc, ierr
call MPI_INIT ( ierr )
call MPI_COMM_RANK ( MPI_COMM_WORLD, myid, ierr )
call MPI_COMM_SIZE ( MPI_COMM_WORLD, numprocs, ierr )
call MPI_GET_PROCESSOR_NAME (proc_name, namelen, ierr)
write(*,10) myid, numprocs, proc_name
10 FORMAT(Hello, I am
文档评论(0)