- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DCS11(并行计算MPI)
MPI 并行程序设计
MPI 及其历史
• 消息传递接口(Message Passing Interface ,简称MPI )是一个编程接口标准
• 定义了一组可移植的编程接口
• 不是一种具体的编程语言
• 1994 年发布第一个版本MPI- 1 (MPI v1.0 )
• 1997 年发布第二个版本MPI-2 (MPI v2.0 )
• 典型的 MPI 软件包
– MPICH、LAM MPI 以及INTEL MPI
MPICH
• MPICH 是影响最大、用户最多的MPI 实现
• 由美国的Argonne 国家实验室开发
• MPICH 的特点:
– 开放源码;
– 与MPI 标准同步发展;
– 支持多程序多数据(MPMD )编程和异构集群系统;
– 支持C/C++ 、Fortran 77 和Fortran 90 的绑定支持类Unix 和Windows NT
平台;
– 支持环境非常广泛,包括多核、SMP、集群和大规模并行计算系统
单个进程(process )
进程是一个程序,同时包含它的执行环境(内存、寄存器、程序计数器等),是操作
系统中独立存在的可执行的基本程序单位。
通俗理解:串行应用程序编译形成的可执行代码,分为“指令”和“数据”两个部
分,并在程序执行时“独立地申请和占有”内存空间,且所有计算均局限于该内存空间。
单机内多个进程
多个进程可以同时存在于单机内同一操作系统:由操作系统负责调度分时共享处
理机资源(CPU、内存、存储、外设等)。
进程间相互独立 (内存空间不相交):在操作系统调度下各自独立地运行,例如
多个串行应用程序在同一台计算机中运行。
进程间可以相互交换信息:例如数据交换、同步等待,消息是这些交换信息的基
本单位,消息传递是指这些信息在进程间的相互交换,是实现进程间通信的唯一
方式。
最基本的消息传递操作:发送消息(send )、接受消息(receive )、进程同步(barrier )、
规约(reduction )。
消息传递的实现:共享内存或信号量,用户不必关心。
1
包含于通过网络联接的不同计算机的多个进程
进程独立存在:进程位于不同的计算机,由各自独立的操作系统调度,享有独立
的CPU 和内存资源。
进程间相互信息交换:消息传递。
消息传递的实现:基于网络socket 机制,用户不必关心。
2
基于消息传递的并行程序执行模式
• 基于消息传递的并行程序可以划分:
– 单程序多数据(SPMD),如图。
– 多程序多数据(MPMD ),除初始启动多个可执行代码,其余与SPMD
模式一致。
3
MPI-2 有287 个调用接口,基本函数有:
1.MPI 初始化
int MPI_Init(int *argc, char ***argv)
2 .MPI 结束
int MPI_Finalize(void)
3 .获取当期进程标识
int MPI_Comm_rank(MPI_Comm comm, int *rank)
4 .获取通信域包含的进程总数
int MPI_Comm_size(MPI_Comm comm, int *size)
5 .计时
double MPI_Wtime(void)
MPI_WTIME返回一个用浮点数表示的秒数,它表示从过去某一时刻到调用时刻
所经历的时间。
6 .获取机器的名字
int MPI_Get_processor_name ( char *name, int *resultlen)
7 .异常终止MPI程序的执行
int MPI_Abort(
文档评论(0)