高性能计算机的体系结构与程序优化(编辑修改稿)内容摘要:
+2)=A(I+2)*A(I+2) C(I) = 1 / B(I) C(I+1) = 1 / B(I+1) 10 C(I+2) = 1 / B(I+2) • 先展开,再调整顺序 存储器的层次结构 • 弥补 CPU与主存间的速度差异 • 各个层次间的访问速度和容量差别 –寄存器: 32个;几乎不需要时间 –一级 cache: 16KB128KB; 1个时钟周期 –二级 cache: 128KB4MB;几个时钟周期 –本地主存: 64MB1GB;几十个时期周期 –远程主存: 512MB以上;成百上千个周期 –硬盘对换区(虚存):成千上万个周期 存储层次发挥作用的基本原理 • 程序的访存局部性( locality) –时间局部性:最近访问的,将来还要访问 –空间局部性:访问了 A,则要访问 A的近邻 • 局部性使快速存储区的内容多次被访问 –比喻: 80%的时间花在 20%的代码上 • 工作集:最近程序集中访问的地址空间 –调整程序结构,使工作集小于 cache容量 寄存器的使用 • 寄存器的使用基本上是可以控制的 –在汇编子程序里完全可以控制 –在 C语言里用 register说明用得最多的变量 • 需要考虑 CPU内通用寄存器和浮点寄存器的数量 –编译程序在生成代码前,会进行寄存器分配 • 程序设计与优化时,可考虑寄存器利用 –最内层循环体不宜过长,寄存器会不够用 –循环展开的次数不能太多 寄存器的使用 • for ( k=0。 k10。 k++) • { • for (j=0。 j1000。 j++) • 执行运算过程 B; • } • 运算过程 B的大小也是我们必须考虑的。 如果 B过大 ,CPU内部寄存器的压力就会很大 , 如果寄存器的数量不足以保存 B中出现的所有数据 , 可能会出现颠簸的现象 , 刚刚从寄存器中换出的数据也许就是下一个需要的数据 , 还得重新读入寄存器 , 这对效率显然是有影响的。 解决的办法是将循环体过大的循环拆分成若干循环体较小的循环 , 这种方法叫做循环分布 , 循环体拆分的粒度是以寄存器数量的多少为参考的。 寄存器的使用 • 根据运算过程 B的实际情况和并行环境的特点 , 可以拆分为以下两种形式中的一种。 形式 A: • for(k=0。 k10。 k++) { • for(j=0。 j1000。 j++) • 执行运算过程 B1; • for(j=0。 j1000。 j++) • 执行运算过程 B2; • } 寄存器的使用 • 形式 B: • for(k=0。 k10。 k++){ • for(j=0。 j1000。 j++) • 执行运算过程 B1; • } • for(k=0。 k10。 k++){ • for(j=0。 j1000。 j++) • 执行运算过程 B2; • } • 形式 A比较符合人们的习惯思维方式 , 形式 B对循环的拆分更彻底 , 更加有利于并行执行。 高速缓冲存储器 (cache) • 自然地利用局部性,对程序员“透明” –存放最近最常用的数据和指令 • Cache的工作规则 –基本单位:块 (block)、行 (line) –放置策略:直接映射、组相联、全相联 • 衡量 cache效果的主要指标:命中率 –若命中率为 90%, 不命中时需要另花 10个周期 –则平均访存时间为: 1+10%*10 = 2 周期 –即存储系统的速度是 cache速度的 1/2 Cache中块 的放置策略 • Block 12 placed in 8 block cache: –全相联、直接映射、 2路组相联 –组号 = 块号 % 组数 Memory Cache 8路组相联 1路组相联 2路组相联 只有 1个组 共有 8个组 共有 4个组 Cache不命中的三个原因 (3C) • 首次访问 Compulsory Cache中没有这个块,必须从内存取入 – Misses in even an Infinite Cache • 容量不足 Capacity 换出后又被取入 cache – Misses in Fully Associative Size X Cache • 冲突 Conflict 组相联或直接映射 cache中,映射到同一组的内存块数过多,导致某些块换出后又被取入 – Misses in Nway Associative, Size X Cache 调整程序以提高 cache命中率 • 代码(指令) –重新安排程序中不同过程在内存中的位置 –更适合编译程序,在 profile的帮助下做 • 数据:程序设计者大有可为 –数组合并 : 利用块长,改善空间局部性 –循环交换 : 改变嵌套循环中访问内存的次序 –循环合并 : 增强数据的可重用性(时间局部性) –分块 : 集中访问可取入 cache的块状矩阵,避免全行或全列的读写,以增强时间局部性 数组合并的例子 /* Before: 2 sequential arrays */ int val[SIZE]。 int key[SIZE]。 /* After: 1 array of stuctures */ struc。高性能计算机的体系结构与程序优化(编辑修改稿)
相关推荐
份有限公司 Founder Technology Group Co.,Ltd. 方正服 务 器数据 备 份解决方案 (续 ) 银行内部应用终端 ATM终端 ATM终端 ATM终端 银行分理处 数据近线备份 银行业务平台 方正 SecuStor 业务系统 数据访问 数据访问 数据访问 银行分理处 银行分理处 方正科技集团股份有限公司 Founder Technology Group Co.,Ltd
全 部 10:1510:30 结论并分派任务 王 大 同 会 议 安 排 会议目的与安排重点 目的 举例 安排重点 政令宣导 人事宣布,记者会 场地的选择 评估考核 每季业务汇报 事后追踪 创意激发 品管圈会议 活泼的气氛 协调沟通 跨部门会议 会前资料的收集与游说 社交娱乐 年终员工尾牙 创意惊喜 教育研讨 内部训练 互动融合 商品促销 新产品发表会 资料派送,人数确定 会议安排 第二阶段
企业认定管理工作领导小组(办公室) 地方:高新技术企业认定管理机构(办公室) (三)申报流程 (一)自我评价 (二)网络注册登记 (三)填写资料并网络提交 (四)提交书面材料 ( 1) 《 高新技术企业认定申请书 》 (通过网络系统下载打印) ( 2)企业营业执照副本、税务登记证书(复印件); ( 3)经 公布
每 3个错别字减 1分,重复的不计。 字数不足,每少 50个字减 1分。 缺少题目扣 2分。 方法 规律 捷径 三 大 原 则 整体性(有全局意识,避免偏题、跑题) 多向性(从不同角度可以得出不同结论) 选择性(写自己感触最深的 —有感而发) 阅读下面的材料,根据要求写一篇不少于 800字的文章。 (60分)( 2020年全国 II 卷) 当代风采人物评选活动已产生最后三名候选人:大李,笃学敏思
愣次定律 教学 片段 “楞次定律 ” 探究性教学 选好仪器、接好电路之后 ,学生分组做实验。 初步结论:有的得到原磁场的方向与感应电流的磁场方向相同 ,而有的却得出相反的结论。 什么时候原磁场的方向与感应电流的磁场方向相同 ?什么时候原磁场的方向与感应电流的磁场方向相反 ? 4.法拉第电磁感应定律 本节教学的重点是法拉第电磁感应定律,难点是对磁通量的变化及磁通量的变化率的理解。
上帝缺舞者,于是杰克逊去了。 • 万能的主啊,你缺班主任不。 缺的话就把我们班主任带走吧。 • 语文老师批语: 亲爱的宝贝,上帝不缺这个,上帝自己就是老师。 就缺几个不听话的孩子做学生。 没有目标的学生在课堂 “内驱力”才是种子成长的真正力量。 只有来自孩子内心 深处的渴望,才能真正触动他去探索与学习,才能让他有持续探索的热情。 唤醒,应该是教育工作者必有的一种基本能力。