高性能计算机的体系结构及程序优化.ppt

高性能计算机的体系结构及程序优化.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高性能计算机的体系结构及程序优化

高性能计算机的 体系结构与程序优化 唐志敏 中国科学院计算技术研究所 提纲 应用编程与体系结构的关系 高性能计算机体系结构概述 CPU内的并行结构(指令级并行) 存储器的层次结构 多体交叉的并行存储系统 分布存储系统中的通信优化 体系结构的位置 体系结构是硬件和系统软件之间的界面 Enable High Performance Support Ease Programming 编程模型是应用和计算机系统间的界面 理想的模型: 应用不必了解具体的结构特征 体系结构的主要研究内容 如何提高性能? 先进的工艺技术--纯粹属于硬件的范围? 技术方面的缺点需要通过结构来弥补 DRAM慢,SRAM小=》存储器层次结构 体系结构方面的革新 各个级别上并行性的开发 如何支持编程? 共享内存 承担一些软件较难完成的优化工作 如动态执行, 猜测执行, COMA等 三种类型的体系结构技术 保守的结构 硬件仅提供必需的设施, 如大量的寄存器 高性能能否最终达到, 完全依赖软件 折衷的结构 硬件做一些动态的优化, 如高速缓存 软件仍有优化的余地 包揽式的结构 硬件试图做充分的动态优化, 如COMA 认为软件在动态分析和优化方面能力有限 结点内并行:超长指令字结构 芯片面积主要用于功能部件和高速缓存 完全依赖编译程序开发指令级并行性 分支预测, 循环展开, 软件流水, 踪迹调度 指令系统结构不兼容 显式并行指令结构(EPIC) Explicitly Parallel Instruction Computer 128位的Group包括3条指令 设置专门的域指示指令间是否存在依赖关系 可连接多个Group以支持更大范围内的并行 结点内并行:同时多线程结构 由硬件提供快速的上下文切换机制 引入了更多的指令级和线程级并行性 容忍远程访问延迟和数据依赖的负面影响 多个上下文之间的切换机制 发生事件时切换(有点象进程的切换) 每个时钟周期都切换: 每次取不同线程的指令 多个线程的指令在同一流水线中(无依赖) 第一个多线程系统(Tera)已经问世 多线程同时工作对cache干扰很大 结点内并行 超标量、动态调度、猜测执行 硬件动态地分析指令流,同时执行多条指令 在分析区间内,指令以数据流的方式执行 弥补编译器在静态分析和调度方面的不足 换代后目标码不重新编译也能获得较好的性能 需要发掘指令级并行性的新来源 精确的动态分支预测,消除分支损耗 设置大量换名寄存器,消除虚假的数据依赖 不等分支完成,就开始执行目标指令(猜测) 同时执行分支的多个目标(多标量) 结点间并行:消息传递系统 Tcomm = Tstartup + Tblock + Ncomm/Bcomm 如何实现与处理能力匹配的通信带宽 通信带宽、通信延迟对应用性能的影响 光互连技术 如何减少通信开销 用户级通信 硬件支持重试、保证通信的可靠性和顺序 如何减少阻塞 自适应路由、优化应用的通信结构 结点间并行:共享存储系统 共享存储的好处 易于编程、通用性强 与SMP及其应用实现无缝衔接 存储一致性模型与实现效率 松(弱)一致性模型允许多种优化 对系统软件设计或应用程序设计提出新的要求? 如何避免、隐藏或容忍远程访问的开销 Origin2000: 185周期; 未来可能达数百万个周期 缓存、预取、预送、多线程 结点间并行:COMA CC-NUMA的主要问题 数据静态地分配在home结点上 通过远程访问cache存取非本地的数据 数据分配不当会造成大量的数据传输 COMA中没有物理地址, 数据可动态迁移 经过“预热”, 数据将被“吸引”到处理结点附近 主要问题: 不命中时如何快速找到所需数据 全系统的查找需大量时间 ProbOwner目录, Approximate Copyset 存储器的供数率跟得上吗? CPU消耗数据的速率远大于存储器供数率 时钟频率增长的速度大于访存时间缩短的速度 同时执行多条指令要求供数率进一步提高 多线程或芯片内多处理器要求访问多组数据 已知的解决方案:存储器层次结构 片内cache的供数率能满足指令级并行的要求? 片内cache的命中率足够高? 为多个线程或处理器提供各自的cache? 如何通过程序或算法的改进增强访存局部性? 性能不仅依赖于结构 性能的提高依赖于体系结构上的革新 硬件技术的发展对体系结构提出了新的要求 各个层次并行性的开发是新体系结构的主要特征 实际性能的提高更依赖于体系结构与编译技 术、操作系统、应用算法间的配合与协调 Architectural Support for Programming Languages and Operating Systems, Since 1988 未来系统中两大问题的解决也是如此 ①极长的等待时间;②极大的并行度 充分利用处理器内的并

文档评论(0)

jyf123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档