华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)07 消息传递编程接口MPI(二)消息传递

東 華柬师花大学|数学科学学院 chool of Ma atical Sci East China Normal Universit 消息传递编程接口MPI (二)消息传递 http://math.ecnu.edu.cn/-jypan
http://math.ecnu.edu.cn/~jypan 消息传递编程接口 MPI (二)消息传递

华东师范大学数学科学学院 目录页 School of Mathematical Sciences,ECNU Contents 1 点对点通信 2 消息发送模式 3 聚合通信 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 目录页 Contents 华东师范大学 数学科学学院 School of Mathematical Sciences, ECNU http://math.ecnu.edu.cn/~jypan 1 2 点对点通信 消息发送模式 3 聚合通信

华东师范大学数学科学学院 目录页 School of Mathematical Sciences,ECNU Contents MPI点对点通信 ■ 阻塞型通信 1 点对点通信 非阻塞型通信 2 消息发送模式 ■ 检测函数 3 聚合通信 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 目录页 Contents 华东师范大学 数学科学学院 School of Mathematical Sciences, ECNU http://math.ecnu.edu.cn/~jypan 1 2 点对点通信 1 MPI 点对点通信 3 消息发送模式 聚合通信 阻塞型通信 非阻塞型通信 检测函数

阻塞型通信 MPI中的通信分为:阻塞型和非阻塞型 阻塞型(blocking) 阻塞型通信函数需要等待指定的操作实际完成,或所涉及的数据被MPI 系统安全备份后才返回。 ●阻塞型通信是非局部操作,它的完成可能涉及其它进程 ●MPI SEND和MPI RECV都是阻塞型的 http://math.ecnu.edu.cn/-jypan 4
http://math.ecnu.edu.cn/~jypan 4 阻塞型通信 MPI 中的通信分为:阻塞型和非阻塞型 阻塞型通信函数需要等待指定的操作实际完成,或所涉及的数据被 MPI 系统安全备份后才返回。 阻塞型通信是非局部操作,它的完成可能涉及其它进程 MPI_SEND 和 MPI_RECV 都是阻塞型的 阻塞型 (blocking)

阻塞型通信 非阻塞型(non blocking) 非阻塞型通信函数总是立即返回,实际操作由MPI后台进行,需要调用 其它函数来查询通信是否完成。 ●非阻塞型通信是局部操作 ●在实际操作完成之前对相关数据区域的操作是不安全的 ●在某些并行系统上,使用非阻塞型函数可以实现计算与通信的重叠 ●常用的非阻塞型通信函数为MPI ISEND和MPI IRECV http://math.ecnu.edu.cn/~jypan 5
http://math.ecnu.edu.cn/~jypan 5 阻塞型通信 非阻塞型通信函数总是立即返回,实际操作由 MPI 后台进行,需要调用 其它函数来查询通信是否完成。 非阻塞型通信是局部操作 在实际操作完成之前对相关数据区域的操作是不安全的 在某些并行系统上,使用非阻塞型函数可以实现计算与通信的重叠 常用的非阻塞型通信函数为 MPI_ISEND 和 MPI_IRECV 非阻塞型 (non blocking)

非阻塞型发送函数 MPI ISEND(buf,count,datatype,dest,tag,comm,request) int MPI Isend(void *buf,int count, MPI_Datatype datatype,int dest, int tag,MPI_Comm comm, MPI_Request *request) MPI_ISEND(BUF,COUNT,DATATYPE,DEST,TAG, COMM,REQUEST,IERR) F77 BUF(*) INTEGER COUNT,DATATYPE,DEST,TAG, COMM,REQUEST,IERR ●这里request是输出参数,为请求句柄,以备将来查询 ·其它参数含义与MPI SEND相同 ●在C中request的数据类型是MPI Request指针,FORTRAN中为整型 http://math.ecnu.edu.cn/-jypan 6
http://math.ecnu.edu.cn/~jypan 6 非阻塞型发送函数 MPI_ISEND(buf, count, datatype, dest, tag, comm, request) C int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request) F77 MPI_ISEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERR) BUF(*) INTEGER COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERR 这里 request 是输出参数,为请求句柄,以备将来查询 其它参数含义与 MPI_SEND 相同 在 C 中 request 的数据类型是 MPI_Request 指针,FORTRAN 中为整型

非阻塞型接收函数 MPI IRECV(buf,count,datatype,source,tag,comm,request) int MPI Irecv(void *buf,int count, MPI_Datatype datatype,int source, int tag,MPI_Comm comm, MPI_Request *request) MPI_IRECV(BUF,COUNT,DATATYPE,SOURCE, TAG,COMM,REQUEST,IERR) F77 BUF(*) INTEGER COUNT,DATATYPE,DEST,TAG, COMM,REQUEST,IERR ●参数中没有status,消息的查询使用request 阻塞型/非阻塞型通信函数使用时要保持一致性! http://math.ecnu.edu.cn/-jypan
http://math.ecnu.edu.cn/~jypan 7 非阻塞型接收函数 MPI_IRECV(buf, count, datatype, source, tag, comm, request) C int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request) F77 MPI_IRECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERR) BUF(*) INTEGER COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERR 参数中没有 status,消息的查询使用 request † 阻塞型/非阻塞型通信函数使用时要保持一致性!

非阻塞型通信检测 MPI WAIT(request,status) 参数 IN request 通信请求 OUT status 消息状态 C int MPI_Wait(MPI_Request *request, MPI_Status *status) MPI_WAIT(REQUEST,STATUS,IERR) F77 INTEGER REQUEST,IERR, STATUS(MPI_STATUS_SIZE) 该函数是阻塞型的,它必须等待指定的通信请求完成后才能返回,与之 相应的非阻塞型函数是MPI TEST。成功返回时,status中包含关于所 完成的通信的消息,相应的通信请求被释放,即request被置成 MPI REQUEST NULL http://math.ecnu.edu.cn/-jypan 8
http://math.ecnu.edu.cn/~jypan 8 非阻塞型通信检测 MPI_WAIT(request, status) 参数 IN request 通信请求 OUT status 消息状态 C int MPI_Wait(MPI_Request *request, MPI_Status *status) F77 MPI_WAIT(REQUEST, STATUS, IERR) INTEGER REQUEST, IERR, STATUS(MPI_STATUS_SIZE) 该函数是阻塞型的,它必须等待指定的通信请求完成后才能返回,与之 相应的非阻塞型函数是 MPI_TEST。成功返回时,status 中包含关于所 完成的通信的消息,相应的通信请求被释放,即 request 被置成 MPI_REQUEST_NULL

非阻塞型通信检测 MPI_TEST(request,flag,status) OUT 参数 f1ag操作是否完成标志 (其它参数含义同MPI WAIT) int MPI_Test(MPI_Request *request, int *flag,MPI_Status *status) MPI_TEST(REQUEST,FLAG,STATUS,IERR) F77 LOGICAL FLAG INTEGER REQUEST,IERR, STATUS(MPI_STATUS_SIZE) ·非阻塞型通信检测函数,不论通信是否完成都立刻返回,功能同 MPI WAIT http://math.ecnu.edu.cn/~jypan 9
http://math.ecnu.edu.cn/~jypan 9 非阻塞型通信检测 MPI_TEST(request, flag, status) 参数 OUT flag 操作是否完成标志 (其它参数含义同 MPI_WAIT) C int MPI_Test(MPI_Request *request, int *flag, MPI_Status *status) F77 MPI_TEST(REQUEST, FLAG, STATUS, IERR) LOGICAL FLAG INTEGER REQUEST, IERR, STATUS(MPI_STATUS_SIZE) 非阻塞型通信检测函数,不论通信是否完成都立刻返回,功能同 MPI_WAIT

MPI WAITANY MPI WAITANY(count,array_of_requests,index,status) i IN count 请求句柄的个数 参数 INOUT array_.of_requests请求句柄数组 OUT index 已完成通信操作的句柄指标 OUT status 消息状态 int MPI_Waitany(int count, ! MPI_Request *array_of_requests, int *index,MPI_Status *status) MPI_WAITANY(COUNT,ARRAY_OF_REQUESTS, F77 INDEX,STATUS,IERR) INTEGER COUNT,ARRAY_OF_REQUESTS(*), INDEX,IERR,STATUS(MPI_STATUS_SIZE) ·所有请求句柄中至少有一个已经完成才返回,阻塞型函数 ·若有多个请求句柄已完成,则随机选择其中一个并立即返回 http://math.ecnu.edu.cn/-jypan 10
http://math.ecnu.edu.cn/~jypan 10 MPI_WAITANY MPI_WAITANY(count, array_of_requests, index, status) 参数 IN count 请求句柄的个数 INOUT array_of_requests 请求句柄数组 OUT index 已完成通信操作的句柄指标 OUT status 消息状态 C int MPI_Waitany(int count, MPI_Request *array_of_requests, int *index, MPI_Status *status) F77 MPI_WAITANY(COUNT, ARRAY_OF_REQUESTS, INDEX, STATUS, IERR) INTEGER COUNT, ARRAY_OF_REQUESTS(*), INDEX, IERR, STATUS(MPI_STATUS_SIZE) 所有请求句柄中至少有一个已经完成才返回,阻塞型函数 若有多个请求句柄已完成,则随机选择其中一个并立即返回
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)MPI - A Message-Passing Interface Standard Version 4.0.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)MPI - A Message-Passing Interface Standard Version 3.1.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)07 消息传递编程接口 MPI(一)编程基础.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)06 线性方程组直接法并行计算.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)05 矩阵 - 矩阵乘积并行算法(OpenMP).pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)05 矩阵 - 向量乘积并行算法(OpenMP).pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)04 OpenMP并行编程(三)运行库函数、环境变量.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)04 OpenMP并行编程(二)工作共享结构、同步与数据环境.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)OpenMP Application Programming Interface Examples Version 4.0.2.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)OpenMP Application Programming Interface Version 5.0.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)OpenMP Application Program Interface Version 4.0.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)OpenMP API 5.0.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)OpenMP API 4.0.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)04 OpenMP并行编程(一)并行编程介绍、并行域与工作共享.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)应用 - 矩阵乘积的快速算法.pdf
- 华东师范大学:《C语言程序设计》课程教学资源(学习笔记)C语言程序设计学习笔记.pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)C Reference Card.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)03 C语言编程介绍.pdf
- Linux操作系统《Linux就该这么学》书籍电子版(第2版)Linux就该这么学(刘遄,2021).pdf
- 《高等数值分析(高性能计算/并行计算)》课程教学资源(参考资料)Linux操作系统 - Vim Cheat Sheet for Programmers.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)08 矩阵向量乘积并行算法(基于MPI).pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)08 矩阵矩阵乘积并行算法(基于MPI).pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)07 消息传递编程接口MPI(三)MPI 数据类型.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)07 消息传递编程接口MPI(四)进程与通信器操作.pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)09 线性方程组并行直接法(基于 MPI).pdf
- 华东师范大学:《高等数值分析(高性能计算/并行计算)》课程教学资源(讲义)10 二维Poisson方程的并行求解算法(基于MPI).pdf
- 大连大学:信息与计算科学专业课程教学大纲汇编(2010).doc
- 大连大学:物理学(多媒体与网络技术)专业课程教学大纲汇编(2010).doc
- 大连大学:计算机科学与技术专业课程教学大纲汇编(2010).doc
- 石河子大学:《编译原理》课程教学资源(教案讲义)编译原理教案 Principle of Compiler(负责人:张丽).doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第一套.doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第二套.doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第三套.doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第五套.doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第四套.doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第七套.doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第六套.doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第九套.doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第八套.doc
- 石河子大学:《编译原理》课程教学资源(试卷习题)第十套.doc