超性能计算详解.pptVIP

  • 0
  • 0
  • 约1.63万字
  • 约 158页
  • 2023-04-09 发布于广东
  • 举报
进程1 进程2 …… 进程N-1 进程0接收消息并打印 进程0接收任意源和任意标签的消息 第95页,共158页。 程序分析 进程0: 接收来自于其它进程的消息 MPI_Recv(……); source=MPI_ANY_SOURCE tag=MPI_ANY_TAG 其它进程: 向进程0发送消息 MPI_Send(……); dest=0; tag=任意值 第96页,共158页。 例题 编写一个MPI程序求取在给定端点时曲线与x轴所围成的面积 问题的解决步骤: (1)分析串行机上求取曲线与X轴所成面积的方法与程序实现 (2)并行机上任务的划分方法 (3)通信的实现 (4)任务组合 (5)程序映射 第97页,共158页。 (1)串行机上求取面积的方法与程序实现 伪代码: h=(b-a)/n; estimat=(f(a)+f(b))/2; for(i=1;in;i++) estimat += f(x_i); estimat *= h; 第98页,共158页。 (2)并行机上任务的划分方法 P1 P2 P3 P4 n=4m 方法一、按每个进程承担的平均数划分 第99页,共158页。 方法二、轮转划分 第100页,共158页。 实现步骤 1、各进程分别求出各自的区域面积大小; 2、除零进程外,其它几个进程分别将各自计算得到的面积值发送给进程零; 3、进程零执行comm_sz-1次接收操作,接收从其它所有进程发送过来的消息; 4、进程零对所有进程的计算结果进行求和,求取面积并输出 第101页,共158页。 (3)通信 进程1,2,3……comm_sz-1各执行一次发送操作,进程0执行comm_sz次接收操作 第102页,共158页。 (4)映射 根据实际情况编写程序 第103页,共158页。 进阶:MPI的数据输入 第104页,共158页。 第三讲 简单的MPI程序示例 第105页,共158页。 并行计算应用及实战 王鹏 吕爽等编著 机械工业出版社 MPI并行程序设计实例教程 张武生 薛巍等编著 清华大学出版社 第106页,共158页。 讲课内容: 几个简单的MPI程序,实现一些简单功能 目的: 学会使用MPI来实现一定的功能 学习一些新的MPI调用 第107页,共158页。 一、 用MPI实现计时功能 1、MPI_WTIME调用的说明原型: double MPI_Wtime(void) 功能:返回一个用浮点数表示的秒数,从某一时刻到调用时刻所经历的时间(s) 注意:调用产生结果的单位为秒,需要用户自己转换成其它时间单位。 出错: (1)没有初始化; (2)MPI程序已经结束。 第108页,共158页。 2、MPI_WTIME函数的应用方法 double start_time,end_time,total_time; ………(变量说明、初始化与其它计算) start_time=MPI_Wtime(); ……….(需要计时的部分) end_time=MPI_Wtime(); total_time=end_time-start_time; Printf(“It tooks %f seconds\n”,total_time); 第109页,共158页。 3、MPI_WTICK调用的说明原型: double MPI_Wtick(void) 功能:返回计算机时钟滴答一下所占用的时间(s){计算机所能分辨的最小时间} 出错: (1)没有初始化; (2)MPI程序已经结束。 第110页,共158页。 程序示例 ……(包含头文件 ) int main(int argc, char **argv) { double t1,t2,tick; int rank; MPI_Init(argc,argv); MPI_Comm_rank(MPI_COMM_WORLD,rank); t1=MPI_Wtime(); /*获取起始时间*/ Sleep(1000); /*

文档评论(0)

1亿VIP精品文档

相关文档