1k likes | 1.32k Views
§5 并发性发展及计算机系统的分类. 并行性概念 计算机系统的并行性发展 并行处理系统的结构与多机系统的耦合度 计算机系统的分类. 并行性概念. 只要在 同一时刻 或是在 同一时间间隔 内完成两种或两种以上性质相同或不同的工作,它们在时间上能互相重叠。 同时性( Simultaneity ):两个或多个事件在同一时刻发生。 并发性( Concurrency ):两个或多个事件在同一时间间隔内发生。. 从计算机系统中执行程序角度来看. 指令内部 指令之间 任务或进程之间 作业或进程之间. 从计算机应用角度来看.
E N D
§5 并发性发展及计算机系统的分类 • 并行性概念 • 计算机系统的并行性发展 • 并行处理系统的结构与多机系统的耦合度 • 计算机系统的分类
并行性概念 • 只要在同一时刻或是在同一时间间隔内完成两种或两种以上性质相同或不同的工作,它们在时间上能互相重叠。 • 同时性(Simultaneity):两个或多个事件在同一时刻发生。 • 并发性(Concurrency):两个或多个事件在同一时间间隔内发生。
从计算机系统中执行程序角度来看 • 指令内部 • 指令之间 • 任务或进程之间 • 作业或进程之间
从计算机应用角度来看 • Data-Level Parallelism (DLP) arises because there are many data items that can be operated on at the same time. • Task-Level Parallelism (TLP) arises because tasks of work are created that can operate independently and largely in parallel.
从处理数据的并行性来看 • 位串字串 • 位并字串 • 位片串字并 • 全并行 • 存储器操作并行 • 处理器操作步骤并行 • 处理器操作并行 • 指令、任务、作业并行
从计算机技术实现方式来看 • Instruction-Level Parallelism) exploits data-level parallelism at modest levels with compiler help using ideas like pipelining and at medium levels using ideas like speculative execution. • Vector Architectures and Graphic Processor Units (GPUs) exploit data-level parallelism by applying a single instruction to a collection of data in parallel. • Thread-Level Parallelism exploits either data-level parallelism or task-level parallelism in a tightly coupled hardware model that allows for interaction among parallel threads. • Request-Level Parallelism exploits parallelism among largely decoupled tasks specified by the programmer or the operating system.
并行性开发途径 • 时间重叠(Time Interleaving)是在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。 • 举例:流水线 • 分离、细化功能部件→流水线→功能不同的多机系统→异构型多处理机系统
取指 分析 执行 部件 执行 k K+1 K+2 k K+1 K+2 分析 k K+1 K+2 取指 时间 指令流水线举例
并行性开发途径(续) • 资源重复(Resource Replication):是在并行性概念中引入空间因素,通过重复设置硬件资源来提高可靠性或性能。 • 多操作部件和多体存储器→相联、并行处理机→同构型多处理机系统
CU PE(0) PE(1) PE(N-1) 资源重复的例子
并行性开发途径(续) • 资源共享(Resource Sharing):是利用软件的方法让多个用户按一定时间顺序轮流地使用同一套资源,以提高其利用率,这样也可以提高整个系统的性能。 • 网络打印机 • 多道程序、分时OS →真正的处理机代替虚拟机→分布处理系统
计算机系统的并行性发展 • 1960年以前 • 算术运算的位运算(EDSAC、EDVAC、UNIVAC1) • 输入输出间操作的并行 • 直接存储器访问(DMA)IBM709系列 • 1960年至1970年 • 流水线单处理机 • 多功能部件流水线 • 高速缓冲存储器Cache
计算机系统的并行性发展(续) • 1970年至1980年 • 多种并行处理系统结构,例:向量、阵列、相联等 • 1980年至1990年 • RISC、多处理机、数据流机、智能机 • 1990年以来 • MPP:Massively Parallel Processor 大规模并行处理机 • SMP:Symmetric Multiprocessor 对称多处理机 • SMP On Board, SMP on Chip • Cluster:机群、集群
IBM IBM p690 • 32x1.7GHz Power4+,217GFlops • 128GB 内存,205GB/S内存带宽 • 3 x I/O抽屉,60 x PCI-X,18GB/S I/O子系统带宽 • 42x146.8GB UltraSCSI3 磁盘,1920MB/S 磁盘接口带宽(stripping) • 2 x Gigabit Ethernet 接口
传统的科学工程研究方法 • 理论+实验 • 局限: • 困难:大型风道 • 昂贵:小鸟撞飞机 • 缓慢:气候变化、星际演变 • 危险:武器设计、药物设计
并行计算--高性能计算 • 并行计算(Parallel Computing) • 高端计算(High-end Parallel Computing) • 高性能计算(High Performance Computing) • 超级计算(Super Computing) • 任何高性能计算和超级计算都离不开使用并行技术 • 计算科学与传统的两种科学,即理论科学和实验科学,并立被认为是人类认识自然的三大支柱,他们彼此相辅相成地推动科学发展与社会进步。在许多情况下,或者是理论模型复杂甚至理论尚未建立,或者实验费用昂贵甚至无法进行时,计算就成了求解问题的唯一或主要的手段
计算能力挑战 • 为寻找出潜在的抑制剂药物,需要对所有已知化合物数据库中的微生物药物靶标做甄别,甄别工作需要高性能计算机辅助完成 • 360万亿次的高性能计算机需要运行365天 • 1000万亿次的高性能计算机需要运行30天 • 5000万亿次的高性能计算机,需要运行一年完成所有已知的人类药物靶标 • 目前最高性能的Intel四核PC的性能大约为500亿次每秒
日益膨胀的高性能计算需求 HPC目前成为国家各行业科技创新的基础,当前对HPC人才的需求持续攀升
高性能计算应用分类 • 计算密集型应用(Computing-intensive): • 大型科学工程计算,数值模拟等。 • 应用领域:石油、气象、CAD、核能、制药、环境监测分析、系统仿真等。 • 数据密集型应用(Data-intensive): • 数字图书馆,数据仓库,数据挖掘,计算可视化等。 • 应用领域:图书馆、银行、证券、税务、决策支持系统等。 • 通信密集型应用(Network-intensive): • 协同工作,网格计算,遥控和远程诊断等。 • 应用领域:网站、信息中心、搜索引擎、电信、流媒体等。
2020年以前超级计算机发展趋势 2000年 每秒10万亿次浮点运算 2005年 每秒100万亿次浮点运算 2009年 每秒1000万亿次浮点运算(Pflop/s) 2013年 每秒1亿亿次浮点运算 2016年 每秒10亿亿次浮点运算 2020年 每秒100亿亿次浮点运算(Eflop/s) 基本上每10年左右性能提高1000倍
超级计算机发展路线图 2020 2030 2050 2010
并行计算软件环境及现状 • 操作系统:UNIX、LINUX、Windows NT • 在SMP,DSM并行机上编译系统通常具有一定的对用户程序(C/Fortran) 进程自动并行化的能力,但经常需要人工干预 (通过编译制导,命令行选项等) 以达到理想的并行效率,且并行主要针对循环进行 (属于细粒度并行) • 在分布式内存并行机上尚无通过高效的自动并行工具,主要依靠人工编写并行程序 • 并行算法的设计及并行程序的编制已成为目前特约大规模并行计算机应用的主要障碍 • 并行编程现状 • 并行软件开发远远落后于并行系统体系结构的发展。缺少合适的并行软件是阻碍主流用户社会接纳并行计算的原因 • 与串行软件相比,并行软件数量少,功能原始
编程环境 • 落后的并行编译器、调试器 vs. 通用先进的串行编程环境. • 自动并行编译器远远满足不了程序并行化的要求. • 算法 • 并行模型的多样化(并行计算机系统结构的多样性) vs. 串行编程中的唯一模型: 冯.诺依曼模型 • 问题的并行求解的困难在于问题的多样性和求解过程中所需的创造性劳动,使得这一过程难以进行自动化 • 对串行机而言, 解法 = 唯一串行算法+计算程序(通用) • 对并行机而言, 解法 = 某种并行算法+有针对性的计算程序(很难通用) • 程序员 • 稀少而初级的并行编程人员 vs. 成熟而经验丰富的串行程序员
并行处理计算机的结构 • 流水线计算机(时间重叠) • 阵列处理机(资源重复) • 多处理机系统(资源共享) • 数据流计算机
流水线计算机、阵列处理机和多处理机 • 流水线计算机:主要通过时间重叠,让多个部件在时间上交错重叠地并行执行运算和处理,以实现时间上的并行。 • 阵列处理机:主要通过资源重复,设置大量算术逻辑单元,在同一控制部件作用下同时运算和处理,以实现空间上的并行。 • 多处理机系统:主要通过资源共享,让共享输入/输出子系统、数据库资源及共享或不共享贮存的一组处理机在统一的操作系统全盘控制下,实现软件和硬件各级上相互作用,达到时间和空间上的异步并行。
多机系统 • 指的是多处理机系统和多计算机系统 • 多处理机系统:是由多台处理机组成的单一计算机系统,各处理机都可有自己的控制部件,可带自己的局部存储器,能执行各自的程序。 • 多计算机系统:是由多台独立的计算机组成的系统,各计算机分别在逻辑上独立的操作系统控制下运行,机间可以互不通信,即使通信也只是经通道或通信线路以文件或数据集形式进行,实现多个作业的并行。
多机系统的耦合度 为了反映多机系统中各级器之间物理连接的紧密程度和交叉作用能力的强弱。 • 最低耦合系统(Least Coupled System):各种脱机系统 • 松散耦和系统(Loosely Coupled System):如果多台计算机通过通道或通信线路实现互连,共享某些磁带、磁盘等外围设备,以较低频带在文件或数据集一级相互作用。间接耦合系统 • 紧密耦合系统(Tightly Coupled System):如果多台机器之间通过总线或高速开关互连,共享主存,并有较高的信息传输速度,可以实现数据集一级、任务级、作业级的并行。直接耦合系统
并行向量处理机(PVP) 结构特点:具有少量的高性能专门设计的VP;定制高带宽互连网;共享存储器;大量的向量寄存器而无高速缓存。 典型结构:
分布共享存储多处理机(DSM) 结构特点:MIMD—DM,CC—NUMA;单地址空间的应用界面;DIR用以支持分布高速缓存一致性;定制互连网络。 典型结构:
大规模并行处理机(MPP) 结构特点:MIMD—DM,NORMA;商用微处理器具有片上高速缓存;分布式存储器;定制的互连网络。物理和逻辑上均是分布内存;能扩展至成百上千个处理器(微处理器或向量处理器);采用高通信带宽和低延迟的互联网络 (专门设计和定制的);一种异步的MIMD机器;程序系由多个进程组成,每个都有其私有地址空间,进程间采用传递消息相互作用; 典型结构:
对称多处理机(SMP) 共享内存多处理机:任意处理器可直接访问任意内存地址,且访问延迟、带宽、几率都是等价的; 系统是对称的; 结构特点:商用微处理器具有片上高速缓存;MIMD—SM,对称,UMA;共享存储器;总线或交叉开关互连;总线侦听协议。常用作CC—NUMA或机群系统中节点处理器。 典型结构:
机群系统Cluster 结构特点:MIMD-DM自治系统,每个节点是一个独立的计算机;互连网络使用标准低成本商用局网;节点机可以是工作站或PC机,带有磁盘,具有完整的OS。是近代最流行的并行分布式系统。 典型结构:
访存模型 NORMA: UMA: NUMA: 多处理机(单地址空间共享存储器) UMA: Uniform Memory Access NUMA: Nonuniform Memory Access 多计算机(多地址空间非共享存储器) NORMA:No-Remote Memory Access
均匀存储器存取 (UMA) UMA: • 均匀存储器存取(UMA-Uniform Memory Access) • 所有处理器均匀共享物理存储器,这里所谓均匀是指所有处理器对所有存储字具有相同的存取时间 • 每台处理器可带私有高速缓存 • 外围设备也可以一定形式共享 • 各处理机之间的通信是通过共享存储器的共享变量来实现的 • 这一类多处理机由于对资源的高度共享,常称紧耦合系统(tightly coupled system)
均匀存储器存取 (UMA) • 对称多处理机系统(symmetric multi-processor) • 所有处理机都能同样访问所有外围设备;所有处理机都能同样运行执行程序,如操作系统的内核、I/O服务程序 • 不对称处理机系统(asymmtric multi-processor) • 只有一台或一组处理机(MP主处理机)执行操作系统并操纵I/O,其余处理机(AP附属处理机)没有I/O能力
非均匀存储访问(NUMA) NUMA: • 非均匀存储访问(NUMA—Nonuniform Memory Access) • 被共享的存储器在物理上是分布在所有的处理其中的,其所有本地存储器的集合就组成了全局地址空间 • 处理器访问存储器的时间是不一样的:访问本地存储器(LM)较快,而访问外地的存储器较慢(此即是非均匀存储访问名称的由来) • 每台处理器可带私有高速缓存,且外设也可以某种形式共享
非远程存储访问(NORMA) NORMA: • 非远程存储访问(NORMA — No-Remote Memory Access) • 所有存储器都是私有的,仅能由其处理器所访问 • 绝大都数都不支持远程存储器的访问
结构模型 ---- 访存模型 UMA: NORMA: NUMA:
多处理机 & 多计算机 UMA: NORMA: NUMA: 多计算机 (分布式存储) 多处理机 (共享存储)
名次解释 • UMA:Uniform Memory Access 均匀存储访问 • NUMA:Nouniform Memory Access 非均匀存储访问 • COMA:Cache-Only Memory Access 全高速缓存存储访问 • CC-NUMA:Cache-Coherent Nonuniform Memory Access 高速缓存一致性均匀存储访问 • NCC-NUMA:Cache-Coherent Nonuniform Memory Access 非高速缓存一致性均匀存储访问 • NORMA:No-Remote Memory Access 非远程存储访问 • DSM:Distributed Shared Memory 分布式共享存储 • PVP:Parallel Vector Processor 并行向量处理机
计算机系统的分类 • 采用的基本器件 • 处理器性能 • 1966年Michael J,Flynn • 1978年David J.Kuck:用指令流和执行流(Execution Stream)及其多倍性来描述计算机系统总控制器的结构特征 • 1972年冯泽云:提出用数据处理的并行度来定量地描述各种计算机系统特性 。
按采用的基本器件分类 • 计算机的更新换代 • 第一代 电子管计算机 • 第二代 晶体管计算机 • 第三代 中小规模集成电路 • 第四代 大或超大规模集成电路 • 第五代 VLSI(甚大规模集成电路) • 目前的绝大多数计算机系统是VLSI计算机 • 公认的第五代计算机什么时候诞生? • 第五代计算机以什么作为标志来划分? • 计算机性能的大幅度提高或更新换代,一方面依靠器件的不断更新,同时也依赖系统结构的不断改进。
第一代 1945~1954 电子管 继电器 存储程序计算机 程序控制I/O 机器语言 汇编语言 普林斯顿ISA、ENIAC、IBM701 第二代 1955~1964 晶体管、磁芯 印刷电路 浮点数据表示、寻址技术、中断、I/O处理机 高级语言、编译、批处理监控程序 Univac LARC、CDC 1604 IBM 7030 第三代 1965~1973) 多层印刷电路 微程序 流水线、Cache、先行处理、 系列机 多道程序 分时操作系统 IBM 360/370 CDC 6600/7600 DEC PDP-8 第四代 1974~1990 LSI、VLSI 半导体存储器 向量处理 分布式存储器 并行和分布处理 Cray-1、IBM 3090 DEC VAX 9000 Convax-1 第五代 1990~ 高性能微处理器 高密度电路 超标量、超流水、SMP、MP、MPP 大规模、可扩展并行与分布处理 SGI Cray T3E IBM、SP2、DEC AlphaServer 8400 五代计算机的特征表