Transcript 第二章

Chapter 2: Computer Clusters for
Scalable Parallel Computing
可扩展并行计算集群
1
2.1大规模并行集群
计算机集群(computer cluster)由相互联系的
个体计算机聚集组成,这些计算机之间相互联系并
且共同工作
对于用户来说,计算机集群如同一个独立完整的
计算资源池。
集群化实现作业级的大规模并行,并通过独立操
作实现高可用性。
计算机集群和大规模并行处理器(MPP)的优点包
括可扩展性能、高可用性、容错、模块化增长和使
用商用组件。
2
计算机集群的设计宗旨:
可扩展性:计算机集群化是基于模块化增长的概
念. 将几百个单处理器节点的集群扩展为10 000个
多核节点的超级集群。这一些因素限制: 如多核心
芯片技术、集群拓扑结构、封装方式、电力消耗和
冷控制技术应用。
封装:集群节点可以被封装成紧凑或者松散的形
式。封装直接影响通信线路的长度,需要选择合适
的互连技术。紧凑集群通常利用专有的高带宽、低
延迟的通信网络,而松散集群节点一般由标准的局
域网或广域网连接。
4
控制:集群能够以集中或分散的形式被控制或管理。
紧凑集群通常集中控制,而松散集群可以采取另一种
方式。在集中式集群中,中心管理者拥有、控制、管
理和操作所有节点。在分散式集群中,节点有各自的
拥有者。它同样需要进程调度、负载迁移、检查点、
记账和其他类似任务的特殊技术。
同构性:同构集群采用来自相同平台的节点,即节
点具有相同处理器体系结构和相同操作系统。异构集
群使用来自不同平台的节点。互操作性是异构集群的
一个非常重要的问题。在同构集群中,二进制进程镜
像可以迁移到另一个节点并能够继续执行。这在异构
集群中是不允许的,因为当进程迁移到不同平台的节
点上时,二进制代码不继续执行。
5
安全性:集群内通信可以是开放的或封闭的。开放
集群外界机器可采用标准协议(如TCP/IP)访问通
信路径,从而访问单独节点。有几个缺点:集群内
通信变得不安全; 外界通信可能以不可预测的形式干
扰集群内通信; 准通信协议往往具有巨大的开销。在
封闭集群中,集群内通信与外界相隔离,目前还没
有高效、封闭的集群内通信标准。
专用集群和企业集群:专用集群由相同类型的计算
机节点同构配置,被用于代替传统的大型机或超级
计算机,极大地提高了吞吐量,并且减少了响应时
间。企业集群主要利用节点的闲置资源,每个节点
通常是一个完整的SMP、工作站或PC及其所有必要
的外部设备。通常是由异构计算机节点配置的。
6
基础集群设计问题:
可扩展性能:资源扩展(集群节点、内存容量、
I/O带宽等)使性能成比例增长
单系统镜像(SSI):集群是一个单一独立的
系统。
可用性支持:集群能够利用处理器、内存、磁
盘、I/O设备、网络和操作系统镜像的大量冗余
提供低成本、高可用性的性能。
集群作业管理:实现高系统利用率,作业管理
软件需要提供批量、负载均衡和并行处理等功能。
7
节点间通信:集群由于具有更高的节点复
杂度,故不能被封装得如MPP节点一样的简洁。
集群内节点之间的物理网线长度比MPP长。
容错和恢复:机器集群能够消除所有的单
点失效。集群能在一定程度上容忍出错的情
况。故障节点上运行的关键作业可以被转移
到正常运行的节点上。回滚恢复机制通过周
期性记录检查点来恢复计算结果。
8
集群分类:
计算集群:主要用于单一大规模作业的集体计算。
当单一计算作业需要集群中节点间的频繁通信,
该集群必须共享一个专用网络,因而这些节点大
多是同构和紧耦合的。这种类型的集群也被称为
贝奥武夫集群。当集群需要在少量重负载节点间
通信时,其从本质上就是众所周知的计算网格。
紧耦合计算集群用于超级计算应用。
高可用性集群:用于容错和实现服务的高可用性。
高可用性集群中有很多冗余节点以容忍故障或失
效。
负载均衡集群:通过使集群中所有节点的负载均
衡而达到更高的资源利用。可以在不同机器间平
衡负载,从而达到更高的资源利用或性能。
9
Figure 2.1 Architectural share of the Top-500 systems
(Courtesy of http://www.top500.org [25])
10
图2-2 Top500超级计算机的性能变化曲线(1993—2010)
11
12
13
集群和MPP这两类系统的基本区别源于构建系
统的组件。
集群通常采用市场上的商用硬件、软件和网
络组件。而MPP采用定制的计算节点、插件、模块
和机壳,它们之间的互连被特定封装。MPP要求高
带宽、低延迟、更好的能效和高可靠性。
在考虑成本的前提下,集群为了满足性能扩
展,而允许模块化增长。MPP因为其成本高,故而
出现得较少。一般来说,每个国家只有很少的MPP
超级计算机。
14
图2-3 前5名超级计算机的能耗和性能(2010年11月)
15
2.2 计算机集群和MPP体系结构
基本集群体系结构
图2-4 由商用硬件、软件、中间件和网络组件构成的计算机
体系结构,支持HA和SSI
16
Resource Sharing in Cluster of Computers
图2-5 连接集群节点的三种方式(P/C:处理器和缓存;M:内
存;D:磁盘;NIC:网卡;MIO:内存-I/O桥)
17
节点结构和MPP封装:IBM BlueGene/L Supercomputer:
The World Fastest Message-Passing MPP built in 2005
18
集群系统互连
19
谷歌搜索引擎集群体系结构
20
图2-8 Top500系统高带宽互连的分布情况
21
图2-9 InfiniBand系统构造在典型高性能计算机集群中的应用
22
硬件、软件和中间件支持
23
大规模并行GPU集群
图2-11 实现Echelon系统的20Tflops和1.6TB/s内存带宽的
GPU芯片设计
24
图2-12 由GPU层次网络构成的NVIDIA Echelon系统的体系结
构,其中每个机柜可以提供2.6Pflops的性能,至少需要
25
N=400个机柜才能实现所需的Eflops性能
CUDA并行编程

CUDA(Compute Unified Device
Architecture,计算统一设备体系结构)由
NVIDIA开发,提供并行计算体系结构。CUDA是
NVIDIA GPU中的计算引擎,允许开发者通过标
准程序语言访问。程序员可以使用NVIDIA扩展
和受限的CUDA C。CUDA C通过PathScale
Open64 C编译器编译,可以在大量GPU核上并
行执行。例2.4体现了在并行处理中使用CUDA
C的好处。
26
(Courtesy of Bill Dally, 2011)
2.3 计算机集群的设计原则
单系统镜像特征:
单一系统 用户将整个集群作为一个多处理器系
统。
单一控制 逻辑上,一个终端用户或系统用户在
一个地方只能通过单一的接口使用服务。
对称性 用户可以从任意节点使用集群服务。除
了受到访问权限保护的部分,所有集群服务和功能
对于所有节点和所有用户是对称的。
位置透明性 用户并不了解什么位置的物流设备
最后提供了服务。
28
单系统镜像(SSI)包括单一入口、单文件层次、
单一I/O空间、单一网络机制、单一控制点、单一
作业管理系统、单一内存空间和单一进程空间。
图2-13 采用负载均衡的域名服务器(DNS)实现单一入口
29
图2-14单文件层次中存储的三种类型。实线表示进程P可以
访问,虚线表示P可能被允许访问
30
图2-15具有单一网络连接、单一I/O空间、单一内存和单点控
制的集群
31
SSI的最终目标是使得集群如同台式计算机一样易
于使用,SSI额外特征:
单一作业管理系统 所有集群作业能够由任意节
点提交到单一作业管理系统。
单一用户接口 用户通过单一图形界面使用集群。
单一进程空间 各节点的所有用户进程形成单一
进程空间,并且共享统一进程认证机制。
SSI集群化的中间件 在集群应用的三个层次上,
中间件支持各种SSI特征。
32



管理级 该级处理用户应用程序,并且提供
作业管理系统。
编程级 该级提供单一文件层次(NFS、xFS、
AFS、Proxy)和分布式共享内存
实现级 该级支持单一进程空间、检查点机
制、进程迁移和单一I/O空间。
33
图2-16 在连接到集群中4个主机的12个分布式磁盘之上具有单
一I/O空间的分布式RAID体系结构
34
图2-17 在作业管理、编程和实现级上集群化中间件的关系
35
冗余高可用性
可靠性根据系统不发生故障的运行时间衡量。
可用性表示系统对用户可用的时间百分比,即
系统正常运行的时间百分比。
可服务性与服务系统的容易程度相关,包括硬
件和软件维护、修复、升级等。
36
37
图2-19 SMP和三个集群中的单点失效(SPF),由a到d,其
中冗余越大,消除的单点失效也越多
38
容错集群配置
热备份服务器集群 只有主要节点积极完成所有
有用的工作。备份节点启动(热)和运行一些监控
程序来发送与接收心跳信号以检测主要节点的状态,
但并不积极运行其余有价值的工作。
主动接管集群 多个服务器节点的体系结构是对
称的。两个服务器都是主要的,正常完成有价值的
任务。两个服务器节点通常都支持故障切换和恢复。
故障切换集群 当一个组件失效时,该技术允许
剩余系统接管之前由失效组件提供的服务。故障切
换机制必须提供一些功能,如失效诊断、失效通知
和失效恢复。
39
检查点和恢复技术
检查点和恢复这两种技术必须共同发展,才能提
高集群系统的可用性。
某个进程周期性地保存执行程序的状态至稳定存
储器,系统在失效后能够根据这些信息得以恢复。
每一个被保存的程序状态称为检查点。包含被保
存状态的磁盘文件称为检查点文件。虽然目前所有
的检查点软件在磁盘中保存程序状态,但是使用节
点内存替代稳定存储器来提高性能还处在研究阶段。
40
2.4 集群作业和资源管理
集群作业调度方法
集群作业可能在一个指定的时间(日历调度),
或者在特定事件发生(事件调度)时被调度运行。
根据提交时间、资源节点、执行时间、内存、磁
盘、作业类型及用户认证的优先级,作业被调度。
静态优先级指的是根据预定的方案,作业被分配
的优先级。
为用户分配不同的优先级,而作业的动态优先级
可能会随时间发生变化。
41
42
图2-22 用于集群节点上作业调度的瓷砖式覆盖技术减少了
整体时间,因此增加了作业吞吐量
43
集群作业管理系统
作业管理也称为负载管理或负载共享。作业管
理系统(Job Management System,JMS)具有三部
分:
用户服务器:提交用户作业至一个或多个队列,
为每个作业指定资源需求,将作业从队列中删除,
以及询问作业或队列的状态。
作业调度器:根据作业类型、资源需求、资源
可用性和调度策略,执行任务调度和排队。
资源管理器:分配和监控资源,执行调度策略,
以及收集统计信息。
44
集群计算的负载共享设备(LSF)
LSF是平台计算中的商用负载管理系统。
在并行作业和串行作业中,LSF强调作业管理和
负载共享。
它还支持检查点、可用性、负载迁移和单系统
镜像。
LSF具有高扩展性,并且能够支持上千个节点的
集群。
LSF服务于各种UNIX和Windows/NT平台。目前,
LSF不仅在集群中使用,也在网格和云中使用。
45
MOSIX: Linux集群和云的操作系统
MOSIX由希伯来大学在1977年开发,是一个分布
式操作系统。在1999年,该系统被重新设计,运行
在x86平台的Linux集群上
用户可以从任何节点登录
没有必要修改应用程序或链接应用程序至特殊库。
没有必要复制文件至远程节点
用户能够平衡负载,从较慢节点迁移至快速节点
关于迁移进程直接通信的套接字也是可迁移的。
该系统以客户进程的安全运行时环境为特征。
该系统能够运行批量作业,并可以通过检查点恢复
46
47
2.5 顶尖超级计算机系统的个案研究
Figure 2.4 Country share of the Top-500
supercomputers over time [25]
48
Figure 2.5 Application-area share of Top-500 systems over time.
(Courtesy of http://www.top500.org [25])
49
Top- 500 Release in June 2010
50
Tianhe-1A:2010年的世界最快超级计算机
The Cray XT-5 Jagaur
Supercomputer
57
58
59
IBM
Roadrunner
System
60
61
62
(Courtesy of Bill Dally, 2011)
(Courtesy of Bill Dally, 2011)
A proposed Nivdia GPU chip processor architecture with 128 cores (160 GFlpos each) plus 8
latency processors (LP) connected to 1024 SRAMs (L2 caches) by a NoC, where MS are the
memory controllers connecting to off-chip DRAMS and NI is the network interface to next
level of network (Courtesy of Bill Dally, reprint with permission [10] ).
(Courtesy of Bill Dally, 2011)
The architecture of a GPU cluster built with a hierarchical network of
processor chips (GPUs) that can deliver 2.6 PFlops per cabinet. It takes at
least N = 400 cabinets to achieve the desired PFlops or EFlops performance.
(Courtesy of Bill Dally, reprint with permission [10] ).
(Courtesy of Bill Dally, 2011)
Paper/Books on Clusters and MPPs:
1. G. Bell, J. Gray. And A. Szalay, “Petascale Computational
Systems : Balanced Cyberstructure in a Data-Centric
World”, IEEE Computer Magazine, 2006.
2. K. Hwang, G. Fox. And J. Dongarra, Distributed and Cloud
Computing Systems, Chapter 2, Kauffmann, 2011
3. G. F. Phister, In Search of Clusters, (second Edition)
Prentice-Hall, N.J. 2001.