- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行语言EOMP的设计及其编译技术的研究
并行语言EOMP的设计及其编译技术的研究 论文组织 第一章 引言 第二章 并行语言EOMP 第三章 EOMP在SMP cluster上的执行模型 第四章 EOMP编译器的设计和实现 第五章 EOMP相关优化技术 第六章 未来工作 引言 并行计算与SMP cluster 范例和粒度 数据并行 任务并行 粗、中 、细粒度 引言 并行程序编程模型 共享存储 消息传递 数据并行 SMP cluster上的并行编程模型 OpenMP, MPI, OpenMP+MPI 可编程性 性能 引言 本文工作 提出并行语言模型 EOMP ,特点 EOMP执行模型,进程线程,计算资源… 翻译和优化的框架, ORC EOMP优化 通信聚合 数据重排 EOMP编译器设计和部分实现 并行语言EOMP 高可编程性 较好的性能 指导语句型 多范例多粒度 体系结构特点 并行语言EOMP EOMP 指导语句 原OpenMP指导语句 parallel, for #pragma eomp 计算资源描述 宏任务 多层次的数据映射 序关系 用户运行时库函数接口 EOMP在SMP cluster上的执行模型 进程和线程级并行 计算资源映射 VP VN 数据管理 分布数据 共享数据 通信 组通信 点对点通信 执行模型: 通信 执行模型: 并行模式 单层模型 单层任务 单层数据 执行模型: 并行模式 多层嵌套模型 执行模型: 并行模式 粗流水线并行 EOMP编译器的设计和实现 框架: 基于ORC EOMP-to-C 翻译器 EOMP 运行支持库 优点: ANSI C中间语言 ORC翻译优化框架 多极优化 通用MPI+Pthread底层库 EOMP编译器的设计和实现 翻译器架构 ORC 前端 后端 whirl2c EOMP编译器的设计和实现 翻译优化架构 PREOPT: CFG SSA LNO : 数据划分分析 计算划分 通信生成 代码生成 WOPT: 冗余消除 通信调度优化 EOMP编译器的设计和实现 数据并行分析 计算划分 拥有者计算 SPMD代码生成 方程式的框架,参数化的整数元组和映射的集合 EOMP编译器的设计和实现 EOMP运行库支持库 EOMP编译器的设计和实现 实验数据: 向量点积 EOMP编译器的设计和实现 矩阵乘法 EOMP相关优化技术 通信聚合 (Coalescing) 通信生成 冗余通信 向量化并提出循环 移位操作 方向 下标范围 归入:识别并消除完全(几乎)被另一通信事件覆盖的通信事件 联合:识别并融合与另一通信事件部分重叠的通信事件 EOMP相关优化技术 节点内部数据重排优化( Data Reallocating) SMP节点 Cache 假共享 长跨距 循环变形 - 数据重排 编译期:引用分析 节点内数据划分指导语句 决定映射策略 修改引用 运行时:重排 映射 逆映射 优化: Data Reallocating Cyclic 数据访问 优化: Data Reallocating 长跨距访问 优化: Data Reallocating 实验数据 Cyclic 优化: Data Reallocating 实验数据 Long Stride peak? 未来工作 编译器开发 计算划分 通信生成 运行支持库 丰富数据管理 算术函数 EOMP优化技术 冗余同步 通信向量化 数据映射重叠 Thanks * * 清华大学硕士论文答辩: 执行模型: 数据映射 datak : 数组第k维的索引集合, k≥ 0 loopk : 循环嵌套深度为k的迭代空间, k≥ 0 nodek : k维节点数组的索引空间, k≥ 0 Layout: nodek - datak : { [n] - [a]: 数组元素 a ∈datan 被映射到节点 n ∈nodek RefMap: loopk - datak : { [i] -[a]: 数组元素 a ∈datan 在迭代 i ∈loopk 中被引用 CPMap: nodek - loopk : { [n] - [i]: 语句实例 i ∈ loopk 被分配到nodek /* Calculating the dot product
文档评论(0)