1.2k likes | 1.4k Views
清华大学计算机科学与技术系高性能计算研究所 郑纬民 教授 2014年9月. 计算机科学与技术系研究生课程. 高等计算机系统结构. 高等计算机系统结构课程介绍. 教材 1. Kai Huang著,王鼎兴、郑纬民、沈美明译, 高等计算机系统结构 并行性 可扩展性 可编程性 ,清华大学出版社。 2. Patterson D.A.,Hennesy J.L., Computer Architecture:A Quantitative Approach ,Morgan Kanfmann Publishers
E N D
清华大学计算机科学与技术系高性能计算研究所清华大学计算机科学与技术系高性能计算研究所 郑纬民 教授 2014年9月 计算机科学与技术系研究生课程 高等计算机系统结构
高等计算机系统结构课程介绍 • 教材 • 1.Kai Huang著,王鼎兴、郑纬民、沈美明译,高等计算机系统结构 并行性 可扩展性 可编程性,清华大学出版社。 • 2.Patterson D.A.,Hennesy J.L.,Computer Architecture:A Quantitative Approach,Morgan Kanfmann Publishers • 3. Patterson D.A.,Hennesy J.L., Computer Organization & Design:The Hardware/Software Interface, Morgan Kanfmann Publishers
第一章 高等计算机的核心技术——并行处理 第二章 加速比性能模型与可扩展性分析 第三章 互连与通信 第四章 划分与调度 第五章 并行存储器系统 第六章 Cache Coherence 第七章 Memory Consistency 第八章 指令级并行处理 第九章 微处理器设计与实现方法 第十章 网格计算 高等计算机系统结构
第十一章 DSM 第十二章 传感器网络 第十三章 对等计算 第十四章 海量网络存储器 第十五章 多核CPU技术 第十六章 可信计算系统 第十七章 虚拟化技术 第十八章 基于集群的海量数据处理 高等计算机系统结构
高等计算机的核心技术——并行处理 • 1.1 什么是并行处理 • 1.1.1 并行处理定义 • 1.1.2 并行性级别 • 1.2 为什么要开发并行处理技术 • 1.3 并行处理计算机结构沿革 • 1.4 其它并行处理计算机技术
1.1 什么是并行处理 • 1.1.1 并行处理定义 • 并行处理是指同时对多个任务或多条指令、或同时对多个数据项进行处理。 • 完成此项处理的计算机系统称为并行处理计算机系统。
同时性(simultaneity)——两个或多个事件在同一时刻发生。同时性(simultaneity)——两个或多个事件在同一时刻发生。 • 并发性(concurrency)——两个或多个事件在同一时间间隔内发生。 • 流水特性(pipelining)——在一个重叠的时间内所发生的流水事件。
1.1.2 并行性级别 • 粒度(granularity):衡量一个软件进程的计算量的度量。最简单的是指此程序段中的指令数。分细、中、粗三种。 • 按粒度的不同,并行性级别可以分为指令级、循环级、过程级、子程序级和作业级等不同的层次。它们对应的计算粒度可以为细粒度、中粒度和粗粒度。如下:
1.指令级并行 • 典型细粒度,一般少于20条指令。借助优化编译器自动检测并行性,将源代码变成运行时系统能识别的并行形式。 • 2.循环级并行 • 典型循环含少于500条指令,由于有些循环操作在连续迭代中并不相关,易于向量化,是在并行机或向量机上运行的最优程序结构。递归循环的并行化比较困难。向量处理由优化编译器在循环级开发,仍属于细粒度计算。
3.过程级并行 • 中粒度并行,指令少于2000条,分析过程间的并行性比细粒度要困难。有时需要重新设计程序,并要编译器的支持。SPMD、多任务处理属于这一层。 • 4.子程序级并行 • (粗)中粒度并行,几千条指令,常在message passing多计算机上以SPMD或MPMD方式执行。并行性主要由算法设计人员与程序员开发。
5.作业级并行 • 粗粒度并行,数万条指令,常由加载程序和操作系统处理这类并行性,靠算法有效性来保证。 • 一般说来: • 细粒度:用并行化或向量化编译器来开发,共享变量通信支持。 • 中粒度:靠程序员和编译器一起开发,共享变量通信。 • 粗粒度:取决于操作系统和算法的效率,消息传递通信。
例子:共享存储型多处理机上执行: L1: DO 10 I=1, N L2: A(I)=B(I)+C(I) L3: 10 Continue L4: SUM=0 L5: DO 20 J=1, N L6: SUM=SUM+A(J) L7: 20 Continue 假设:L2,L4,L6每行要用一个机器周期。 L1,L3,L5,L7所需时间可以忽略。所有数组已经装入主存,程序已装入Cache中(取指令和加载数据可以忽略不计)。 忽略总线争用或存储器访问冲突。
上面的程序实际上把数组B(I)和C(I)相加,最后得到一个总和。 上面的程序实际上把数组B(I)和C(I)相加,最后得到一个总和。 共享存储多处理机结构如下图: 处理机 …… P1 P2 Pm 系统互连 …… I/O SM1 SMm 共享存储器
在单机系统中,2N个周期可以完成上述的操作: 在单机系统中,2N个周期可以完成上述的操作: I循环中执行N次独立迭代需要N个周期; J循环中执行N次递归迭代也需要N个周期。 在共享存储型的多处理机系统上: 假设有M台处理机,可以将循环分成M段,每段有L = N/M个元素。 代码如下所示:
Doall k= 1, M Do 10 I= L(k-1) + 1 , kL A(I) = B(I) +C(I) 10 Continue SUM(k)=0 Do 20 J=1 , L SUM(k)= SUM(k)+A(L(k-1)+J) 20 Continue Endall
分段的I循环可以在L个周期中完成; 分段的J循环在L个周期中产生M个部分和。 所以产生所有的M个部分和共需要2L个周期(还需要将这些部分和合并)。 假设经过共享存储器的处理机之间的每次通信操作需要k个周期。 设N=32,M=8,则经过2L(即8个周期)后在8台处理机上各有一个部分和,还需要8个数相加。 为了合并部分和,可以设计一个l层的二进制加法树,其中l=log2M,加法树用l(k+1)个周期从树叶到树根顺序合并M个部分和,如下:
二进制加法树: 所以,多处理机系统需要 才能得到最终的结果。
假定数组中有N=220个元素,顺序执行需要2N=221个机器周期,假设机器间通信的开销平均值为k = 200个周期,则在M=256台处理机的并行执行需要:
第一章 高等计算机的核心技术——并行处理 • 1.1 什么是并行处理 • 1.2 为什么要开发并行处理技术 • 1.3 并行处理计算机结构沿革 • 1.4 其它并行处理计算机技术
1.2 为什么要开发并行处理技术 对单用户,可以提高加速比(Speedup Oriented); 对多用户,可以提高吞吐率(Throughput Oriented). 对不同的需求我们可以做需求分析如下:
理论分析 设计试验 高性能计算与科研,产业…——需求与意义 传统的科学研究 • 基础科研领域的计算需求 • 物理 • 化学 • 生物 • 材料 • 工业领域的需求 • 银行 • 辅助设计 • 医药 • 石油 • 气象 • 在线服务 • 信息安全 difficult, 例如建造大型风洞 expensive, 例如建造样机 slow, 例如等待气候的变化,天体的演化 dangerous, 例如武器开发,药品,大气试验,电力系统分析 物理原理和数值方法 基于计算科学的 科学研究
富有挑战性的计算问题遍及科学与工程的各个领域富有挑战性的计算问题遍及科学与工程的各个领域 • Science • Global climate modeling • Astrophysical modeling • Biology: genomics; protein folding; drug design • Computational Chemistry • Computational Material Sciences and Nanosciences • Engineering • Crash simulation • Semiconductor design • Earthquake and structural modeling • Computation fluid dynamics (airplane design) • Combustion (engine design) • Oil field applications • Business • Financial and economic modeling • Transaction processing, web services and search engines • Defense • Nuclear weapons -- test by simulations • Cryptography
全球气候模拟 • 计算问题: • f(经度, 纬度, 海拔, 时间) 温度, 气压, 适度, 风速 • 做法: • 域的离散化分解,10公里解析度(Discretize the domain, e.g., a measurement point every 10 km) • 给定时间t设计算法预测t +dt的天气(Devise an algorithm to predict weather at time t+dt given t) • 应用: • 主要事件预测(Predict major events, e.g., El Nino) • 用于确定大气散射标准(Use in setting air emissions standards) 来源: http://www.epm.ornl.gov/chammp/chammp.html
全球气候模拟 • 大气环流模拟 • 需求解Navier-Stokes方程 • 1分钟时间间隔100个浮点运算/网格点对计算的需求 • 为确保时效需1分钟执行5 x 1011 flops = 8 Gflop/s • 以天为单位的7 天天气预报需要 56 Gflop/s • 以月为单位的50年气候预测需要 4.8 Tflop/s • 以12小时为单位的50年预测 288 Tflop/s • 如果提高网格解析度则计算复杂性将呈8x,16x增加 • 更高的精确预测模型则需要综合考虑大气,海洋,冰川,陆地,加上地球化学等因素 • 千年气候模型分析目前无法对此进行有效计算
巨型电力系统实时仿真 电 网 调 度 应用服务器 通讯服务器 数据采集和传输 RTU RTU RTU 输电 变电 配电 用电 发电
巨型电力系统实时仿真 中国电网现状 到2002年底 35kV及以上线路总长度:80万公里 500kV线路:34939公里 330kV线路: 9723公里 220kV线路: 141889公里
巨型电力系统实时仿真 • 2005 National Power System of China 10188 nodes1072 generators 3003 loads13499 transmission lines 4 HVDCs The largest simulation model in China One case, serious fault, 10s dynamic process; On Itanium2 1G CPU; Well-known serial algorithm; 25s consumed • Production and Consumption must be balanced
巨型电力系统实时仿真 What is Dynamic Simulation - Simulate the dynamic process after faults to study stability characteristics of power system and verify the operation schedule Why1 the most popular simulation tool in power system analysis 2 it has very intensive computation 3 serial algorithms can not fulfill the requirements of on-line applications and be only used off-line Computational Model - Differential Algebra Equations
巨型电力系统实时仿真 On-line Operation scheduling makes large scale power system more secureFrequently operation state checking to maintain power system stability (based on many dynamic simulations)On-line Operation scheduling makes more profitOperation schedule within minutes fulfills the variational power needs wellAn Example:for one power company, in one day, on a 500kV transmission line, every 100MW transmission power changed gains RMB one million
事务处理的高性能需求 • Google query attributes • 150M queries/day (2000/second) • 100 countries • 8.0B documents in the index • Data Center • 100,000 Linux systems in data centers around the world • 15 TFlop/s and 1000 TB total capability • 40-80 1U/2U servers/cabinet • 100 MB Ethernet switches/cabinet with gigabit Ethernet uplink • Growth from 4,000 systems (June 2000) • Data in 2004
1.天气预报 • 1990年10次台风登陆,福建、浙江两省损失79亿元,死亡950余人。 • 天气预报模式为非线性偏微分方程,预报台风暴雨过程,计算量为1014—1016次浮点运算,需要10GFlops—100GFlops的巨型机。 • 用途:局部灾害性天气预报。
解放以来历次对宁波产生较大影响的台风(图) http://www.sina.com.cn 2005年08月06日09:43 中国宁波网 解放以来历次对宁波产生较大影响的台风
2.石油工业 • 地震勘探资料处理 • 油藏数值模拟 • 测井资料处理 • 地震勘探由数据采集、数据处理和资料解释三阶段组成。 • 目前采用的三维地震勘探比较精确的反映地下情况,但数据量大,处理周期长。 • 100平方公里的三维勘探面积,道距25米,60次覆盖,6秒长记录,2毫秒采样,一共采集2.881010个数据,约为116GB。
叠加后数据为4.8108个数据。用二维叠前深度偏移方法精确的产生地下深度图像,需要进行251012FLOP,采用100MFLOPs机器计算250天,1GFLOPs机计算25天,10GFLOPs机器35分。考虑到机器持续速度常常是峰值速度的10-30%,所以需要100GFlops的机器。Cray T932/32约为60GFLOPs。
3.航空航天 • 研究三维翼型对飞机性能的影响。数值模拟用时间相关法解Navier-Stoker方程,网格分点为1204050,需内存160MB,6亿计算机上解12小时,如果在数分钟内完成设计,则需要千亿次计算机。
4.重大挑战性课题需求(图3.5) • 计算空气动力学:千万亿次/秒 • 图像处理: 百万亿次/秒 • AI: 千万亿次/秒
5.核武器 • 核爆炸数值模拟,推断出不同结构与不同条件下核装置的能量释放效应。 • 压力: 几百万大气压 • 温度: 几千万摄氏度 • 能量在秒级内释放出来。 • 设计一个核武器型号,从模型规律、调整各种参数到优选,需计算成百上千次核试验。 • Los Alamos实验室要求计算一个模型的上限为8-10小时。
千万次机上算椭球程序的计算模型需要40-60CPU小时。 • 二维计算,每方向上网格点数取100,二维计算是一维的200倍,三维是一维的33000倍。若每维设1000网格点,则三维计算是一维的几十万倍之多。此时对主存储器容量要数十、数百亿字单元(64位)。 • 另外还有I/O能力的要求,可视化图形输出。
6.解决方案 • 只有开发并行处理技术才能满足要求: • 100-1000T performance: • Teraflops of Computing Power • Terabyte of Main Memory • Terabyte/s of I/O bandwidth
第一章 高等计算机的核心技术——并行处理 • 1.1 什么是并行处理 • 1.2 为什么要开发并行处理技术 • 1.3 并行处理计算机结构沿革 • 1.3.1 向量机与多向量机 • 1.3.2 SIMD计算机 • 1.3.3 Shared-Memory Multiprocessors • 1.3.4 Distributed-Memory Multiprocessors • 1.3.5 四类实用的并行系统 • 1.4 其它并行处理计算机技术
1.3 并行处理计算机结构沿革 • 1.3.1 向量机与多向量机 • 向量机的结构如下图: