高性能计算机体系结构和设计
CPU
cache
......
cache
Bus/cross bar/…
I/O bus
I/O设备
内存
SMP: Symmetric Multi-Processing
缓存一致性(Cache coherence)问题
0, 初始, u=5
1, P1读 u
p1
p2
p3
2, p3读 u
3, p3写7入u
4, p1读 u, 得?
另外, 还有星座(SMP)机群
IA机群系统异军突起、进入主流市场:石油、气象、网格
原因? 原因? 原因?
▪IA CPU 芯片速度赶上/超过了RISC 芯片
▪高速互连网成熟且产品化:Myrinet, Quadrics, InfiniBand
▪开放源码操作系统 Linux 日益成熟
▪性能价格比高: 与UNIX大型机比--- 5.4倍(石油), 6倍(大气所)
1970’s, 1980’s, 1990’s, 21世纪初 小型计算机, 大型计算机 服务器, 高性能服务器, 超级服务器 超级计算机 高端计算机, 世界TOP500, 中国TOP100
–获得高性能的途径
提高部件性能极其限度: CPU, 内存, 磁盘, 网络 并行处理, 设计优化, 性能优化 开发局部性: 空间局部性, 时间局部性 并行性与局部性的矛盾 周期隐藏
Cache: 时间/空间局部性, 存储层次, 组织, 更新, 一致性 程序(program), 进程(process), 线程(thread) 并行编程工具OpenMP 优点 缺点: 可扩展性差 RISC+UNIX 小型机
SMP: Symmetric Multi-Processing
CPU
......
……. ……. …….
…….
如何用数组处理机 进行矩阵运算?
Master processor 主控程序
….
…. …. ….
处理单元(PE)阵列: SIMD
共享存储对称式多处理机
共享存储编程模式 对称式, 紧耦和 连接网络:
总线(图): 流水线结构, 带宽, 延迟 交叉开关Cross Bar(草图) 多级网(草图)
5, p2读u, 得?
u:5
u:?
u:5
Bus/cross bar/…
I/O bus u:5
I/O设备
内存
Cache 一致性问题的解决
存储器更新策略:
“立即写”策略(write-through) WR “后写”策略(Write-back) WB: 缓存块更新时写回
产生的问题:
“立即写”策略时: 一致性问题(cache- cache, cache-内存) “后写”策略时: 一致性(区别?)
SGI: Origin3000, Altix3000
基于指令流/数据流的体系结构分类
指令流(程序流)/数据流并行
单指令流单数据流(SISD): 单CPU计算机 单指令流多数据流(SIMD):数组处理计算机 多指令流单数据流(MISD:栈计算机(无实用机) 多指令流多数据流(MIMD):MPP, cluster SPMD: 单程序/多数据流, MPP, cluster MPMD: 多程序流/多数据流, 高吞吐(事务处理)
IA + Linux/NT: 联想深腾1800 系列,性价比高 RISC + Unix: IBM sp 系列,性价比低 2,UNIX SMP 小型机: IBM 690,SUN,
商务计算为主, 易编程, 可扩展性差 3,(传统)大规模并行机(mpp): T3E,曙光1000
编程不易,曾停止发展 Cray XT系列的Red Storm 重新抬头, TOP10, 原因: 大规模时体积小
局部性(locality)
空间局部性:
cache 内: 数据块 内存中 结点内 本地机器内
时间局部性: 最近用到的数据
并行性与局部性的矛盾
计算机--从串行到并行
基本的串行计算机结构
运算
控制
中央处理机(CPU)
连接总线
存储
输入 输出
从串行到并行
先行控制
运算器
寄存器堆
存数 总线
操作码
取数 总线
地址 总线
高性能计算机分类
4, 向量机(传统超级机):CRAY, 银河I 不再单独发展
5,向量并行机 : NEC地球模拟器, Cray X1 速度高,效率高, 昂贵, 专用, 非产品化 在世界TOP500份额居第二
6, ccNUMA: SGI Qrigin3000, Altix3000 兼顾可扩展性和可编程性
控制器
总线 指令 (内存控制)
总线
交叉存储
内存(多体)
计算机--从串行到并行
并行为什么: 计算量超过串行机能力极限: 蛋白质折叠o(1021 1, 大部件之间的并行 例: 控制器和运算器的并行:
取指令, 译码运算 控制器=>存储器, 运算器: 先行控制 2, 部件内的并行 运算器内多部件间并行: 加法器, 乘法器
服务器聚集 网格计算
云计算
网络计算模式
1,主机(mainframe)/终端 (1980年代中期年以前)
直接I/O连接或互连网连接 效率高, 开放性,扩充性差,技术复杂
2, 客户机/服务器(client/server)(1980年代后期以来) 基于局域网(LAN)或广域网(WAN) 开放、可扩充 难管理 总拥有成本(TCO)高
MIC
Dual XDR
BIC Flex I/O
流水线与向量机
流水线: pipelines 向量处理机: vector processor, 并行向量处理机 (PVP) 数组处理机age queue)
数组处理机
array processor
最终趋势: IA 和 RS6000(IBM Power) 存在和发展
芯片发展趋势
Moore 定律 每18个月(Moore周期)速度翻番, 容量大一倍, 价格降一半. 从1970年代—2000年, 正确 2000年后Moore周期: 22—24个月
Moore 定律适用到何时? 2020年.
Moore 定律不适用的原因?
流水线, 向量机, PVP, 数组处理机 SMP, 紧偶合, 共享存储, Cache 一致性 MPP, 机群,松散偶合, 分布式存储 ccNUMA, 计算资源虚拟化
基本计算模式:
主机/终端, 客户机/服务器,服务器聚集,网格计算,云计算
高性能计算机
–何为高性能计算机 ?
速度, 功能, 存储容量 与时俱进的标准:
– GPU computing is the use of a GPU (graphics processing unit) to do general purpose scientific and engineering computing. The model for GPU computing is to use a CPU and GPU together in a heterogeneous computing model. The sequential part of the application runs on the CPU and the computationally-intensive part runs on the GPU. From the user’s perspective, the application just runs faster because it is using the high-performance of the GPU to boost performance.
选择一致性策略的因素: 复杂性, 性能/效率, 成本
MPP: Massively Parallel Processing
CPU 内存
CPU 内存
......
CPU 内存
连接网络
分布式存储(编程模式), 松散耦合, 消息传递, 粗粒度并行, 可编程性/可扩展性 与数组处理机的区别
机群 (clusters)
网络计算模式(续)
3,服务器聚集(server consolidation)(90年代中后期以来) • 同时提供多种服务 • 基于局域网LAN • 综合1, 2的优点, 去其缺点 • 开放, 可扩充, 易管理, TCO 低 4,网格计算 : 共享资源 • 分布于宽带广域网(WAN)上的“格点”, • 共享地理分布各类资源:服务器, 数据, 贵重仪器等 • 格点内服务器聚集 • 像使用水和电一样, 不关心计算在何处进行 • 网格操作系统(Globus), 网格前端环境
多核芯片
多核芯片Multi-Core解决体积/功耗体积问题
AMD 双核芯片
Intel 4 核 芯片
HT CPU
Cache
Cache
HT: Hyper Transfer
多核芯片功耗同单CPU芯片一样 多线程
Many multi-threads
多核芯片-AMD
– What is GPU Computing?
No. of cores >100 1.0TeraFlpos/chip (single precision)
CELL 芯片结构框图
SIMD, 单精度>256GFlops, 双精度>26GFLOPS
SXU
LS
协处理器/单元 SPU SPE
SMF
EIB (96 bytes/clock)
L2 PPU L1 PXU
7, 专用机: IBM BlueGene, BlueGen/L 解决规模(速度)和体积功耗矛盾
主流高档计算机—机群系统
世界TOP500中(贴标签)的机群
1999年
3套 , 2002年11月: 56套