- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HIT PACT实验室
张元竞
2009.03.06
内容大纲
概要介绍
收集程序运行记录
规整化运行记录
压缩运行记录
构建模版程序
内容大纲
概要介绍
收集程序运行记录
规整化运行记录
压缩运行记录
构建模版程序
并行程序的性能测量
大规模的并行程序,特别是科学计算程序
已经被广泛应用
测量或估计一些运行时间较长的并行程序
的性能是困难或代价高昂的
因此,提出利用“模版程序”进行测量的方法
模版程序(performance skeleton)
用来模拟大规模并行程序的短小程序
具有与原始程序类似的结构和性能特征
运行时间小于原始程序
构建示意图
MPI简介
以下将以使用MPI库的并行程序为例来说
明模版程序的构建
MPI是一种基于消息传递模型的并行程序
的标准库,支持在C和FORTRAN中的并
行扩展
使用MPI开发出的是SPMD的并行程序
C+MPI的例程(HelloWorld)
void mainintargc, char **argv
intmyid,numprocs;
intnamelen;
char processor_nameMPI_MAX_PROCESSOR_NAME;
MPI_Initargc,argv;
MPI_Comm_rankMPI_COMM_WORLD,myid;
MPI_Comm_sizeMPI_COMM_WORLD,numprocs;
MPI_Get_processor_nameprocessor_name,namelen;
fprintfstderr, Hello World! Process %d of %d on %s\n,
myid,numprocs,processor_name;
MPI_Finalize;
可能的运行结果
在四台机器 上运行四个进程,可能的
输出结果如下:
内容大纲
概要介绍
收集程序运行记录
规整化运行记录
压缩运行记录
构建模版程序
收集程序的运行记录
为构建模版程序,只需要提取实际运行时
MPI消息传递函数的调用情况
使用工具PMPI记录
每条记录包括函数名、参数列表、起止时
间等信息
程序记录的例子
内容大纲
概要介绍
收集程序运行记录
规整化运行记录
压缩运行记录
构建模版程序
规整化运行记录
对记录进行整理和筛选,为生成SPMD的
模版程序做好准备
将分散的记录,转化为统一的通信语句
使用“模式库” 匹配确定程序的通信模式,
据此进行规整化
并行程序的通信模式
将各进程看作结点,在有通信交互的结点
之间连边,对不同程序将构成不同的通信
关系图。
通信模式就是将同类的通信关系图表示为
一种模式
一些简单的通信模式
N-Dimension Grid: 1D Linear array and
2D Grid
N-Dimension Torus: 1D Ring and 2D
Torus
Six point stencil on 2D Torus
Hypercubes
All to All
Binary Tree
通信模式库
模式库中按照每一类模式,存储相应的规
则,每条规则能够根据不同的参数产生出
相应的通信关系图
使用0/1矩阵表示通信关系图
模式库能够不断地加入新通信模式
通信模式匹配
统计每一对进程之间的通信数量/流量,
并转化为1/-1矩阵
随后有两种方法进行通信模式匹配
匹配法(Match Operation)
包含法(Contain Operation)
生成1/-1矩阵
这是一个具有8个进程的简单例子:
过滤掉过低的通信记录(1)
如下表所示,可以考虑设置阈值,将过低
的通信忽略掉:
过滤掉过低的
文档评论(0)