740 likes | 1.02k Views
§5 多理机的发展. 分布式共享存储器多处理机 对称多处理机 多向量多处理机 并行向量处理机 大规模并行处理机 机群系统. 分布式共享存储器多处理机. 将物理上分散的各台处理机所拥有的本本地存储器在逻辑上统一编址,形成一个统一的虚拟地址空间,以实现存储器的共享 采用 Cache 目录表来支持分布 Cache 的一致性 Standford DASH,SGI/Cray,Origin 2000,Cray T3D. Cray T3D. 对称多 处理机.
E N D
§5 多理机的发展 • 分布式共享存储器多处理机 • 对称多处理机 • 多向量多处理机 • 并行向量处理机 • 大规模并行处理机 • 机群系统
分布式共享存储器多处理机 • 将物理上分散的各台处理机所拥有的本本地存储器在逻辑上统一编址,形成一个统一的虚拟地址空间,以实现存储器的共享 • 采用Cache目录表来支持分布Cache的一致性 • Standford DASH,SGI/Cray,Origin 2000,Cray T3D
对称多处理机 • SMP (Symmetry MultiProcessors)对称多处理机SMP (Shared Memory MulptiProcessors)共享存储多处理机 • 代表机: • DEC Alpha Server 8400 • SGI Power Challenge • IBM R50 • Sun UltraEnterprise 1000 • 曙光1号
对称多处理机(SMP) • SMP称为共享存储多处理机 (Shared MemorymulptiProcessors),也称为对称多处理机(Symmetry MultiProcessors) • 有三种模型: • UMA多处理机均匀存储器存取模型 (Uniform Memory Access) • 存储器被所有处理机均匀共享 • 所有处理机对所有存储单元具有相同的存取时间 • 每台处理机有局部Cache • 外围设备可以共享
…… P1 P2 Pn 系统互连网络 (总线、交叉开关、多级网络) …… SM1 SM2 SM2 I/O UMA多处理机模型
对称多处理机(续) • NUMA多处理机非均匀存储器存取 (Nonuniform Memory Access)模型存储器访问时间随存储单元的位置不同而变化。 • 共享存储器在物理上是分布在所有处理机中的本地存储器。所有局部存储器地址空间的集合就组成了全局地址空间。 • 处理机访问本地存储器比较快,访问属于另一台处理机的远程存储器则比较慢,因为通过互连网络会产生附加的时间延迟。
系统互连网络 P1 P2 Pn …… LM1 LM2 LMn NUMA多处理机模型
对称多处理机(续) • COMA多处理机 • 只有Cache的存储器结构 (Cache-Only Memory Architecture) 模型;COMA是一种只用Cache的多处理机系统 • 实际上,COMA模型是NUMA模型的一种特例,后者分布存储器换成了Cache • 在每个处理机结点上没有主存储器,全部Cache组成了全局虚拟地址空间 • 远程Cache访问通过分布Cache目录进行 • 共享存储系统拥有统一的寻址空间,程序员不必参与数据分配和传输。
互连网络 D1 D2 Dn …… Cache1 Cache2 Cachen P1 P2 Pn COMA多处理机模型
多向量多处理机 CRAY-YMP
并行向量处理机系统: • 如CRAY YMP-90, NEC SX-3和FUJITSU VP-2000 • SMP (Symmetry MultiProcessors)对称多处理机SMP (Shared Memory MulptiProcessors)共享存储多处理机 • 如SGI Challenge,Sun SparcCenter 2000 • MPP (massively parallel processing)大规模并行处理机 • 如Intel Paragon, CM-5, Cray T3D • Cluster 机群系统(NOW或COM)
大规模并行处理机(MPP) • 科学计算中的重大课题要求提供3T性能: • 1 Teraflops计算能力 • 1 Terabyte主存储器 • 1 Terabyte/s 输入输出频带宽度 • 目前,速度还慢1000倍左右,存储容量和I/O带宽差距更大。 • 科学计算中的重大课题:全球气候预报, 基因工程 ,飞行动力学 ,海洋环流, 流体动力学, 超导建模, 半导体建模, 量子染色动力学, 视觉 • 采用的关键技术:VLSI, 可扩展技术, 共享虚拟存储技术
大规模并行处理机(续) • 虚拟共享存储器(Shared Virtual Memory)也称为共享分布存储器(Distributed Shared Memory);物理上分布存储器,逻辑上共享存储器。 • 虚拟共享存储器的优点:编程容易, 系统结构灵活可扩充性好, 有较好的软件移植性 • 与消息传递方式相比,程序运行效率高,主要原因: • 数据块缓存在本地 (内存或Cache中), 可以多次使用 • 通信时间分散,提高了并行性 • 扩大存储空间,减少换页操作
大规模并行处理机(续) • 虚拟共享存储器实现途径: • 硬件实现, 利用Cache技术。需要增加专用硬件 • 操作系统和库实现,通过虚拟存储机制取得共享和一致性。在松耦合的分布存储多处理机上,不需要增加任何硬件 • 编译实现,自动将共享访问转换成同步和一致原语。大多数系统采用途径(1)和(2),或这两种途径结合实现
机群系统(Cluster) • 机群系统是利用高速网络将一组高性能工作站或高档PC机连接起来,在并行程序设计以及可视化人机交互集成开发环境支持下,统一调度,协调处理,实现高效并行处理的系统。 • Cluster、NOW (Network of Workstation) 、COW (Cluster of Workstation) • 从结构和结点间的通信方式来看,属于分布存储系统。 • 机群系统中的主机和网络可以是同构的,也可以是异构的。
机群系统(Cluster)(续) • 机群是一组独立的计算机(节点)的集合体,节点间通过高性能的互连网络连接;各节点除了可以作为一个单一的计算资源供交互式用户使用外,还可以协同工作并表现为一个单一的、集中的计算资源供并行计算任务使用。 • 机群是一种造价低廉,易于构筑,并且具有较好可扩放性的体系结构。
机群系统(Cluster)(续) • 微处理机技术、网络技术和并行编程环境的发展使得机群系统这一新的并行处理系统形式正成为当前研究的热点。 • 微处理器的性能不断提高。 • 网络技术的进步使得松散耦合系统的通信瓶颈逐步得到缓解。 • 并行编程环境的开发使得新编并行程序或改写串行程序更为容易。
机群系统的特征 • 机群的各节点都是一个完整的系统,节点可以是工作站,也可以是PC机或SMP机器; • 互连网络通常使用商品化网络,如以太网、FDDI、光通道和ATM开关等,部分商用机群也采用专用网络互连; • 网络接口与节点的I/O总线松耦合相连; • 各节点有一个本地磁盘; • 各节点有自己的完整的操作系统。
系统特征 SMP MPP 机群 节点数量(N) O(10) O(100)-O(1000) O(100) 节点复杂度 中粒度或细粒度 细粒度或中粒度 中粒度或粗粒度 节点间通信 共享存储器 消息传递或共享变量(有DSM时) 消息传递 节点操作系统 1 N(微内核)和1个主机OS(单一) N (希望为同构) 支持单一系统映像 永远 部分 希望 地址空间 单一 多或单一(有DSM时) 多个 作业调度 单一运行队列 主机上单一运行队列 协作多队列 网络协议 非标准 非标准 标准或非标准 可用性 通常较低 低到中 高可用或容错 性能/价格比 一般 一般 高 互连网络 总线/交叉开关 定制 商用 SMP、MPP、机群的比较一览表
与传统的并行处理系统相比,机群的优点 • 很高的性价比 • 开发周期短 • 可扩展性好 • 资源利用率高 • 用户投资风险少 • 用户编程方便
机群系统(Cluster)(续) • 机群系统的特点 • 系统开发周期短 • 用户投资风险小 • 系统价格低 • 节约系统资源。 • UC Berkeley计算机系100多台工作站的使用情况调查表明,一般单机系统的使用率不到10%,而机群系统中的资源利用率可达到80%左右 • 系统扩展性好 • 用户编程方便。
机群发展的优势 • 作为机群节点的工作站系统的处理性能越来越强大,更快的处理器和更高效的多CPU机器将大量进入市场; • 随着局域网上新的网络技术和新的通信协议的引入,机群节点间的通信能获得更高的带宽和较小的延迟; • 机群系统比传统的并行计算机更易于融合到已有的网络系统中去;
机群发展的优势(续) • 机群上的开发工具更成熟,而传统的并行计算机上缺乏一个统一的标准; • 机群价格便宜并且易于构建; • 机群的可扩放性良好,节点的性能也很容易通过增加内存或改善处理器性能获得提高。
机群系统分类 • 根据应用目标 • 高性能机群(HP Cluster) • 高可用性机群(HA Cluster) • 根据节点的拥有情况 • 专用机群(Dedicated Cluster)。所有的资源是共享的,并行应用可以在整个机群上运行, • 非专用机群(Nondedicated Cluster)。全局应用通过窃取CPU时间获得运行。 • 非专用机群中由于存在地本地用户和远地用户对处理器的竞争,带来了进程迁移和负载平衡等问题;
机群系统分类(续) • 根据节点的硬件构成 • PC机群CoPC(Cluster of PCs)或称为PC堆PoPC(Pile of PCs) • 工作站机群COW(Cluster of Workstations) • SMP机群CLUMPs(Cluster of SMPs) • 根据节点的操作系统 • Linux机群(如Beowulf) • Solaris机群(如Berkeley NOW) • NT机群(如HPVM) • AIX机群(如IBM SP2) • 根据节点的配置 • 同构机群。各节点有相似的体系并且使用相同的操作系统 • 异构机群。节点可以有不同的体系,运行的操作系统也可以不尽相同。
P/C P/C M M MIO MIO LAN D D NIC NIC 机群节点的连接方式 无共享
P/C P/C M M MIO MIO D D NIC NIC 机群节点的连接方式(续) 共享磁盘 共享磁盘
机群节点的连接方式(续) P/C P/C M M MIO MIO D D SCI NIC NIC 共享存储器
并行应用 并行编程环境 PVM、MPI、Java 串行应用 机群中间层 (单已系统映像和可用性低层结构) 操作 系统 操作 系统 操作 系统 操作 系统 操作 系统 节点 节点 节点 节点 节点 高速互联网络 机群理想的体系结构
机群的设计要点 • 可用性 • 单一系统映像SSI(Single System Image) • 作业管理(Job Management) • 并行文件系统PFS(Parallel File System) • 高效通讯(Efficient Communication)
单一系统映像SSI • 好处: • 终端用户不需要了解应用在哪些节点上运行; • 操作员不需要了解资源所在地位置; • 降低了操作员错误带来的风险,使系统对终端用户表现出更高的可靠性和可用性; • 可以灵活的采用集中式或分布式的管理和控制,避免了对系统管理员的高要求; • 大大的简化了系统的管理,一条命令就可以对分布在系统中的多个资源进行操作; • 提供了位置独立的消息通信。
单一系统映像SSI(续) • 包含以下含义 • 单一系统:尽管系统中有多个处理器,用户仍然把整个机群视为一个单一的系统来使用 • 单一控制:逻辑上,最终用户或系统用户使用的服务都来自只有唯一接口的同一个地方, • 对称性:用户可以从任一个节点上获得机群服务, • 位置透明:用户不用了解真正执行服务的物理设备的位置。
单一系统映像的关键服务 • 单一入口点 • 单一文件层次 • 单一输入输出 • 单一管理和控制点 • 单一网络(Single Networking) • 单一存储空间(Single Memory Space) • 单一作业管理系统 • 单一用户界面(Single User Interface) • 单一进程空间(Single Process Space)
作业管理 • 对异构环境的支持 • 批作业支持 • 并行支持 • 交互支持 • 检查点和进程迁移 • 负载平衡 • 作业运行时间(Run-Time)的限制 • 图形用户接口GUI
作业管理系统 • 包含 • 用户服务器 • 任务调度 • 资源管理器 • JMS的管理和使用 • 作业类型 • 串行作业、并行作业 • 交互作业、批处理作业 • 外部作业、本地作业
并行程序设计模型 • 隐式并行(Implicit Parallelism) • 数据并行(Data parallelism) • 消息传递(message passing) • 共享变量(Shared variables)
隐式并行(Implicit Parallelism) • 使用隐式并行模型编程时,程序员使用串行编程语言;然后编译器负责将其自动转换成并行代码 • 优点是良好可移植性;无死锁;易测试和查错;语义简单 • 缺点是自动并行非常困难,且总是低效的。
数据并行(Data parallelism) • 使用数据并行模型编程时,驻留在个处理器上的进程可以通过读/写公共存储器中的共享变量相互通信;在共享变量的并行程序中,程序员不需要显式分配数据,因为数据是驻留在单一地址空间中 • 特点:多线程;单一地址空间;显式同步(Lock critical 等);异步操作;隐式数据分配。
消息传递(message passing) • 使用消息传递模型编程时,驻留在不同节点上的进程可以通过网络传递消息(指令、数据、同步信号等)相互通信;在消息传递的并行程序中,程序员必须明确的为进程分配数据;MPMD是普遍适用的编程风范 • 特点:多线程;异步并行;多地址空间;显式同步;显式数据分配;大粒度并行。
共享变量(Shared variables) • 使用共享变量模型编程时,驻留在个处理器上的进程可以通过读/写公共存储器中的共享变量相互通信;在共享变量的并行程序中,程序员不需要显式分配数据,因为数据是驻留在单一地址空间中 • 特点:多线程;单一地址空间;显式同步(Lock critical 等);异步操作;隐式数据分配。
并行编程标准 • OpenMP —共享变量编程标准 • MPI-消息传递编程标准 • Thread、pThread