基于共享内存的并行计算

上传人:油条 文档编号:1724365 上传时间:2017-07-11 格式:PDF 页数:133 大小:3.24MB
返回 下载 相关 举报
基于共享内存的并行计算_第1页
第1页 / 共133页
基于共享内存的并行计算_第2页
第2页 / 共133页
基于共享内存的并行计算_第3页
第3页 / 共133页
基于共享内存的并行计算_第4页
第4页 / 共133页
基于共享内存的并行计算_第5页
第5页 / 共133页
点击查看更多>>
资源描述

《基于共享内存的并行计算》由会员分享,可在线阅读,更多相关《基于共享内存的并行计算(133页珍藏版)》请在金锄头文库上搜索。

1、http:/ 2016/9/23 基于共享内存的并行计算 汤善江 China Research Laboratory http:/ Outline 存储访问 Pthead多线程 OpenMP 2016/9/23 China Research Laboratory http:/ Outline 存储访问 Pthead多线程 OpenMP 2016/9/23 China Research Laboratory http:/ SMP 2016/9/23 China Research Laboratory http:/ Intel多核与众核 2016/9/23 China Research Labo

2、ratory http:/ GPU (Nvidia Kepler) 2016/9/23 China Research Laboratory http:/ GPU存储层次 2016/9/23 China Research Laboratory http:/ 8 2016/9/23 AMD APU China Research Laboratory http:/ 9 2016/9/23 IBM Cell BE China Research Laboratory http:/ 10 2016/9/23 并行计算机访存模型( 1) UMA( Uniform Memory Access) 均匀存储访问

3、模型: 物理存储器被所有处理器均匀共享; 所有处理器访问任何存储字取相同的时间; 每台处理器可带私有高速缓存; 外围设备也可以一定形式共享。 P1P2PnI/O SM1SMm共享存储器处理器( )系统互连总线 交叉开关 多级, , 网络China Research Laboratory http:/ 11 2016/9/23 并行计算机访存模型( 2) NUMA(Nonuniform Memory Access) 非均匀存储访问 模型: 被共享的存储器在物理上是分布在所有的处理器中的 , 其所有本地存储器的集合就组成了全局地址空间; 处理器访问存储器的时间是不一样的;访问本地存储器 LM或群内

4、共享存储器 CSM较快 , 而访问外地的存储器或全局共享存储器 GSM较慢 (此即非均匀存储访问名称的由来 ); 每台处理器照例可带私有高速缓存 , 外设也可以某种形式共享 。 LM 1 P 1 LM 2 P 2 LM n P n 互 连 网 络 (a)共享本地存储模型 全局互连网络 (b)层次式机群模型 GSM GSM GSM P C I N CSM P P CSM CSM 群 1 P C I N CSM 群 N P P CSM CSM China Research Laboratory http:/ 12 2016/9/23 并行计算机访存模型( 3) NORMA( No-Remote M

5、emory Access) 非远程存储访问 模型: 所有存储器是私有的; 绝大多数 NUMA都不支持远程存储器的访问。 消息传递 互连网络(网 络,环网,超立方,立方环等)P MP MM PM PMPMPMPPMPMPM.China Research Laboratory http:/ 2016/9/23 内存系统对性能的影响 对于很多应用而言,瓶颈在于内存系统,而不是 CPU 内存系统的性能包括两个方面:延迟和带宽 延迟:处理器向内存发起访问直至获取数据所需要的时间 带宽:内存系统向处理器传输数据的速率 China Research Laboratory http:/ 2016/9/23 延

6、迟和带宽的区别 理解延迟与带宽的区别非常重要。 考虑消防龙头的情形。如果打开消防龙头后 2秒水才从消防水管的尽头流出,那么这个系统的延迟就是 2秒。 当水开始流出后,如果水管 1秒钟能流出 5加仑的水,那么这个水管的“带宽”就是 5加仑 /秒。 如果想立刻扑灭火灾,那么更重要是减少延迟的时间。 如果是希望扑灭更大的火,那么需要更高的带宽。 China Research Laboratory http:/ 2016/9/23 内存延迟示例 考虑某一处理器以 1GHz( 1纳秒时钟)运行,与之相连的 DRAM有 100纳秒的延迟(没有高速缓存)。假设处理器有两个 multiply-add部件,在每

7、 1纳秒的周期内能执行 4条指令。 处理器的峰值是 4GFLOPS。 由于内存延迟是 100个周期,并且块大小为一个字( word),每次处理内存访问请求时,处理器必须要等待100个周期,才能够获得数据。 China Research Laboratory http:/ 2016/9/23 内存延迟示例 在以上平台上,考虑计算两个向量点积的问题。 计算点积对每对向量元素进行一次乘法 -加法运算,即每一次浮点运算需要取一次数据。 此计算的峰值速度的限制是,每 100纳秒才能够进行一次浮点计算,速度为 10MFLOPS,只是处理器峰值速度的很小一部分。 China Research Laborat

8、ory http:/ 2016/9/23 使用高速缓存改善延迟 高速缓存是处理器与 DRAM之间的更小但更快的内存单元。 这种内存是低延迟高带宽的存储器。 如果某块数据被重复使用,高速缓存就能减少内存系统的有效延迟 由高速缓存提供的数据份额称为高速缓存 命中率 (hit ratio ) 高速缓存命中率严重影响内存受限程序的性能。 China Research Laboratory http:/ 2016/9/23 高速缓存 China Research Laboratory http:/ 2016/9/23 缓存效果示例 继续考虑前一示例。 在其中加入一个大小为 32KB,延迟时间为 1纳秒

9、(或 1个周期 )的高速缓存。 使用此系统来计算矩阵乘法,两个矩阵 A和 B的维数为32 32。 之所以选择这个大小,是为了能够将 A、 B两个矩阵以及结果矩阵都放入高速缓存中。 China Research Laboratory http:/ 2016/9/23 缓存效果示例 结果如下 将两个矩阵取到高速缓存中等同于取 2K个字,需要大约200 s 。 两个 n n 的矩阵乘需要 2n3 步计算。在本例中,需要64K步计算,如果每个周期执行 4条指令,则需要 16K个周期,即 16 s。 总计算时间大约是加载存储时间以及计算时间之和,即200 + 16 s。 峰值计算速度为 64K/216

10、=303 MFLOPS。 China Research Laboratory http:/ 2016/9/23 缓存的效果 对相同数据项的重复引用相当于“时间本地性 (temporal locality)” 对于高速缓存的性能来说,数据的重复使用至关重要。 China Research Laboratory http:/ 2016/9/23 内存带宽的影响 内存带宽由内存总线的带宽和内存部件决定。 可以通过增加内存块的大小来提高带宽。 底层系统在 L时间单位内 (L为系统的延迟 )存取 B单位的数据 (B为块大小 ) China Research Laboratory http:/ 2016/

11、9/23 内存带宽的影响示例 继续上一示例,将块大小由 1个字改为 4个字。同样考虑点积计算: 假定向量数据在内存中线性排列,则在 200个周期内能够执行 8FLOPs(4次乘法 -加法 ) 这是因为每一次内存访问取出向量中 4个连续的字 因此,两次连续访问能够取出每个向量中的 4个元素。 这就相当于每 25ns执行一次 FLOP,即峰值速度为40MFLOPS。 China Research Laboratory http:/ 2016/9/23 内存带宽的影响 增加块的大小,并不能改变系统的延迟。 物理上讲,本例中的情形可以认为是与多个存储区相连接的宽的数据总线 (4个字,或者 128位 )

12、 实际上,构建这样的宽总线的代价昂贵。 在更切实可行的系统中,得到第一个字后,连续的字在紧接着的总线周期里被送到内存总线。 China Research Laboratory http:/ 2016/9/23 内存带宽的影响示例 增加带宽能够提高峰值计算速度。 对数据布局的假设是,连续的数据字被连续的指令所使用 (空间本地性, spatial locality ) 如果以数据布局为中心,那么计算的步骤应该确保连接的计算使用连接的数据 China Research Laboratory http:/ 2016/9/23 小结 利用应用程序的空间本地性与时间本地性对于减少内存延迟及提高有效内存带宽

13、非常重要。 计算次数与内存访问次数的比是一个很好的预测内存带宽的承受程序的指标。 内存的布局以及合理组织计算次序能对空间本地性和时间本地性产生重大影响。 China Research Laboratory http:/ 2016/9/23 实际测试 0 . 0 0 E + 0 05 . 0 0 E + 0 91 . 0 0 E + 1 01 . 5 0 E + 1 02 . 0 0 E + 1 02 . 5 0 E + 1 03 . 0 0 E + 1 050 100 200 300 400 500 600 700 800 900 1000矩阵阶数nsC + + , A 行 B 行C + + , A 行 B 列J a v

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号