搜档网
当前位置:搜档网 › 高性能计算机系统导论

高性能计算机系统导论

高性能计算机系统导论
高性能计算机系统导论

高性能计算机系统导论

---------集群计算系统

(上海同济大学软件学院2003级王上丹:033290 姚雯:033347)摘要:

使用计算机集群系统进行并行计算是一种既经济又高效的解决方法,开发资源丰富,成本低廉。随着应用程序和各种计算对计算机性能要求的不断提高,集群系统将成为有效解决这以问题的可行的途径。本文主要通过对集群系统(设计原理,需要解决的问题,软硬件需求等)的分析和研究来学习体系结构中集群计算系统以及分布式计算的相关知识,并希望通过这样的学习,可以更好的理解和学习体系结构中的相关知识。

关键词:

集群系统;分布式计算;并行计算;体系结构;通信协议;SMP(对称多处理器)负载均衡说明:

本论文主要包括6个部分: 概述集群技术简介集群原理和实现集群技术支持(主要针对负载均衡)集群技术的机遇与挑战结束语

本文的目的是希望读者能对其有一个初步的了解,由于技术研究方面,所涉及的知识确实非常广泛,不可能一一叙述,面面俱到,故选取了其中可扩展性集群技术中的负载均衡的技术进行一个深入分析。

概述(前言)

随着科学技术的不断发展,计算机的性能有着飞速的发展,尤其是最近一、二十年间,计算机的性能几乎以成倍的速度在增长,我们不难发现,这样的发展的速度正由于相关科技(微电子,体系结构,纳米技术等)的限制而渐渐放慢,但是对于计算机性能的提高却从来没有停止过。所以必然面临这样的问题,当通过单处理机的性能提高无法满足不断提高的性能需求,就需要设计一种新型的,高性能的计算机系统。

在过去的几十年里,出现了许多支持高性能计算的计算机系统,最为普通的系统是:

大规模并行处理器(MPP)、对称多处理器(SMP)、Cache一致性的非统一内存访问(CC-NUMA)、分布式系统、集群系统(Cluster)。其中集群系统以其高性价比的突出特点成为一大研究热点。而本文主要讲述了集群系统这个体系系统。

早在20世界60年代,IBM公司就提出了集群计算系统,其基本的思想是将大型计算机连接起来通过合理的交互以共同完成某种并行计算。但是由于当时的各种技术的限制,特别是软硬件的成本较高,这种思想并不能很好的商业化。

直到20世界80年代,随着高性能低价位的微处理器,高速网络的和分布式软硬件工具的发展,集群计算系统才有了发展的物质条件。

最初的集群系统是为了获得高性能的计算系统,一方面不断增加处理器的运算速度以

及磁盘容量,另一方面将多个处理器连起来,使得可以使用多个处理器的共有计算能力,这样就成为了早期的并行超级计算机。

由于资源和成本的限制,早期的这种并行超级计算机并没有得到很好的发展,但是这种理念已经成为众多的计算机研究人员所投入研究的一个方向。到20世界90年代后,各种技术的不断成熟,使得集群系统这种超级计算机得到了飞速发展,产生了很多典型的系统,其中包括:①Beowulf、②Berkeley NOW、③HPVM、④Solaris MC 四大集群环境。如今,这些集群计算机已经广泛运用于社会生活的方方面面。

本文将主要讲述这些集群计算机的体系结构以及相关问题。

①Beowulf 是基于Linux和Grendel(系统软件工具包)之上的pc机集群,采用TCP/IP多个以太网完成节点间信息交换,主要特点是能够构造“最佳”性能价格比的集群系统。

②Berkeley NOW 是基于Solaris(分布式操作系统)、Glinux和xFS(无服务网络文件系统)之上的工作站集群,节点间利用MyriNET网络和活动消息进行信息传递,其主要的特点是用大量生产的商品化工作站和最先进的给予开关网络部件构造大型并行计算系统。

③HPVM(高性能虚拟机)是基于Windows NT、Linux和LSF(负责分配器—负责资源分配)之上的PC机集群,采用快速消息的MyriNET网络进行节点间数据交换,主要特点是采用高带宽低延迟的通信协议FM(快速消息)。

④Solaris MC是基于Solaris和全局层操作系统之上的PC机或工作站集群,用高速网络将计算机节点联机起来,使用面向对象的框架在节点间进行通信,支持多个或多样网络相互连接。集群计算技术的简介:

集群是一种并行或分布式多处理系统,该系统由两个或多个计算机(简称为节点)通过网络连接而成。节点可以是一台PC机,也可以是工作站或者SMP,分别构成PC集群,工作站集群,SMP集群。每一个节点都由单独的处理器、主存储器、辅助存储器、I/O接口及操作系统。可以单独执行串行应用程序,也可以作为集群中的一个节点执行并行的应用程序,协同完成并行任务。

对于用户而言,这样的集群得像是一个单一的系统,独立地拥有系统中的所有资源,而不需要考虑这些资源是在本地还是远程。该系统能够提供一种价格合理、具有高性能和高可用刑的并行计算方案。如图所示:

图一集群计算机体系结构粗略图

集群系统通过功能整合和古战过渡实现了系统的高可用性和可靠性。每个节点都承担部分计算任务和容错任务,当其中一台服务器或者Pc出现故障时,系统使用软件支持将其隔离,使其不影响其它PC/服务器的工作。多台同构或者异构的计算机用墨中方式连接起来协同完成特定的任务就构成了集群系统。

集群架构

目前常见的集群架构有两种:Web/Internet Cluster System 和平行运算(Parallel Algorithms Cluster System)。前者主要将资料放臵在不同的主机上,亦即由多部主机同时负责一项服务;后者将同一个运算的工作,交给整个Cluster 里面的所有的CPU来进行同步运算,由于使用到多个CPU的运算能力,所以可以加快运算的速度。典型的集群系统的体系结构如图一所示。

资源管理与负载平衡

集群计算机一般是多用户(Multi-user)、分时共享(Time-sharing)的系统。集群系统的主要目标是通过网络互联实现全系统范围内的资源的共享,同时通过高效的资源管理和任务调度技术实现资源的有效共享,从而提高资源利用率,获得高性能。为了使有独立的机器组成的集群系统工作起来,且形成对用户透明的单一系统必须为其提供调度、负载平衡和共享服务。

资源(包括CPU,存储设备,I/O等)管理与调度:是集群计算技术中一个非常重要的方面,从系统的角度来看,集群系统的资源使用率是最重要的问题。系统资源使用越高,说明系统的吞吐能力越大,资源共享的效果也越好。

负载平衡的实现机制有两种:初始放臵或者远程执行,初始放臵技术是当进程在某一个计算节点产生时,根据负载平衡的要求将进程转移到其它的节点远程执行的方法。

集群硬件平台

集群中间件

集群中间件处于节点操作系统与用户环境之间,它与操作系统一起为所有的节点提供访问系统资源的各种途径,集群系统的设计目标集中体现在支持应用程序的资源管理,系统可扩展性和可用性的完全透明。中间件应提供以下主要服务。

唯一地址空间:将属于集群的各节点内存作为共享内存,进行统一编制(包括I/O)

唯一用户界面:用户可以通过为一的GUI使用集群。

唯一的进程空间:每一个进程可以在同一个节点或不同的节点声称自进程或与任意的远程节点的其他进程交换信息。

唯一作业管理:用户可以用透明的作业提交机制在任意节点提交作业,昨夜可以批处理,交互式或者并行模式被调度执行。

检查点设臵:检查点机制使进程状态和中间结果得以定期保存,当节点实效是故障节点的进程可以在另一个正在工作的节点上重新开始,而不会丢失计算结果。

进程迁移:是集群间的节点负载达到动态平衡。

除此以外,还包括单点管理和控制、唯一虚拟网络,唯一文件层次等功能。

集群中的通信网络

通信网络是集群中最关键的部分之一,士集群的主要瓶颈,他的速度,容量和性能直接影响着整个集群系统。

在集群系统中常使用的网络平台有快速以太网、ATM---异步传输模式、Server NET---系统网、MyriNET、SCI---可扩展并发接口以及内存通道网络等。

在网络平台中起直接也是主要作用的是网络传输协议,下面我们将以Xpress传输协议为例,来说明通信网络在集群中的作用。

我们了解到,在集群系统中,应用程序数据流可能需要从一个处理器复制到一组处理器上,在这种复制传输过程中,传输控制协议TCP在复制数据流时会给每一个接收者建立一个连接,单独处理每一个数据流;而UDP协议可以利用组播完成数据流的复制,虽然提高了传输效率但是它提供低延迟和快速通信的需要。这些都不能满足集群计算要求低延迟和快速通信的需要,Xpress(XTP)传输协议支持可靠和不可靠传输组播服务、组播组管理、快速建立与拆除连接、支持高吞吐量,递烟池通信服务,具有优先级管理机制、速与突发控制以及选择性冲发等功能。XTP传输协议可以单独或与其他传输协议一起运行在IP协议CLNP协议、LLC与MAC协议、异步传输协议ATM之上。

集群中的内存管理

集群互联结构首先要确定集群内存模式,也成为编程模式。其一是共享内存模式,在共享内存模式中有一个共有全局地址空间,使得集群网络对于进程是透明的;虚拟内存管理硬件和软件主要用来将虚拟地址映射到本地或远程物理地址中去,共享内存的互联结构可以将远程内存也映射到本地应用程序之中。共享内存的互联结构可以将远程内存也映射到本地应用程序之中。其二是分布设内存模式,在分布设内存模式中使用小心传递软件使得网络对应用程

序是可见的;通过发送/接受API(应用程序接口)调用。将数据发送到其他的节点或接收其他的节点传来的数据。与共享内存模式相比,用户必须明确地调用通信历程才能发送或者接收数据。

集群软件平台

操作系统

Linux操作系统

Solaris操作系统

Windows NT操作系统

编程环境

集群中的每一个用户可以使用不同的编程工具,开发和调试自己的分布式成熟,因此,集群环境应该包括接口,API和传统开发工具等等,共同为用户提供丰富的开发环境。

PVM:并行虚拟机。其功能是可以使由不同网络连接起来的异构计算机的结合作为一致而灵活的并发计算资源,即是应用环境又是消息传递库。

MPI:消息传递接口。是消息传递的详细说明,用作为明确的消息传递分布存储并行计算机的标准,该接口设图建立一个使用的可以只的,有效的灵活的消息传递标准。

管理软件

https://www.sodocs.net/doc/605093999.html, 软件用来提高并行处理器的可访问性,大多数传统的控制者-工作者代码是用C 或者FORTRAN编写的,并使用消息传递库来提供控制者-工作这之间的进程通讯。其主要的缺点是程序员需要了解传递,数据传递,分布式管理和安全的内在机制,最终用户仍需要掌握一些并行任务计划来请求资源,以便运行应用程序。而https://www.sodocs.net/doc/605093999.html, 消除了这些障碍,使用户或者程序员可以采用面向对象的方法完成任务。

还有很多应用于集群中的管理软件在此不再一一列举。

集群计算系统的三大技术

高可用性集群技术(High Availability Cluster (HA Cluster))

是指以减少服务中断(宕机)时间为目的的服务器集群技术。

随着全球经济的增长,世界各地各种各样的组织对IT系统的依赖都在不断增加,电子贸易使得商务一周七天24小时不间断的进行成为了可能。新的强大的应用程序使得商业和社会机构对日常操作的计算机化要求达到了空前的程度,趋势非常明显,我们无时无刻不依赖于稳定的计算机系统。

这种需求极速的增长,使得对系统可用性的要求变得非常重要,许多公司和组织的业务在很大程度上都依赖于计算机系统,任何的宕机都会造成严重的损失,关键IT系统的故障可能很快造成整个商业运作的瘫痪,每一分钟的宕机都意味着收入、生产和利润的损失,甚

至于市场地位的削弱。

Industry Business Operation Average Cost per Hour of Downtime Financial Brokerage operations $6.5 million

Financial Credit card/sales authorization $2.6 million

Media Pay-per-view television $1.1 million

Retail Home Shopping (TV) $113.0 thousand

Retail Home catalog sales $90.0 thousand

Transportation Airline reservation $89.5 thousand

根据1998年Garter Group的统计我们可以看出,我们需要可以不间断使用的计算机系统,并且这种对高可用性系统和技术的需求还会不断的增长。

可用性是指一个系统保持在线并且可供访问,有很多因素会造成系统宕机,包括为了维护而有计划的宕机以及意外故障等,高可用性方案的目标就是使宕机时间以及故障恢复时间最小化,可以容忍的宕机时间明确的说明方案的全面性、复杂性和成本

Percent Available downtime/Year Classification

99. 5 3.7 days Conventional

99. 9 8.8 hours Available

99. 99 52.6 minutes Highly Available

99. 999 5.3 minutes Fault Resilient

99. 9999 32 seconds Fault Tolerant

为了提高整个系统的可用性,除了提高计算机各个部件的可靠性以外,一般情况下都会采用集群的方案。

所谓集群,就是共同为客户机提供网络资源的一组计算机系统。而其中的每一台提供服务的计算机,我们称之为节点。当一个节点不可用或者不能处理客户的请求时,该请求将会转到另外的可用节点来处理,而这些对于客户端来说,它根本不必关心这些要使用的资源的具体位臵,集群系统会自动完成。

集群中节点可以以不同的方式来运行,这要看它们是如何设臵的。在一个理想的两个节点的集群中,两个服务器都同时处于活动状态,也就是在两个节点上同时运行应用程序,当一个节点出现故障时,运行在出故障的节点上的应用程序就会转移到另外的没有出现故障的服务器上,这样一来,由于两个节点的工作现在由一个服务器来承担,自然会影响服务器的性能。针对这种情况的解决方案是,在正常操作时,另一个节点处于备用状态,只有当活动的节点出现故障时该备用节点才会接管工作,但这并不是一个很经济的方案,因为你不得不买两个服务器来做一个服务器的工作。虽然当出现故障时不会对性能产生任何影响,但是在正常运行时的性能价格比并不太好。

从上面的工作方式出发,我们可以把集群分为下面几种(特别是两节点的集群)主/主(Active/active)

这是最常用的集群模型,它提供了高可用性,并且在只有一个节点在线时提供可以接受的性能,该模型允许最大程度的利用硬件资源。每个节点都通过网络对客户机提供资源,每个节点的容量被定义好,使得性能达到最优,并且每个节点都可以在故障转移时临时接管另一个节点的工作。所有的服务在故障转移后仍保持可用,但是性能通常都会下降。

主/从(Active/passive)

为了提供最大的可用性,以及对性能最小的影响,Active/passive模型需要一个在正常工作时处于备用状态,主节点处理客户机的请求,而备用节点处于空闲状态,当主节点出现故障时,备用节点会接管主节点的工作,继续为客户机提供服务,并且不会有任何性能上影响。混合型(Hybrid)

混合是上面两种模型的结合,只针对关键应用进行故障转移,这样可以对这些应用实现可用性的同时让非关键的应用在正常运作时也可以在服务器上运行。当出现故障时,出现故障的服务器上的不太关键的应用就不可用了,但是那些关键应用会转移到另一个可用的节点上,从而达到性能和容错两方面的平衡。

高性能计算集群技术High Performance Computing Cluster (HPC Cluster)

高性能计算集群技术(High Performance Computing Cluster (HPC Cluster))

是指以提高科学计算能力为目的计算机集群技术。HPC Cluster是一种并行计算(Parallel Processing)集群的实现方法。并行计算是指将一个应用程序分割成多块可以并行执行的部分并指定到多个处理器上执行的方法。目前的很多计算机系统可以支持SMP(对称多处理器)架构并通过进程调度机制进行并行处理,但是SMP技术的可扩展性是十分有限的,比如在目前的Intel架构上最多只可以扩展到8颗CPU。为了满足哪些"计算能力饥渴"的科学计算任务,并行计算集群的方法被引入到计算机界。著名的"深蓝"计算机就是并行计算集群的一种实现。

由于在某些廉价而通用的计算平台(如Intel+Linux)上运行并行计算集群可以提供极佳的性能价格比,所以近年来这种解决方案越来越受到用户的青睐。比如壳牌石油(Shell)所使用的由IBM xSeries服务器组成的1024节点的Linux HPC Cluster是目前世界上计算能力最强的计算机之一。

HPC Cluster向用户提供一个单一计算机的界面。前臵计算机负责与用户交互,并在接受用户提交的计算任务后通过调度器(Scheduler)程序将任务分配给各个计算节点执行;运行结束后通过前臵计算机将结果返回给用户。程序运行过程中的进程间通信(IPC)通过专用网络进行。

HPC Cluster中使用的服务器通常可以分为用户节点、管理节点、存贮节点和计算节点四种。它们的角色分别是:

用户节点:

提供用户界面的计算机。它从用户那里接受任务,运行调度器(在本地或独立的"控制节点"上)将任务分派到其它计算机,并将运算结果返回给用户。

管理节点:

提供管理功能的计算机。它应该能够使管理员从这一计算机对集群中的任意一台计算机进行监视和操作,并处理集群中所有计算机的日志和报警信息。

存贮节点:

提供存贮共享的计算机。为了使任务可以并行执行,每台执行任务的计算机必须能够访问同样的数据。存贮节点通过网络共享(NFS)或其它方式来确保数据访问的同步。

计算节点:

真正执行计算任务的计算机。集群中的大部分计算机都是这种类型。一个HPC Cluster 中通常同时使用三个网络,它们分别是IPC网络,管理网络和存贮访问网络。根据具体的使用需求和选择的节点特性,这些网络可以使用多种介质和协议。

IPC网络:

用于并行任务执行时的进程间通信的专用网络,通常要求延迟小,带宽大。

管理网络:

用来收集集群信息、监视集群计算机和执行维护任务的网络。

存贮访问网络:

用来访问公用存贮的专用网络。

在实现一个HPC Cluster时,通常需要考虑以下问题:

?应用程序是计算能力饥渴型(CPU+内存)还是IO(磁盘/网络)饥渴型?

--HPC Cluster只适合解决计算能力饥渴型的问题

?应用程序是否可以"并行化"?

--HPC Cluster对于可以并行化的应用程序最为有效

?怎样才能提高"计算密度"?

--所谓的"计算密度"是指在单位空间中所能提供的计算能力(所能摆放的计算机台数)。没有很好的计划和组织,一台1000+节点的超级计算机就可能成为一场超级麻烦。更高的计算密度不仅意味着更小的体积,也以为着更加简便的管理和更少的投资。1U的机架式服务器应当是首选。然后应该考虑的是:哪种服务器需要更少的电缆?哪种计算机用作计算节点可以省去额外的控制部件(如连接键盘、鼠标的控制台切换器)?哪种计算节点可以提供更高的计算效能?

?如何安装和管理所有的计算机?

--计算机的可管理性在HPC Cluster的实现中至关重要。在同时面对数十甚至成百上千的计算机的情况下,管理员能否简单快速地执行维护工作常常成为影响集群发挥效用的关键因素。

在集群计算的需求确定之后,选择各种组件构成Cluster的实现方案常常十分困难,而且经常由于组件之间难以协同工作而导致Cluster的实现失败,或者最终构造了一个难以使用又难以管理的Cluster。针对这种情况,应该优先考虑选择一体化的HPC产品。这些产品通常会在厂商的工厂中进行组装和测试,然后按机架的方式交付客户使用。比如在目前的IBM 所提供的1300 HPC Cluster,它基于Intel架构的硬件平台和Linux操作系统,使用与"深蓝"计算机上同样的集群计算技术,在计算密度、集群管理等方面都比较出色。

高可扩高可用性集群技术

高可扩展性集群技术

高可扩展性集群技术就是带均衡策略(算法)的服务器群集。负载均衡群集在多节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障。

一般的框架结构如下图(以Web访问为例,其它应用类似)。后台的多个Web服务器上面有相同的Web内容,Internet客户端的访问请求首先进入一台服务器,由它根据负载均衡策略(算法)合理地分配给某个Web服务器。每个Web服务器有相同的内容做起来不难,所以选择负载均衡策略(算法)是个关键问题。下面会专门介绍均衡算法。

负载均衡的作用就像轮流值日制度,把任务分给大家来完成,以免让一个人过度劳累。但是与轮流值日制度不同的是,负载均衡是一种动态均衡,它通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务理分配出去。对于不同的应用环境(如电子商务网站,它的计算负荷大;再如网络数据库应用,读写频繁,服务器的存储子系统系统面临很大压力;再如视频服务应用,数据传输量大,网络接口负担重压。),使用的均衡策略(算法)是不同的。所以均衡策略(算法)也就有了多种多样的形式,广义上的负载均衡既可以设臵专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。在OSI七层协议模型中的第二(数据链路层)、第三(网络层)、第四(传输层)、第七层(应用层)都有相应的负载均衡策略(算法),在数据链路层上实现负载均衡的原理是根据数据包的目的MAC 地址选择不同的路径;在网络层上可利用基于IP地址的分配方式将数据流疏通到多个节点;而传输层和应用层的交换(Switch),本身便是一种基于访问流量的控制方式,能够实现负载均衡。

到目前为止,针对网络负载均衡的产品主要有两大类:一是硬件;二是软件。硬件产品比软件产品运行得快但是价格较高。著名的产品有:3Com的智能网卡和DynamicAccess技术结合起来,不用在交换机上做任何设臵,就可以完成分担任务;Cisco路由器通过对动态环路、旁路技术等功能的提供实践着负载均衡;Win2000中,专门集成了针对服务器群集的负载均衡软件;IBM的Web专用服务器和Network Dispatcher软件;Lotus的ICM;还有许多厂商都支持的链路聚集、高层交换......实现方法还在不断地花样翻新,充实着"负载均衡"的内容。

目前,基于均衡算法主要有三种:轮循(Round-Robin)、最小连接数(Least Connections First),和快速响应优先(Faster Response Precedence)。轮循算法,就是将来自网络的请求依次分配给集群中的服务器进行处理。最小连接数算法,就是为集群中的每台服务器设臵一个记数器,记录每个服务器当前的连接数,负载均衡系统总是选择当前连接数最少的服务器分配任务。这要比"轮循算法"好很多,因为在有些场合中,简单的轮循不能判断哪个服务器的负载更低,也许新的工作又被分配给了一个已经很忙的服务器了。快速响应优先算法,是根据群集中的服务器状态(CPU、内存等主要处理部分)来分配任务。这一点很难做到,事实上到目前为止,采用这个算法的负载均衡系统还很少。尤其对于硬件负载均衡设备来说,只能在TCP/IP协议方面做工作,几乎不可能深入到服务器的处理系统中进行监测。但是它

是未来发展的方向。

采用负载均衡群集的场合很多,本文将以Web/Ftp服务器群集这个典型的应用为例进行介绍。互联网的出现使信息访问产生了质的飞跃,但随之而来的是Web流量的激增(高并发访问),由于涉及的信息量十分庞大,用户访问的频率也高,许多基于Web的大型公共信息系统(如电子图书馆、BBS、搜索引擎和远程教育等)需要在实时性和吞吐量方面都具有较高性能的Web服务器支持。一些热门的Web站点由于负荷过重而变得反应迟缓。如何提高Web服务器的性能和效率成为一个亟待解决的问题。

实际上,服务器的处理能力和I/O已经成为提供Web服务的瓶颈。如果客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是服务质量下降。显然,单台服务器有限的性能不可能解决这个问题,一台普通服务器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。显然,采用高性能的主机系统(小型机乃至大型计算机)是可行的。但是,除了其价格价格昂贵外,这种高速、高性能的主机系统,很多情况下也不能解决同时处理几万个并发。因为,高速主机系统只是对于复杂单一任务和有限的并发处理显得高性能,而Internet中的Web服务器绝大多数处理是"简单任务"、高强度并发处理,因此,即便有大资金投入采用高性能、高价格的主机系统,也不能满足Web应用的需要。这就是利用Web服务器群集实现负载均衡的最初基本设计思想。

Web服务器群集的概念最早由伊利诺斯州大学(UIUC:University of Illinois at Urbana-Champaign)的超级计算应用中心(NCSA:National Center of Supercomputing Applications)提出并实现了一个原型系统"NCSA Scalable Web Server Cluster",它通过连接一组计算机对客户同时提供服务,实现分布负载,降低对用户请求的响应时间,并扩展Web 服务器的应用。后来Berkeley的NOW小组、NSC和科罗拉多大学的Harvest小组、Cisco及IBM公司等也加入此行列,很快推出相应产品。如NCSA使用几台工作站构成可扩展并行Web服务器群,提供使用其浏览器软件Mosaic、服务器软件httpd的用户查询帮助信息和下载软件的服务器系统,采用轮循算法选择群集中某台计算机为当前访问请求服务;加州大学SWEB系统采用DNS转发技术实现服务器IP地址重定向(Yahoo 采用的就是这种方法);Inktomi公司利用NOW构造并行的HotBot检索引擎,因而系统具有成本低和扩展能力强的特点;此外,IBM公司也提出类似的可扩展并行Web服务器群集系统的设计方案。这些系统的成功表明Web 服务器群集是改善Web服务的一种有效解决方案,并且正在成为主流技术。

在Web负载均衡群集的设计中,网络拓扑被设计为对称结构。在对称结构中每台服务器都具备等价的地位,都可以单独对外提供服务。通过负载算法,分配设备将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收到连接请求的服务器都独立回应客户的请求。如下图所示。

这种Web服务器群集有如下特点:

1. 高性能:一个Web服务器群集系统由多台Web服务器组成,对外部而言,整个群集就如同一台高性能Web服务器,系统只有一个对外的网络地址(主机名或IP地址),所有的HTTP请求都发到这个地址上。系统中有专门的机制能够将这些请求按照一定原则分发到群集中的各台服务器上,让它们各自分担一部分工作。

2. 可扩展性它是采用同样的方法或技术高效率地支持较大规模系统的能力。Web 服务器群集系统的组成结构和工作原理决定了它能够比较容易地达到较好的可扩展性,因为扩大系统规模非常容易,只要在网络中增加新的Web服务器计算机即可。

3. 高可用性Web服务器群集系统将会在各种商业应用领域中占有举足轻重的地位。商用系统最重视系统的可靠性和容错性,二者合在一起称为系统的可用性。常用的系统可用性指标有系统平均无故障时间、期望不间断工作时间及年平均故障率等。由于Web服务器群集系统中各台Web服务器之间相对独立,采用一些不太复杂的技术就能使Web服务器群集系统达到很高的可用性。一些商用产品中已经部分实现了这种技术。

此外,Web服务器群集系统还具有价格便宜、能够保护原有投资等特点。

目前比较成熟的产品主要有Cisco的LocalDirector、IBM的Network Dispatcher、HydraWEB 的HydraWEB Dispatcher和RND的Web Server Director等等。这些产品的应用非常广泛,如Yahoo、Net Center和MSN都是用几百到几千台计算机组成Web 服务器群集来对外提供服务,它们使用了上述产品。

集群计算系统的体系结构和设计原理

三种集群技术的工作原理

高可用集群技术

下面针对高可用性集群,介绍一下它的工作原理。

在微软的MSCS(Microsoft Cluster Server)术语中,所有的应用程序、数据文件、磁盘、网络IP地址等都被称为资源,一些资源可以组成一个资源组,一个资源组存在于一个节点上,但同时只能在一个节点上,它是MSCS可以进行故障切换(FailOver)的最小单元。

在MSCS中,所有的资源都处于资源监视器的监视之下,资源监视器通过资源动态链接库文件与资源进行通信,这些资源动态链接库会侦测对应资源的状态,并通知资源监视器,之后,监视器再把信息提供给集群服务(Cluster Service),缺省情况下,集群服务会启动一个资源监视器来监视节点中的全部资源。

MSCS用依赖性来定义不同资源彼此之间的关系,MSCS会根据资源间的相互依赖关系来决定把这些资源变为在线或者是离线的顺序。举一个WEB服务器文件共享的例子,文件共享的资源需要硬盘驱动器来存储数据,把这些有关系的资源一起放在MSCS组中,要实现共享,就必须先把硬盘准备好。同时,为了完成文件共享,我们还需要准备好网络名称以及IP地址。

从上图可以看出,文件共享资源依赖于硬盘资源,网络名称资源依赖于IP地址资源,而对应的WEB服务刚依赖于文件共享和网络名称。

资源的存在可以分为五种状态

1、Offline,资源不能被别的资源或者客户机使用

2、Offline Pending,资源正处于Offline的过程中

3、Online,资源处于可用的状态

4、Online Pending,资源正处于Online的过程中

5、Failed,资源出现了MSCS无法解决的问题

前面已经提到,MSCS可以从一个节点故障切换到另一个节点的最小单元是资源组。被定义好的相关的资源放在同一个组中,并建立对应的依赖关系。以下图为例,如果节点A 中的资源组1要移到节点B上的话,资源组1中的资源(资源A,资源B,资源C)也必须从节点A移到节点B才行。

在MSCS的资源中,有一个非常重要的资源,Quorum,它是一个可以被两个节点访问的物理硬盘,用来保存集群的信息。这些信息是用来维护集群的完整性以及使节点保持同步,特别是当节点不能与另一个节点通信的时候。Quorum盘在某一时刻只能被一个节点所拥有,并用来决定由哪个节点来拥有集群的所有资源。Quorum必须位于共享的磁盘子系统中,一般都是使用外接的磁盘柜。一般情况下,不建议把应用

程序和数据保存到包含Quorum的硬盘上。

故障切换(Failover)是指把出现故障的节点上的资源重新定位到另一个可用的节点上。负责监视资源的资源监视器一旦发现资源出现故障,它就会通知集群服务,集群服务会根据事前定义好的策略触发对应的事件。虽然发现的是个别资源的故障,但是,集群还是会把整个资源组进行故障切换。

故障切换会在三种不同的情况下发生:人工(一般是因为管理员的请求),自动,或者在特定的时间(由集群管理软件设定)。自动故障切换又包含了三个阶段:1、故障发现。2、资源重新定位。3、重新启动应用程序(一般是故障切换过程中最耗费时间的)。当达到资源组的故障切换阀值时,自动的故障切换才会发生,阀值是可以设定的,一般由管理员来设定。故障恢复(Failback)是一种故障切换的特例,是指发生故障切换之后,把部分或者全部资源组移回它们首选的节点的过程。首选的节点,就是指集群中指定的运行资源组的道选的节点,如果是多个节点的高可用性方案,就会有多个首选的节点。当首选的节点出现故障后,对应的资源组就切换到另外的可用节点上,当出现故障的节点恢复正常后,资源组可以自动的切换回首选节点。如果没有定义首选节点,资源组就不会自动切换回来。

要检查资源是不是可用,资源监视器会向对应的动态链接库发送状态信息的请求,一般会有两种级别的检查,LooksAlive和IsAlive。LooksAlive级别的检查相对比较简单,每隔一段时间(相对比较短的时间,缺省是5秒),资源监视器会进行一次LooksAlive级别的检查,如果资源没有响应,监视器会向集群服务报告。IsAlive级别的检查是非常完整的检查,它会彻底检查资源是不是工作正常,IsAlive检查的时间间隔比LooksAlive要长,缺省是1分钟。结合上面提到的各个要素,高可用性就是通过下面的过程来实现的:

首先,资源监视器根据设定的时间间隔对资源进行LookAlive和IsAlive两种级别的检查,

一旦发现某一个资源不可用,就会试图重新启动该资源。根据阀值的设定,如果在某一时间段内,资源不可用的情况达到了设定的阀值时,就会发生故障切换。经过故障切换的过程,对应的资源组在另外一个节点上重新启动了,继续为客户机提供服务,对客户来说,工作没有影响,这就完成了一次故障切换。当出现故障的节点恢复正常以后,如果事先对该资源组设定了首选节点,就会把该资源组移回该首选节点。

高性能计算技术

HPC: 并行计算工作原理

要实现并行计算,您需要:

1. 支持并行运算的硬件架构;

2. 支持并行计算的应用程序;

3. 使应用能够并行执行的软件工具,如编译器,API等等。

下面我们就这三个方面分别介绍它们的分类和作用。

一、并行计算硬件架构

1、计算方式的分类

在这里我们使用历史"悠久"的Flynn分类法将计算方式分为以下四种:

?SISD(单指令流单数据流):传统的计算机只有一块CPU,因此准许一条指令流顺序执行。目前许多大型主机有一块以上的CPU,但各CPU执行的指令流互不相关,因此它们仍被看作是SISD机器,不过是很多运行在不同数据空间上的SISD的组合。很多HP,DEC和SUN的工作站属于这种类型。并行计算机不应采用这种计算方式。

?SIMD(单指令流多数据流):单个指令流对于多个数据流进行操作。这种方式可以形象化为多台计算机在中央调度处理器的协调下处理各自的数据。从逻辑上看,此时指令全部来自于中央调度器,尽管它们可以执行在不同的硬件设备(CPU)上。

?MISD(多指令流单数据流):多个指令流共同操作同一条数据流。到目前为止尚未发明这样的系统。

?MIMD(多指令流多数据流):这种系统并行的在不同数据上执行不同的指令流,这种类型与上面提到的多处理器SISD系统的本质区别在于不同处理器处理的数据是彼此相关的,它们实际上是在并行执行同一工作的不同部分。因此MIMD系统可以将一个主任务分解为众多子任务并行执行以缩短工作时间。这是目前大部分协同计算系统所采用的计算方式。

2、并行计算的相关架构

为了使计算机系统能够实现并行处理,一系列的计算机架构相关的技术被开发出来。下面我们介绍一下其中的几种主要技术。

■ 处理器阵列(Array Processors):

使用多个处理器组成阵列,在运行时由中央处理器广播指令流,各个其它处理器(又称处理元,processing element)执行指令流来处理本地内存中的数据。这种处理技术是被广泛采用的分布式内存技术的基础。

■ 共享内存(Shared Memory):

处理器(PE)通过某种连接机制连接到一块巨大的共享内存上,使得任何处理器都能够访问任何一段内存。这种技术的优点是在并行环境中可以简化操作系统、编译器和应用程序的设计,缺点是当处理器数目增加时性能会迅速下降而成本会迅速上升。著名的Cray T90超级计算机使用的就是这种技术,目前很多的RISC工作站也使用这种技术。这种技术在很多新的并行计算实现上也被部分借鉴。

■ 分布式内存(Distributed Memory):

每个处理器(PE)只访问自己的本地内存,处理器之间通过某种连接机制进行通讯,从而进行协同工作,成为一台并行计算机。这种技术的优点是可以很容易地组合很多标准计算机硬件成为一台超级计算机,与其它技术相比具有很高的性能价格比和可扩展性。缺点是应用程序中必须包含明确的信息传递调用以利用并行架构,而且编译器、调试器、并行化工具和性能监测工具的设计也会非常复杂。使用这种技术时,连接机制的选择至关重要。带宽和时延会直接影响整个系统的性能。这种技术在新兴的Linux HPC中广为采用。

■ 虚拟共享内存(Virtual Shared memory):

这种技术将分布式内存虚拟为统一的内存空间,从而获得分布式内存和共享内存技术的所有优点。但是由于过多的内存访问调度,在目前的技术水平上性能非常差。目前的实际应用中不会采取这种技术。

二、并行应用程序技术应用程序决定了计算过程中的指令流和数据流,所以应用程序能否并行化是能否利用并行计算机的硬件架构的关键所在。以下是一些对并行应用程序常用技

术的简单介绍。

■ 数据和功能并行化:

这时将计算任务分配到多个处理器上执行的最基本方法。数据并行化是指将需要处理的数据划分到不同的处理器上,然后所有处理器执行相同的指令流来处理各自的数据。设想一下一个求1000个数的正弦函数的程序,如果您有1000个处理器,您可以为每个处理器分配一个计算正弦函数的任务,然后让1000个处理器同时开始执行。这是一种SIMD的实现技术。功能并行化是指将应用程序中的不同功能分配到不同的处理器/内存上去完成,是一种MIMD的实现方法。

■ 循环级并行化:

对于大多数科学计算任务而言,大部分的时间花费在循环计算之中。在共享内存架构的系统中,"并行编译器"可以检测到循环中互无关联的计算步骤并将它们分配给不同的处理器去执行。

■ 数组语句(Array Syntax):

SIMD的另一种实现方法。在程序设计语言中包含对数组成员进行一次性赋值和计算的语句。在并行系统上,并行编译器会自动对这些赋值和计算进行并行化处理。

■ 信息传递(Message passing):

在分布式内存架构上,每个处理器只能访问自己的内存。当处理器之间需要进行数据交换时,信息传递是目前最为广泛使用的技术。从程序员的角度来看,这种技术就是一系列发送与接收调用的组合。当应用程序变得比较庞大而复杂时,这种技术的使用会变得非常复杂和容易出错,比如一个处理器等待的消息永远无法收到等等。但是一旦程序设计成功,这种技术在分布式内存系统和共享内存系统上都能够获得很好的性能。

三、常用的并行计算工具软件

并行计算工具软件是指那些帮助程序设计人员更好或更简单地利用并行架构的工具。下面我们介绍最常用的几种。

■ 编译器(Compiler):

编译器在并行计算中的作用分为两个层面,一是像在串行系统上一样生成优化的代码序列,二是将可以并行执行的部分进行并行化处理。尽管编写出能够把传统的、串行结构的应用程序编译为完美的并行代码的编译器是几乎不可能的任务,但计算机科学家们的不懈努力正在使编写并行程序越来越容易。目前很多的编译器可以借助程序员写在程序中的简单编译指导生成高质量的并行代码,如数组语句的处理等。在目前的多数共享内存架构的系统上,编译器已经可以进行循环级的并行化。

■ 调试器(Debugger):

调试器可以说是程序设计的必备工具。在并行计算系统中,特别是分布式内存架构的系统中,一个调试器通常面临以下的挑战:必须能够反映出信息传递的过程和状态;在查看变量时,必须能够查看每个处理器上的同名变量的状态;由于在科学计算中大数组的广泛应用,必须能够以直观的方式表示出数组成员的值,等等等等。

■ 性能监测/分析工具:

由于并行计算所带来的程序并行执行的复杂性和不可预见性,您会需要一个功能强大的性能监测/分析工具来帮助您完成分析并行化程度、信息传递特性以及判定系统瓶颈等工作,以便使并行系统投入产能应用时能够有最好的性能状态。

■ 并行化工具/API:

并行化工具是指将串行源代码转化为并行源代码的工具,通常只需要程序员在程序中插入简单的宏,就可以完成向并行源代码的转化。并行API主要是指实现了完整信息传递功能的软件包,使得程序员指需要进行简单的调用就可以实现信息传递,而无须自己实现其中

的每一个细节。

综上所述,一个成功的并行计算系统的核心是硬件架构、应用程序和辅助软件。目前广为应用的硬件架构是共享内存和分布式内存,前者可以简化程序设计但成本高,可扩展性差;后者成本低,扩展性好但会导致程序设计复杂化。应用程序在设计上会因为硬件架构的不同而有所不同,其中信息传递技术虽然设计复杂但在两种硬件架构上都能够获得高性能。恰当的辅助工具不仅使程序设计更为简单,而且实际上,在大规模的应用系统中,没有这些工具几乎不可能实现稳定的、高性能的并行计算。

Linux HPC Cluster

HPC(高性能计算)虽然已经有很多年的历史了,但是其普及程度一直不是很高。主要原因不外乎以下几点:

价格昂贵。相对较小的生产规模使得相关的部件成本极高,价格常常使用户望而却步。

不容易扩展。由于没有使用市面上通用的模块,HPC系统的扩展要么不容易在技术上实现,要么成本难以令用户接受。

对使用环境要求苛刻。过去,一套大的HPC系统可能需要像篮球场那么大的机房去安装,可以想见配套的建筑、电源、布线和散热措施的准备会有多么复杂和昂贵。

近年来,随着计算机技术的进步,一种新的HPC系统正迅速崛起,这就是使用运行Linux 操作系统的Intel平台的计算机来构建HPC Cluster。这是一种分布式内存的HPC架构,针对上面提出的三个问题,它能够提供如下的好处:

由于使用Linux操作系统和通用的Intel平台,集群中的各个节点(计算机)的价格将会相对低廉;

由于使用通用的硬件平台和标准的网络组件,集群的扩展容易实现而且价格低廉;

不难看出,Linux HPC最大的优点是廉价!这一特点使得更多的"计算饥渴"的用户可以选择使用HPC系统。作为HPC技术最先进的公司,几年前IBM就已经帮助包括壳牌石油在内的许多客户建立了1000节点以上的Linux HPC系统,这些系统至今仍然在全世界最快速的计算机系统中占据着一席之地。

一个好的Linux HPC系统完全不会在任何方面逊色于其它的分布式内存HPC系统,但问题是想要构建一个好的Linux HPC系统事实上是很难的。请考虑以下这些问题:您想要一个廉价的Linux HPC系统。您应该购买什么样的计算机来构成这个系统才能避免在实施和使用中的问题?

您有64台Intel平台的计算机来运行Linux系统。为了把它们组建成为一个HPC系统,您还需要购买哪些硬件设备?

为了放臵这些硬件设备,您需要多少个标准机架和什么样的机房来安装?

为了将新的HPC系统整合到您的网络环境中,您需要多少个额外的IP地址?您应该怎样分配它们?

为了将新的HPC系统整合到您的网络环境中,您需要多少根网线?如果数目很多的话,您如何保证在安装的时候不会弄错?

您打算怎么为这些计算机安装系统?如果系统崩溃了,您又如何保证在最短的时间里让它们恢复运作?

您的应用程序打算使用什么并行API开发?

您打算使用什么样的程序调度机制和哪一个调度器?

您如何做到像管理一台计算机一样管理这个HPC Cluster?

LoadBalance(负载均衡)群集

负载均衡群集系统使应用程序处理负载或网络流量负载可以在计算机群集中尽可能平均地分摊处理。这样的系统非常适合于运行同一组应用程序的大量用户。每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。对于网络流量也如此。通常,网络服务器应用程序接受了太多的入网流量,以致无法迅速处理,这就需要将流量发送给在其它节点上运行的网络服务器应用。还可以根据每个节点上不同的可用资源或网络的特殊环境来进行优化。在网站,电子邮件提供商,VOD(Video On Demand)方面有广泛的应用。

以下将介绍负载均衡群集。

什么是负载均衡群集?-- 解释(定义,一般的框架结构,策略,哪些产品,技术区别,发展)

负载均衡群集就是带均衡策略(算法)的服务器群集。负载均衡群集在多节点之间按照一定的策略(算法)分发网络或计算处理负载。负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障。

一般的框架结构如下图(以Web访问为例,其它应用类似)。后台的多个Web服务器上面有相同的Web内容,Internet客户端的访问请求首先进入一台服务器,由它根据负载均衡策略(算法)合理地分配给某个Web服务器。每个Web服务器有相同的内容做起来不难,所以选择负载均衡策略(算法)是个关键问题。下面会专门介绍均衡算法。

负载均衡的作用就像轮流值日制度,把任务分给大家来完成,以免让一个人过度劳累。但是与轮流值日制度不同的是,负载均衡是一种动态均衡,它通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务理分配出去。对于不同的应用环境(如电子商务网站,它的计算负荷大;再如网络数据库应用,读写频繁,服务器的存储子系统系统面临很大压力;再如视频服务应用,数据传输量大,网络接口负担重压。),使用的均衡策略(算法)是不同的。所以均衡策略(算法)也就有了多种多样的形式,广义上的负载均衡既可以设臵专门的网关、负载均衡器,也可以通过一些专用软件与协议来实现。在OSI七层协议模型中的第二(数据链路层)、第三(网络层)、第四(传输层)、第七层(应用层)都有相应的负载均衡策略(算法),在数据链路层上实现负载均衡的原理是根据数据包的目的MAC 地址选择不同的路径;在网络层上可利用基于IP地址的分配方式将数据流疏通到多个节点;而传输层和应用层的交换(Switch),本身便是一种基于访问流量的控制方式,能够实现负

载均衡。

到目前为止,针对网络负载均衡的产品主要有两大类:一是硬件;二是软件。硬件产品比软件产品运行得快但是价格较高。著名的产品有:3Com的智能网卡和DynamicAccess技术结合起来,不用在交换机上做任何设臵,就可以完成分担任务;Cisco路由器通过对动态环路、旁路技术等功能的提供实践着负载均衡;Win2000中,专门集成了针对服务器群集的负载均衡软件;IBM的Web专用服务器和Network Dispatcher软件;Lotus的ICM;还有许多厂商都支持的链路聚集、高层交换......实现方法还在不断地花样翻新,充实着"负载均衡"的内容。

技术支持

负载均衡系统的几种负载均衡算法(负载均衡策)

目前,基于均衡算法主要有三种:轮循(Round-Robin)、最小连接数(Least Connections First),和快速响应优先(Faster Response Precedence)。轮循算法,就是将来自网络的请求依次分配给集群中的服务器进行处理。最小连接数算法,就是为集群中的每台服务器设臵一个记数器,记录每个服务器当前的连接数,负载均衡系统总是选择当前连接数最少的服务器分配任务。这要比"轮循算法"好很多,因为在有些场合中,简单的轮循不能判断哪个服务器的负载更低,也许新的工作又被分配给了一个已经很忙的服务器了。快速响应优先算法,是根据群集中的服务器状态(CPU、内存等主要处理部分)来分配任务。这一点很难做到,事实上到目前为止,采用这个算法的负载均衡系统还很少。尤其对于硬件负载均衡设备来说,只能在TCP/IP协议方面做工作,几乎不可能深入到服务器的处理系统中进行监测。但是它是未来发展的方向。

综上所述,负载均衡群集的使用是非常广泛的,它的核心内容是运用越来越科学的负载分配算法开发出软件或硬件,来实现负载的更加合理地分配。

怎么用?——举例说明,并包含需求分析

采用负载均衡群集的场合很多,本文将以Web/Ftp服务器群集这个典型的应用为例进行介绍。互联网的出现使信息访问产生了质的飞跃,但随之而来的是Web流量的激增(高并发访问),由于涉及的信息量十分庞大,用户访问的频率也高,许多基于Web的大型公共信息系统(如电子图书馆、BBS、搜索引擎和远程教育等)需要在实时性和吞吐量方面都具有较高性能的Web服务器支持。一些热门的Web站点由于负荷过重而变得反应迟缓。如何提高Web服务器的性能和效率成为一个亟待解决的问题。

实际上,服务器的处理能力和I/O已经成为提供Web服务的瓶颈。如果客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是宕机。显然,单台服务器有限的性能不可能解决这个问题,一台普通服务器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。显然,采用高性能的主机系统(小型机乃至大型计算机)是可行的。但是,除了其价格价格昂贵外,这种高速、高性能的主机系统,很多情况下也不能解决同时处理几万个并发。因为,高速主机系统只是对于复杂单一任务和有限的并发处理显得高性能,而Internet中的Web服务器绝大多数处理是"简单任务"、高强度并发处理,因此,即便有大资金投入采用高性能、高价格的主机系统,也不能满足Web 应用的需要。这就是利用Web服务器群集实现负载均衡的最初基本设计思想。

早期的服务器群集通常以主从方式(Active-Passive)备份。令服务运营商头疼的问题是:关键性服务器一般档次较高,花了两台服务器的钱却只能得到一台服务器的性能。随着

LSANT(Load Sharing Network Address Transfer)技术的推出,这个问题得到了解决。多台服务器的IP地址被翻译成一个虚拟IP地址(VIP:Virtual IP),使得每台服务器均时时处于工作状态。若能将10台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这样原来需要用小型机来完成的工作现由多台PC服务器就可以完成,这种弹性解决方案对投资保护的作用是相当明显的——既避免了小型机刚性升级所带来的巨大设备投资,又避免了人员培训的重复投资。同时,服务运营商可以依据业务的需要随时调整服务器的数量。至此形成了Web服务器群集的理论。

Web服务器群集的概念最早由伊利诺斯州大学(UIUC:University of Illinois at Urbana-Champaign)的超级计算应用中心(NCSA:National Center of Supercomputing Applications)提出并实现了一个原型系统"NCSA Scalable Web Server Cluster",它通过连接一组计算机对客户同时提供服务,实现分布负载,降低对用户请求的响应时间,并扩展Web 服务器的应用。后来Berkeley的NOW小组、NSC和科罗拉多大学的Harvest小组、Cisco及IBM公司等也加入此行列,很快推出相应产品。如NCSA使用几台工作站构成可扩展并行Web服务器群,提供使用其浏览器软件Mosaic、服务器软件httpd的用户查询帮助信息和下载软件的服务器系统,采用轮循算法选择群集中某台计算机为当前访问请求服务;加州大学SWEB系统采用DNS转发技术实现服务器IP地址重定向(Yahoo 采用的就是这种方法);Inktomi公司利用NOW构造并行的HotBot检索引擎,因而系统具有成本低和扩展能力强的特点;此外,IBM公司也提出类似的可扩展并行Web服务器群集系统的设计方案。这些系统的成功表明Web 服务器群集是改善Web服务的一种有效解决方案,并且正在成为主流技术。

在Web负载均衡群集的设计中,网络拓扑被设计为对称结构。在对称结构中每台服务器都具备等价的地位,都可以单独对外提供服务。通过负载算法,分配设备将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收到连接请求的服务器都独立回应客户的请求。如下图所示。

Web服务器群集有如下特点:

高性能:一个Web服务器群集系统由多台Web服务器组成,对外部而言,整个群集就如同一台高性能Web服务器,系统只有一个对外的网络地址(主机名或IP地址),所有的HTTP请求都发到这个地址上。系统中有专门的机制能够将这些请求按照一定原则分发到群集中的各台服务器上,让它们各自分担一部分工作。

可扩展性它是采用同样的方法或技术高效率地支持较大规模系统的能力。Web服务器

高性能计算机发展历程及现状

龙源期刊网 https://www.sodocs.net/doc/605093999.html, 高性能计算机发展历程及现状 作者:陈红梅等 来源:《软件导刊》2015年第03期 摘要:高性能计算已被公认为继理论科学和实验科学之后的第三大科学研究方法,是科技创新的重要手段。高性能计算机经过几十年的发展,经历了向量机、MPP、集群等几个阶段,我国高性能计算机的研制和应用也得到了快速发展。国内多所高校和科研院所纷纷构建高性能计算平台,江汉大学也构建了自己的高性能计算平台。对高性能计算机发展历程进行了梳理,并分析了其现状,重点介绍了江汉大学高性能计算平台。 关键词:高性能计算机;向量机;MPP;集群;中国TOP100;国际TOP500 中图分类号:TP3-0 文献标识码:A 文章编号:1672-7800(2015)003-0007-02 0 引言 目前,高性能计算科学与技术已成为世界各国竞相争夺的战略制高点[1]。一些发达国家 和发展中国家纷纷制定战略计划,投入大量资金,加速研究开发步伐。美国从20世纪70年代起就实施了一系列推动计算科学发展的国家计划,包括“战略计算机计划”(SCP)、“高性能计算和通讯计划”(HPCC)、“加速战略计算计划”(ASCI)、“先进计算设施伙伴计划”(PACI)等。 1 高性能计算机发展历程 从20世纪70年代产生第一代高性能计算机开始,经过几十年的发展,高性能计算机经历了向量机、MPP、集群等几个发展阶段。 1.1 向量机 1974年,控制数据公司(Control Data Corporation,CDC)推出了CDC STAR-100,它是首先使用向量处理器(Vector Processor)的计算机,被认为是第一台向量机。1982年,克雷公司生产的Cray X-MP/2诞生,它是世界上第一部并行向量计算机。Cray X-MP系列计算机基于并行向量处理机结构,并行向量处理机是将向量处理器直接并行的一种体系结构。 当时的并行向量机占领高性能计算市场达20年之久,并行向量机处理器数目的增加,使得定制费用和维护费用越来越昂贵,性价比越来越低,已难以满足高性能计算机市场化的要求。

看高性能计算系统中常用的几种内部互联网络

看高性能计算系统中常用的几种内部互联网络 在大规模并行计算和机群等高性能计算系统中,处理器之间或计算节点之间的快速互联网络的重要程度并不亚于处理器本身。在早期的大型计算系统中,处理器之间的通信一直被所采用的互联网络(通常是以太网)延时 大、带宽不足等因素所牵制;如今,Myrinet、QsNet、SCI以及刚刚兴起的Infiniband等多种专用高速互联网络的成功应用,使得这种状况发生很大改观的同时,也使得高性能计算系统内部互联网络的选择成了一门学问。 高性能计算系统的互联方式有很多种,最初的机群系统是基于LAN技术的,也就是以最普通的以太网(Ethernet)作为数据交换媒介。其优势在于可以方便地增加计算节点到集群系统中,但是其缺点也很多,传输速度较慢,复杂的协议造成非常高的延时,并且限制了扩展性。各种各样的专用高速互联网络应运而生,最为典型的有Myrinet、QsNet,以及最近几年兴起的Infiniband,它们为集群系统提供了构建高带宽、低延时数据交换环境的可行条件。 广为应用的Myrinet Myrinet是目前机群系统中应用最为广泛的互联网络。Myricom公司从1994年就开始销售第一代Myrinet产品,当时只是作为以太网络的第二选择来实现机群系统中的节点互联,除了100MB/s 的高带宽外,它的主要优势是小数据量延时,只有10m~15ms,这与当时Convex、IBM、SGI等公司在并行系统中使用的专有网络的高延迟形成鲜明对比。此后随着软硬件的不断升级,Myrinet更是成为了机群制造商的第一选择,直到今天这种优势依然存在。 同Infiniband一样,Myrinet使用全双工链路,并且通过远程内存存取(Remote Direct Memory Access,RDMA)对其他主适配器卡(称为Lanai)的远程内存进行读/写操作,这些卡以与之连接的主机PCI-X总线为接口界面。 最新一代的Myrinet使用了光纤作为信号传输通道,这不仅在连接方面有了很大的灵活性,而且也给信号高速传输提供了足够空间。但同时不可忽略的是,由于光纤电缆和连接器都很“娇气”,很容易在机群节点维护的过程中受损,可靠性方面值得关注。 目前Myrinet已经有8~128口交换机提供。从Myricom自己提供的最新测试数据来看,使用业界惯用的MPI Ping-Pong测试方法,其带宽为230MB/s,MPI延时为10ms。 快速可靠的QsNet QsNet是Quadrics公司的产品,该技术的起源可以追溯到早期一家德国公司Meiko,它专门研制称号为CS-1、CS-2的并行计算系统,在当时的CS-2系统中就包括了一种很好的对数网络,在Meiko公司倒闭的时候,这种网络作为单独的产品保留并被一家意大利公司Alenia接手,放置在一个独立的公司Quadrics中运营。后来由于Digital/Compaq公司选择了QsNet作为其AlphaServer SC 系列高性能计算机的互联网络而一举成功。不过事实也证明,QsNet是一种快速、可靠的网络系统。从两年前开始,该技术也逐渐在机群系统中得到应用。

计算机体系结构期末复习题与答案

第一题选择题 1. SIMD是指(B) A、单指令流单数据流 B、单指令流多数据流 C、多指令流单数据流 D、多指令流多数据流 2.下列那种存储设备不需要编址?D A. 通用寄存器 B. 主存储器 C. 输入输出设备 D. 堆栈 3.按照计算机系统层次结构,算术运算、逻辑运算和移位等指令应属于(A)级机器语言。 A、传统机器语言机器 B、操作系统机器 C、汇编语言机 器 D、高级语言机器 4.早期的计算机系统只有定点数据表示,因此硬件结构可以很简单。但是这样的系统有明显的缺点,下面哪一个不是它的缺点:B A.数据表示范围小 B.单个需要的计算时钟周期多 C.编程困难 D.存储单元的利用率很低 7.下面哪个页面替换算法实际上是不能够实现的?D A)随机页面替换算法

B)先进先出替换算法 C)最久没有使用算法 D)最优替换算法 9.指令优化编码方法,就编码的效率来讲,那种方法最好?C A. 固定长度编码 B. 扩展编码法 C. huffman编码法 D. 以上编码都不是 10.在早期冯·诺依曼计算机特征中,机器以(C)为中心。 A、存储器 B、输入输出设备 C、运算器 D、控制器 1.RISC 计算机的指令系统集类型是 ( C ) 。 A. 堆栈型 B. 累加器型 C. 寄存器—寄存器型 D. 寄存器 - 存储器型 2、相联存储器的访问方式是( D )。 A.先进先出顺序访问 B.按地址访问 C.无地址访问 D.按内容访问 3、假设—条指令的执行过程可以分为“取指令”、“分析”和“执行”三段,每—段分别只有—个部件可供使用,并且执行时间分别为Δt、2Δt和3Δt,连续执行n条指令所需要花费的最短时间约为( C )。 (假设“取指令”、“分析”和“执行”可重叠,并假设n足够大)

分布式系统和集中式系统

分布式系统和集中式系统 Prepared on 22 November 2020

分布式系统与集中式系统 根据管理信息系统的硬件、软件、数据等信息资源在空间的分布情况,系统的结构又可分为集中式和分布式两大类型。 一、分布式系统 利用计算机网络把分布在不同地点的计算机硬件、软件、数据等信息资源联系在一起服务于一个共同的目标而实现相互通信和资源共享,就形成了管理信息系统的分布式结构。具有分布结构的系统称为分布式系统。 实现不同地点的硬、软件和数据等信息资源共享,是分布式系统的一个主要特征。分布式系统的另一个主要特征是各地与计算机网络系统相联的计算机系统既可以在计算机网络系统的统一管理下工作,又可脱离网络环境利用本地信息资源独立开展工 作。 下图是分布式的图例: a)硬件环境 原来系统内中央处理器处理的任务分散给相应的处理器,实现不同功能的各个处理器相互协调,共享系统的外设与 软件。 b)网络环境 多数分布式系统是建立在计算机网络之上的,所以分布式系统与计算机网络在物理结构上是基本相同的。分布式操作系统的设计思想和网络操作系统是不同的,这决定了他们在结构、工作方式和功能上也不同。网络操作系统要求网络用户在使用网络资源时首先必须了解网络资源,网络用户必须知道网络中各个计算机的功能与配置、软件资源、网络文件结构等情况,在网络中如果用户要读一个共享文件 时,用户必须知道这个文件放在哪一台计算机的哪一个目录下;分布式操作系统是以全局方式管理系统资源的,它可以为用户任意调度网络资源,并且调度过程是“透明”的。当用户提交一个作业时,分布式操作系统能够根据需要在系统中选择最合适的处理器,将用户的作业提交到该处理程序,在处理器完成作业后,将结果传给用户。在这

高性能处理器体系结构

可重构计算专题 读书报告 杨晓晖(BA07011001)yangxhcs@https://www.sodocs.net/doc/605093999.html, 冯晓静(SA07011002)bangyan@https://www.sodocs.net/doc/605093999.html, 赵琼(SA07011013)qiongz@https://www.sodocs.net/doc/605093999.html, 裴建国(SA07011083)ustcowen@https://www.sodocs.net/doc/605093999.html, 俞华铭(SA07011053)yhm2007@https://www.sodocs.net/doc/605093999.html, 王仁(SA07011089)wangren@https://www.sodocs.net/doc/605093999.html, 张志雄(SA07011090)zzxiong@https://www.sodocs.net/doc/605093999.html, 中国科学技术大学计算机科学技术系 2007年12月

录 1可重构计算概述(杨晓晖) (1) 1.1引言 (1) 1.2可重构计算分类 (2) 1.3可重构计算体系结构 (5) 1.4可重构计算模型 (7) 1.5可重构计算算法 (8) 1.6问题讨论 (9) 本章小结 (10) 参考文献 (10) 2案例分析之一:可重构超级计算(冯晓静,赵琼) (11) 2.1引言 (11) 2.2论文工作 (11) 2.3问题及讨论 (12) 2.4对论文的思考 (14) 本章小结 (15) 参考文献 (15) 3案例分析之二:可重构计算在数据挖掘中的应用(裴建国,俞华铭) (16) 3.1引言 (16) 3.2算法实例 (16) 3.3主要贡献 (17) 3.4问题讨论 (20) 本章小结 (22) 参考文献 (22) 4案例分析之三:可重构计算在分子动力学仿真中的应用(王仁,张志雄).23 4.1引言 (23) 4.2仿真算法分析 (23) 4.3与相关工作的比较 (24) 4.4问题讨论及解决 (25) 4.5对论文的思考 (25) 本章小结 (26) 参考文献 (26) 5结论与展望(杨晓晖) (27)

我国高性能计算机的应用前景及发展中的问题

我国高性能计算机的应用前景及发展中的问题 摘要:高性能计算机与我们生活息息相关,高性能计算机是衡量一个国家综合国力的重要标志,是国家信息化建设的根本保证。发展高性能计算机,可以带动科学技术的进步,解决国民经济建设、社会发展进步、国防建设与国家安全等方面一系列的挑战性问题,促进我国相关产业的快速发展。文章总结了国内外高性能计算机发展现状及发展趋势,并总结了我国目前发展高性能计算机面临的问题,最后作者提出了对如何解决这些问题的看法。 关键词:高性能计算机;计算速度;高端计算 1、高性能计算机与大众生活息息相关 1.1对制造业的推动:我国是一个制造业大国,高性能计算在制造业的广泛使用,不仅可以帮助工程师在设计阶段更科学地计算材料强度,更合理地选择和使用材料,设计出更符合空气和流体动力学原理和人体工程的产品结构和外形,而且可以在仿真基础上全面规划整个制造过程,有效提高产品制造的质量和产量。高性能计算的全数字化设计制造环境在缩短产品设计周期、节能降耗、降低污染、提高产品质量

方面的作用不可限量。 1.2 对网络信息服务的影响:在网络日益普及的今天,我们已经渐渐习惯于从网上获得信息和服务,但是同时也经常为服务响应速度的迟缓而烦恼。要面对数千万、数亿用户的访问请求,服务器必须有强大的数据吞吐和处理能力。这又是高性能计算机发挥作用的舞台。高性能服务器每秒种可以处理数千万乃至数亿次服务请求,及时提供用户所需要的信息和服务,保证服务质量。 2、国内外高端计算发展现状 2.1国内高端计算机发展现状:根据中国软件行业协会数学软件分会2003年11月份公开发布的2003年中国高性能计算机TOP100排行榜最新统计,我国高端计算机系统的总计算能力在19.56TF/s峰值左右。我国高端计算机系统研制开始于20世纪70年代中后期,大体经历了3个主要发展阶段:第一阶段从70年代中后期到80年代中期,主要以研制大型向量系统为主(以银河I为代表);第二阶段从80年代中后期到90年代末,主要以研制大规模并行系统为主(以神威I为代表);第三阶段从90年代中期起,主要以研制大规模机群系统为主(以曙光机为代表)。目前,参与高端计算机研制的单位已经从科研院所发展到企业界。

分布式系统试题及答案

分布式系统复习题库及答案 1、计算机系统的硬件异构性、软件异构性主要表现在哪几方面? 参考答案: 计算机系统的硬件异构性主要有三个方面的表现,即: ①计算机的指令系统不同。这意味着一种机器上的程序模块不能在另一种不兼容的机器上执行,很显然,一种机器上的可执行代码程序不能在另一种不兼容的机器上执行。 ②数据表示方法不同。例如不同类型的计算机虽然都是按字节编址的,但是高字节和低字节的规定可能恰好相反。浮点数的表示方法也常常不一样。 ③机器的配置不同。尽管机器的类型可能相同,其硬件配置也可以互不兼容。 计算机系统的软件异构性包括操作系统异构性和程序设计语言异构性。 操作系统异构性的三个主要表现方面为: ①操作系统所提供的功能可能大不相同。例如,不同的操作系统至少提供了不同的命令集。 ②操作系统所提供的系统调用在语法、语义和功能方面也不相同。 ③文件系统不同。 程序设计语言的异构性表现在不同的程序设计语言用不同方法在文件中存储数据。 2、由于分布计算系统包含多个(可能是不同种类的)分散的、自治的处理资源,要想把它们组织成一个整体,最有效地完成一个共同的任务,做到这一点比起传统的集中式的单机系统要困难得多,需要解决很多新问题。这些问题主要表现在哪些方面? 参考答案: ①资源的多重性带来的问题。由于处理资源的多重性,分布计算系统可能产生的差错类型和次数都比集中式单机系统多。最明显的一个例子是部分失效问题:系统中某一个处理资源出现故障而其他计算机尚不知道,但单机系统任何一部分出现故障时将停止整个计算。另一个例子是多副本信息一致性问题。可见,资源多重性使得差错处理和恢复问题变得很复杂。资源多重性还给系统资源管理带来新的困难。 ②资源的分散性带来的问题。在分布计算系统中,系统资源在地理上是分散的。由于进程之间的通信采用的是报文传递的方式进行的,通信将产生不可预测的、有时是巨大的延迟,特别是在远程网络所组成的分布计算系统中更是这样。例如使用卫星通信会产生270毫秒的延迟。在分布计算系统中,系统的状态信息分布在各个分散的节点上。分布式的状态信息和不可预知的报文延迟使得系统的控制和同步问题变得很复杂,要想及时地、完整地搜集到系统各方面的信息是很困难的,从而使处理机进行最佳调度相当困难。 ③系统的异构性带来的问题。在异构性分布计算系统中,由于各种不同资源(特别是计算机和网络)的数据表示和编码、控制方式等均不相同,这样一来就产生了翻译、命名、保护和共享等新问题。 由于上述原因,分布计算系统的研制,特别是软件的验证、调试、测量和维护问题变得很复杂。这些正是分布计算系统研制者要解决的主要问题。 3、分布式计算系统具有透明性时,系统有什么主要优点? 参考答案: 系统具有透明性时有以下一些优点: ①使软件的研制变得容易,因为访问资源的方法只有一种,软件的功能与其位置无关。 ②系统的某些资源变动时不影响或较少影响应用软件。

高性能计算机排行榜简析

TOP100和TOP500 高性能计算机排行榜简析袁国兴研究员 北京应用物理与计算数学研究所

高性能计算(High Performance Computing ) /数值计算/数值模拟实验 利用先进的计算能力去理解和解决复杂问题 理论、实验难以解决 或无法解决的科学问题大型、复杂、甚至不可重复和危险的工程设计和实验安全(如核电)通过计算能评测、预测、预报核电运行和安全情况

“ 高性能计算可以做很多极其困难的事情: 可以提升研究能力、缩短研究进程、节约研究经费 下面举个例子来说明

“ 下面我们以中国高性能计算机性能排行榜TO P100和世界高性能计算机排行榜TO P500,来讨论中国高性能计算的发展

2018年10月中国TOP100前三名计算机神威? 太湖之光超级计算机 1 2 3 4 5 6研制厂商:国家并行计算机工程技术研究中心主要参数 部署单位:国家超级计算无锡中心 部署时间:2016年-2018年 测试性能:93.015 PFLOPS 系统峰值:125.436 PFLOPS 40机柜/160超级节点/40960个计算节点 40960颗SW26010 260C 1.45G H z C P U 单节点32G B内存,全系统1.31P B内存 自主高速网络 国产申威睿智操作系统(Ra ise O S)2.0.5 整机功耗15.371MW

关于神威?太湖之光 真正意义上的自主超级计算机系统 优异的性能功耗比 ?93.0 PFLOPS/15.37MW (33.86PFLOPS/17.8MW) ?Green500 第4名(其他前10系统规模不足太湖之光1/10) 出色的应用表现: 在盐湖城召开的2016全球超算大会上,中科院软件所杨超 团队(中科软+清华+北师大+国家无锡超算中心)联合开发 的“千万核可扩展大气动力学全隐式模拟”,获得国际高性能 计算应用领域最高奖—戈登贝尔奖(2016.11.17)

分布式系统原理介绍

分布式系统原理介绍 刘杰

目录 前言 (1) 1 概念 (2) 1.1 模型 (2) 1.1.1 节点 (2) 1.1.2 通信 (2) 1.1.3 存储 (2) 1.1.4 异常 (3) 1.2 副本 (8) 1.2.1 副本的概念 (8) 1.2.2 副本一致性 (8) 1.3 衡量分布式系统的指标 (9) 1.3.1 性能 (9) 1.3.2 可用性 (9) 1.3.3 可扩展性 (9) 1.3.4 一致性 (10) 2 分布式系统原理 (11) 2.1 数据分布方式 (11) 2.1.1 哈希方式 (11) 2.1.2 按数据范围分布 (13) 2.1.3 按数据量分布 (14) 2.1.4 一致性哈希 (14) 2.1.5 副本与数据分布 (16) 2.1.6 本地化计算 (18) 2.1.7 数据分布方式的选择 (18) 2.1.8 工程投影 (18) 2.2 基本副本协议 (20) 2.2.1 中心化副本控制协议 (20) 2.2.2 primary-secondary协议 (20) 2.2.3 去中心化副本控制协议 (23) 2.2.4 工程投影 (24) 2.3 Lease机制 (26) 2.3.1 基于lease的分布式cache系统 (26) 2.3.2 lease机制的分析 (28) 2.3.3 基于lease机制确定节点状态 (29) 2.3.4 lease的有效期时间选择 (30) 2.3.5 工程投影 (30) 2.4 Quorum机制 (33) 2.4.1 约定 (33) 2.4.2 Write-all-read-one (33) 2.4.3 Quorum定义 (34) 2.4.4 读取最新成功提交的数据 (35) 2.4.5 基于Quorum机制选择primary (36)

计算机系统结构试题及答案

2009-2010学年度第一学期2007级 《计算机系统结构》期末考试试卷(A)(闭卷) 姓名:学号:专业: (注:①考试时间为120分钟;②所有解答必须写在答题纸上。) 一、单项选择题(每小题3分,共30分) 1.在系列机中发展一种新型号机器,你认为下列()设想是不行的? 【A】新增加字符数据类型和若干条字符处理指令 【B】将中断分级由原来的4级增加到5级 【C】在CPU和主存之间增设Cache存贮器 【D】将浮点数的下溢处理法由原来的恒置“1”法,改为查表舍入法 2.对计算机系统结构来说,不透明的是()。 【A】存储器采用交叉存取还是并行存取 【B】CPU内部的数据通路的宽度是8位还是16位 【C】采用浮点数据表示还是标志符数据表示 【D】指令采用硬联逻辑实现还是微程序实现 3.一个平衡的计算机系统,应该是()。 【A】1MIPS的CPU速度【B】1MB的主存容量 【C】1Mb/s的I/O吞吐率【D】A、B和C 4、()设计是现代计算机系统设计所采用的方法。 【A】由上往下【B】由下往上【C】由中间开始【D】上下同时开始 5.当今微型机中实现软件移植最好的方法是()。 【A】系列机【B】兼容机【C】仿真技术【D】统一高级语言 6、不能够对向量数据结构提供直接支持的是()数据表示。 【A】向量【B】堆栈【C】描述符【D】A和C 7、采用整数边界存储技术,其主要目的是()。 【A】节约主存空间【B】提高数据的访问速度 【C】一个主存周期可取多条指令【D】一个主存周期至少可取到一条指令 8、在指令的操作码编码方式中,优化实用的编码是()。 【A】Huffman编码【B】等长编码【C】Huffman扩展编码【D】BCD码 9、流水计算机中将指令Cache和数据Cache分开,主要是为了()。 【A】提高存储系统的速度【B】增加主存容量 【C】解决功能部件冲突【D】解决访存冲突 10、当N=16时,能描述4组4元交换的函数是()。 【A】C1+C2 【B】C0+C1 【C】C0+C2 【D】C2+C3 假若编译器优化后能去掉50%的ALU指令,但不能去掉其它三类指令。求优化后的MIPS与优化前的MIPS速率比。

《分布式系统原理与范型 (第二版)》复习资料

分布式复习资料 第1章 分布式系统是若干独立计算机的结合,这些计算机对于用户来说就像是单个相关系统。 硬件方面:机器本身是独立的。 软件方面:对用户来说就像与单个系统打交道。 重要特性:1、各种计算机之间的差别以及计算机之间的通信方式的差别对用户是隐藏的。 2、用户和应用程序无论在何时何地都能够以一种一致和统一的方式与分布式系统进行交互。 中间件:为了使种类各异的计算机和网络都呈现为单个的系统,分布式系统常常通过一个“软件层”组织起来。该“软件层”在逻辑上位于由用户和应用程序组成的高层与由操作系统组成的低层之间。如图,这样的分布式系统有时又称为中间件。 注意层次分布与组件 分布式系统的最主要目标是使用户能够方便地访问远程资源,并且以一种受控的方式与其他用户共享这些资源。 透明性:如果一个分布式系统能够在用户和应用程序面前呈现为单个计算机系统,这样的分布式系统就是透明的。透明的类型:1、访问透明性:指对不同数据表示形式以及资源访问方式的隐藏。 2、位置透明性:指用户无法判别资源在系统中的物理位置。 3、并发透明性:在资源共享时,用户不会感觉到他人也在使用自己正使用的资源。 4、故障透明性:用户不会注意到某个资源(也许他从未听说过这个资源)无法正常工作,以及系统随后 从故障中恢复的过程。 开放性:一个开放式的分布式系统,是根据一系列准则来提供服务,这些准则描述了所提供服务的语法和含义。 互操作性:刻画了来自不同厂商的系统或组件的两种实现能够在何种程度上共存并且协同工作,这种共存和协同工作只能依赖于通过双方在公共标准中规定的各自所提供的服务来完成。 可移植性:刻画了这样的性能,如果为分布式系统A开发了某个应用程序,并且另一个分布式系统B与A具有相同的接口,该应用程序在不做任何修改的情况下在B上执行的可行程度。 可扩展性:当一个系统需要进行扩展时,必须解决多方面的问题。首先考虑规模上的扩展。在需要支持更多的用户或资源时,我们常常收到集中的服务、数据以及算法所造成的限制,如图所示。例如,许多服务是以集中的方式实现的,它们由分布式系统中一台特定的计算机上运行的单个服务来提供。这种方案存在的问题是显而易见的:用户增多时该服务将成为系统的瓶颈。即使它拥有无限的处理能力和存储能力,在系统达到一定规模后与该服务器的通信也将发生困难。从而使得系统规模无法继续增长。

高性能计算机的关键技术和发展趋势

2001年6月中国工程科学Jun.2001第3卷第6期EngineeringScienceV01.3No.6 一毒;i髓j;{撤i誊 高性能计算机的关键技术和发展趋势 金怡濂,黄永勤,陈左宁,桂亚东,漆锋滨 (国家并行计算机工程技术研究中心,北京100080) [摘要]介绍高性能计算机的关键技术和发展趋势。简要回顾高性能计算机的发展历史和当前形势,重点讨论大规模并行处理(MPP)所面临的挑战,包括可扩展性、友善性和可用性。介绍神威高性能计算机及其应用情况,并对如何发展我国高性能计算机提出一些初浅的看法。 [关键词]大规模并行处理;系统软件;并行编译;系统效率;可扩展性;可用性 1引言 高性能计算机自诞生以来已走过了漫长的历程,在1964--2000年的36年中,运算速度从1Mflo/s提高到12Tflo/S,高性能计算机不仅在运行速度上提高了7个数量级,而且在体系结构、软硬件技术、算法和应用等方面都发生了巨大的变化。现代科学技术没有哪一项像计算机发展如此迅猛,更新换代如此迅速。由于科学和工程计算需求的牵引,以及正在发展的知识经济的驱动,高性能计算机的发展是永无止境的,提高计算机的运算速度是计算机发展中永恒的主题。如今,计算机科学家和工程师们计划在2005~2010年把高性能计算机的运算速度提高到拍次每秒。实现这样的宏伟目标,决不是一帆风顺的。当前,高性能计算机突破了太量级以后,正面临着极其严峻的挑战。 2举世瞩目的30年 在过去的30多年中,高性能计算机经历了三个发展阶段,即萌芽阶段、向量机鼎盛阶段和大规模并行处理机(MPP)蓬勃发展阶段。 2.1萌芽阶段(1964—1975年) 萌芽阶段有代表性的计算机包括1964年的CDC6600、70年代初的ASC和STAR一100向量机、1974年的ILLIAC一Ⅳ并行机。CDC6600被公认为世界上第一台巨型机,运算速度1Mflo/s。STAR一100是世界上最早的向量机,由于研制周期长,所采用的技术如磁芯存储器等在机器研制完成时已落后,未能进入市场。ILLIAC一Ⅳ是最早的SIMD阵列计算机,原计划由4个象限共256个处理单元组成,实际只安装了一个象限,由于其编程模式与当时使用的大型机大相径庭,程序员必须考虑问题的规模如何与固定的机器规模相适应,加上机器稳定性差,使该机未能得到推广。 2.2向量机鼎盛阶段(1976--1990年) 1976年Cray公司推出Cray一1向量机,开始了向量机的发展阶段。在短短10多年中,相继出现了Cray一2、Cray—XMP、Cray—YMP和Cray—C90,DEC公司的VAX9000,Convex公司的C3800系列,NEC公司的SX系列,富士通公司的VPP系列等。向量机得以发展的原因是向量处理对提高机器运算速度十分有利,主要表现在:1)有利于流水线的充分利用,可以缩短周期,提高主频; [收稿日期]2001一01—18;修回日期2001—03—03 [作者简介]金怡濂(1929一),男,天津市人,中国工程院院士,国家并行计算机工程技术研究中心研究员

高性能体系结构

高性能计算的概念 高性能计算(HPC)是一个计算机集群系统,它通过各种互联技术将多个计算机系统连接在一起,利用所有被连接系统的综合计算机能力来处理大型计算 问题。 基本原理 高性能计算方法的基本原理就是将问题分为若干部分,而相连的每台计算 机(称为节点)均可同时参与问题的解决,从而显著缩短了解决整个问题所需 的计算时间。 高性能计算机历史回顾 最早的电子计算机就是为了能够进行大量繁琐的科学计算而产生的。从1960年开始,计算机技术逐渐成熟,在各种商业领域慢慢地开始采用电子领域,而且应用范围越来越广泛,逐渐出现了针对各种不同商业用途的计算机,被称 为“通用计算机”,具有性能和功能上的优势的一类计算机被称为“高性能计算机”,在当时主要用于科学计算。 20世纪70年代出现的向量计算机可以看作是第一代的高性能计算机。 20世纪80年代初期,随着VLSI技术和微处理技术的发展,向量机一统天下的格局逐渐被打破。通过多个廉价的微处理器构建的并行化超级计算机首先 从成本上具有了无可比拟的优势。 20世纪90年代初期,大规模并行处理(MPP)系统成为了高性能计算机的发展主流。MPP主要通由多个微处理器通过高速互联网络构成,每个处理器之 间通过消息传递方式进行通讯和协调。 20世纪90年代中后期,CC-NUMA结构问世,即分布式共享内存。每个处理器节点都可以访问到所有其他节点的内存,但访问远程内存需要的延迟相对较大。CC-NUMA本身没有在提高性能上进行较大的创新,而对于科学计算任务,CC-NUMA是否优于MPP仍存在争议。 在发展CC-NUMA的同时,集群系统(cluster)也迅速发展起来,类似MPP 结构,集群系统是由多个微处理器构成的计算机节点,通过高速网络互联而成,节点一般是可以单独运行的商品化计算机。由于规模经济成本低的原因,集群 系统更具有性能/价格比优势

分布式系统简介

第一章分布式系统概述 计算机系统正在经历着一场革命。从1945年现代计算机时代开始到1985年前后,计算机是庞大而又昂贵的。即使是微型机,通常也每台价值数万美元。因此,大多数机构只有少数的几台计算机,同时,由于缺乏一种把它们连接起来的方法,所以这些计算机只能相互独立地运行。 但是,从20世纪80年代中期开始,技术上的两大进步开始改变这种状况。首先是功能更强的微处理机的开发,开始出现了8位的机型,随后不久16位,32位,甚至64位的CPU 也开始普及。其中许多机器具有较大主机(即,大型机)的计算能力,但价格却只是它的几分之一。 在过去的半个世纪里计算机技术取得了惊人的进步,这在其它工业中是前所未有的。从每台机器价格高达1000万美元,每秒执行一条指令,发展到目前售价1000美元而每秒执行1000万条指令,其性能价格比提高了1011倍。如果在同一时期内汽车工业也能以这样的速度发展,那么现在一部劳斯莱斯牌汽车(Rolls Royce)将会只需要花10美元就可买到,而每加仑汽油就能行驶10亿英里(不幸的是,那时可能会有一本200页的手册告诉你该如何打开车门)。 第二个进步是高速计算机网络的出现。局域网LAN使得同一建筑内的数十甚至上百台计算机连接起来,使少量的信息能够在大约1毫秒左右的时间里在计算机间传送。更大量的数据则以(107~108 )比特/秒(bit/s)或更大的速率传送。广域网WAN使得全球范围内的数百万台计算机连接起来,传输速率从64Kbps(每秒千位比特)到用于一些先进的实验型网络中的每秒千兆比特(gigabits)。 这些技术的结果使得把由大量CPU组成的计算系统通过高速网络连接在一起不仅成为可能,而且变得十分容易。相对于以前包括单个CPU、存储器、外设和一些终端在内的集中式系统(又叫单处理机系统single processor system),它们通常被称为分布式系统(distributed systems)。 现在仅存在一个比较棘手的问题,那就是软件。分布式系统需要与集中式系统完全不同的软件。特别是系统所需要的操作系统只是刚刚出现。虽然分布式系统已经向前迈出了最初的几步,但仍有很长的一段路要走。对于分布式操作系统,我们对它的一些基本思想的介绍到这里已经足够了。接下来,本书将致力于研究分布式操作系统的概念、实现和几个实例。 1.1什么是分布式系统? 分布式系统有很多不同的定义,但其中没有一个是令人满意或者能够被所有人接受的。介绍分布式系统,对它的特点的下列大致的描述足够了: “一个分布式系统是一些独立的计算机的集合,但是对这个系统的用户来说,系统就象一台计算机一样。” 这个定义有两个方面的含义:第一,从硬件角度来讲,各个计算机都是自治的;第二,从软件角度来讲,用户将整个系统看作是一台计算机。这两者都是必需的,缺一不可。在简要介绍有关硬件、软件的一些背景材料之后,我们将再回到这两点上来进行讨论。 由于给出分布式系统的一些实例可能要比进一步的深入研究定义更有帮助,下面就给出一些分布式系统的例子。第一个例子,设想一个大学或公司部门内的工作站网络。除了每个用户的个人工作站外,机房中可能还有一个共享的处理机池(pool of processor),这些处理机并没有分配给特定的用户,而是在需要的时候进行动态分配。这样的系统可能会有一个单一的文件系统,其中所有的文件可以从所有的计算机上以相同的方式并且使用相同的路径名存取。另外,当一个用户输入一条命令时,系统能够找到一个最好的地方执行该命令。这可能

计算机体系结构复习资料(汇总版)

第一章计算机系统结构的基础知识 1、计算机体系结构:计算机体系结构是程序员所看到的计算机属性,即概念性结构与功能特性。 2、透明性:对本来是存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。在一个计算机系统中,低层机器的属性对高层机器的程序员往往是透明的,如传统机器级的概念性结构和功能特性,对高级语言程序员来说是透明的。 3、计算机系统结构、计算机组成、计算机实现之间的关系: 计算机系统结构指的是计算机系统的软、硬件的界面,即机器语言程序员所看到的传统机器级所具有的属性。 计算机组成:指的是计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。它着眼于物理机器级内各事件的排序方式与控制方式、各部件的功能以及各部件之间的关系。 计算机的实现:指的是计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。它着眼于器件技术和微组装技术,其中器件技术在实现技术中起主导作用。 4、计算机系统的分类:1)Flynn(单/多指令流单/多数据流四种) 2)冯氏分类法:最大并行速度。 5、程序的局部性:时间局部性(程序即将用到的信息很可能就是目前正在使用的信息) 空间局部性(程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者邻近)。 6、计算机系统设计原理:由上往下设计、由下往上设计、从中间开始设计。 从中间设计的优点:“中间”指层次结构中的软硬件的交界面,目前一般是在传统机器语言机器级与操作系统机器级之间。好处:采用这种方法时,首先要进行软硬件功能分配,确定好这个界面。然后从这个界面开始,软件设计者往上设计操作系统、汇编、编译系统等,硬件设计者往下设计传统机器级、微程序机器级等。软件和硬件并行设计可以缩短设计周期,设计过程中可以交流协调,是一种交互式的、很好的设计方法。 7、存储程序计算机(冯·诺依曼结构):采用存储程序原理,将程序和数据存放在同一存储器中。指令在存储器中按其执行顺序存储,由指令计数器指明每条指令所在的单元地址。存储程序原理的基本点是指令驱动。 主要特点: ·计算机以运算器为中心。输入/输出设备与存储器之间的数据传送都经过运算器;存储器、输入/输出设备的操作以及它们之间的联系都由控制器集中控制。 ·在存储器中,指令和数据同等对待。指令和数据一样可以进行运算,即由指令组成饿程序是可以修改的。 ·存储器是按地址访问、按顺序线性编址的一维结构,每个单元的位数是固定的。 ·指令的执行是顺序的,即一般是按照指令在存储器中存放的顺序执行。程序的分支由转移指令实现。由程序计数器PC指明当前正在执行的指令在存储器中的地址。 ·指令由操作码和地址码组成。操作码指明本指令的操作类型,地址码指明操作数地址和存放运算结果的地址。操作数的类型由操作码决定,操作数本身不能判定是何种数据类型。·指令和数据均以二进制编码表示,采用二进制运算。 8、计算机五大部件:控制器、运算器、存储器、输入输出设备。 9、一条指令由那两部分组成:操作码、地址码。

超级计算机在中国及世界的应用

超级计算机在世界及中国的发展 一.超级计算机介绍 超级计算机是一个相对的术语,指的是其在处理能力和计算速度上领先于当时其他所有的计算机。按照美国传统词典的解释,超级计算机是在一定时期内可以得到的一种最大的、运行速度最快的、功能最强的计算机。超级计算机通常是由数百数千甚至更多的处理器(机)组成的、能计算普通PC机和服务器不能完成的大型复杂课题的计算机。自20世纪70年代,世界上第一台超级计算机诞生以来,目前的超级计算机每秒进行上千亿次加法运算已经是很普通的事情。超级计算机之所以成为世界主要国家竞争的高技术热点,是因为从战略角度看,信息技术已经成为21世纪最重要的高技术之一,而作为信息技术前沿的超级计算机,作为一种战略资源,是一个国家综合国力的体现,对国家经济和社会发展具有战略影响。 二.超级计算机发展历史 第一台正式被称为超级计算机的机器——IBM Naval Ordnance Research Calculator 1954年到1963年在哥伦比亚大学被用于计算导弹弹道。这台机器诞生于微处理器问世之前,它的逻辑和算术部分占据了一间房间整整一面墙,它们由安装在电路中的真空管、电阻、电容和晶体整流器构成,具有1微秒的时钟速度,每秒能够执行大约1.5万次计算。 在整个70年代和80年代初期,超级计算机一直使用向量计算技术。这种技术对提高计算机运算速度十分有利,有利于流水线的充分利用,有利于多功能部件的充分利用。但由于时钟周期已接近物理极限,向量计算机的进一步发展已经不太可能。所以,要继续提高性能也就意味着必须投入多个CPU来同时为一个程序工作。在这样的背景下,一个全新的概念被提出来了,那就是大规模并行处理(MPP),也是从这个时候,英特尔、IBM和SGI开始成为超级计算机领域的新贵。超级计算机也开始走上了真正的商用化道路。 1992年,英特尔推出Paragon超级计算机,它成为历史上第一台突破万亿次浮点计算屏障的超级计算机。紧接着,IBM的SP2、日立公司的SR2201和SGI

看我国高性能计算机产业的发展

服务高等教育支持学术探索 曙光打造高校超算平台 随着国内高校建设校园信息化的步程越来越紧,高性能计算机在高校的应用越来越频繁。从基础建设到计算平台的搭建,高性能计算机在数字校园的建设中成为热点。 随着国家对高等教育投入的增加,各大高校在科研方面也有了长足的进步。高校中的各类科研课题小组已经成为了我国科技水平发展的重要力量。也正是因为高校科研水平的提高,使得各高校对高性能计算、网络计算和虚拟机技术等方面的需求激增,尤其在如电子、机械、制造、天文物理、医药、应用物理、生物、地质、化学、核能、基因、环境科学等我国重点学科的研究方面。 华东师范大学作为国家教育部直属全国重点大学,是国家“ 211 工程”、“ 985 工程”重点建设高校,随着数字化校园建设的深入和用户不断增加,以及海量信息处理、信息开发和科学研究对高性能计算服务的需求,华东师大用户对高性能计算能力的需求越来越大,存储系统的空间也严重不足,数字化校园系统已不堪重负。 近年来,我国的高性能服务器知名厂商曙光公司为国内各大高校建立的具有高度适应性的高性能计算平台,深受广大高校用户的青睐和认可。之前为地质大学构建的云计算——数字化校园超算平台,为提高地质大学的科研质量,保证学校各项科研工作的顺利完成等做出了重大的技术支持。 此次为解决华东大学的原有系统的不堪重负,华东师范大学与中国服务器厂商曙光公司再次深度合作,针对华东师大急需一种在高性能计算方面具有高速度、高质量、易管理的“校园超算”平台,以保障日益增加扩大的日常教学和科学研究工作的迫切需求。曙光公司为华东师范大学提供了一个具有高度适应性的高性能计算平台。 经过双方技术研讨和论证,曙光公司除了为华东师范大学最终搭建了由64台内置英特

分布式系统和集中式系统

分布式系统与集中式系统 根据管理信息系统的硬件、软件、数据等信息资源在空间的分布情况,系统的结构又可分为集中式和分布式两大类型。 一、分布式系统 利用计算机网络把分布在不同地点的计算机硬件、软件、数据等信息资源联系在一起服务于一个共同的目标而实现相互通信和资源共享,就形成了管理信息系统的分布式结构。具有分布结构的系统称为分布式系统。 实现不同地点的硬、软件和数据等信息资源共享,是分布式系统的一个主要特征。分布式系统的另一个主要特征是各地与计算机网络系统相联的计算机系统既可以在计算机网络系统的统一管理下工作,又可脱离网络环境利用本地信息资源独立开展工作。 下图是分布式的图例: a)硬件环境 原来系统内中央处理器处理的任务分散给相应的处理器,实现不同功能的各个处理器相互协调,共享系统的外设与软件。 b)网络环境 多数分布式系统是建立在计算机网络之上的,所以分布式系统与计算机网络在物理结构上是基本相同的。分布式操作系统的设计思想和网络操作系统是不同的,这决定了他们在结构、工作方式和功能上

也不同。网络操作系统要求网络用户在使用网络资源时首先必须了解 网络资源,网络用户必须知道网络中各个计算机的功能与配置、软件 资源、网络文件结构等情况,在网络中如果用户要读一个共享文件时,用户必须知道这个文件放在哪一台计算机的哪一个目录下;分布式操 作系统是以全局方式管理系统资源的,它可以为用户任意调度网络资 源,并且调度过程是“透明”的。当用户提交一个作业时,分布式操 作系统能够根据需要在系统中选择最合适的处理器,将用户的作业提 交到该处理程序,在处理器完成作业后,将结果传给用户。在这个过 程中,用户并不会意识到有多个处理器的存在,这个系统就像是一个 处理器一样。 c)优缺点 分布式系统具有以下优点: 1、可以根据应用需要和存取方便来配置信息资源; 2、有利于发挥用户在系统开发、维护和信息资源管理方面的积极性和 主动性,提高了系统对用户需求变更的适应性和对环境的应变能力; 3、系统扩展方便。增加一个网络结点一般不会影响其他结点的工作。 系统建设可以采取逐步扩展网络结点的渐进方式,以合理使用系统开发所需 资源; 4、系统的健壮性好(网络上一个结点出现故障一般不会导致全系统 瘫痪)。 分布式系统具有以下缺点: 1、由于信息资源分散,系统开发、维护和管理的标准、规范不易统一; 2、配置在不同地点的信息资源一般分属管理信息系统的各子系统。 不同子系统之间往往存在利益冲突,管理上协调有一定难度; 3、各地的计算机系统工作条件与环境不一,不利于安全保密措施的 统一实施。 现在企业组织结构在朝小型化、扁平化、网络化方向发展。管理信息 系统必须适应这一发展。八十年代以来,随着计算机网络与通信技术的迅速 发展,分布式系统已经成了当前信息系统结构的主流模式。 二、集中式系统

大型高性能.NET系统架构

大型高性能https://www.sodocs.net/doc/605093999.html,系统架构设计大型动态应用系统平台主要是针对于大流量、高并发网站建立的底层系统架构。大型网站的运行需要一个可靠、安全、可扩展、易维护的应用系统平台做为支撑,以保证网站应用的平稳运行。 大型动态应用系统又可分为几个子系统: Web前端系统 负载均衡系统 数据库集群系统 缓存系统 分布式存储系统 分布式服务器管理系统 代码分发系统 Web前端系统

为了达到不同应用的服务器共享、避免单点故障、集中管理、统一配置等目的,不以应用划分服务器,而是将所有服务器做统一使用,每台服务器都可以对多个应用提供服务,当某些应用访问量升高时,通过增加服务器节点达到整个服务器集群的性能提高,同时使他应用也会受益。 该Web前端系统基于IIS/https://www.sodocs.net/doc/605093999.html,等的虚拟主机平台,提供PHP程序运行环境。服务器对开发人员是透明的,不需要开发人员介入服务器管理。 负载均衡系统 负载均衡系统分为硬件和软件两种。硬件负载均衡效率高,但是价格贵,比如F5等。软件负载均衡系统价格较低或者免费,效率较硬件负载均衡系统低,不过对于流量一般或稍大些网站来讲也足够使用,比如lvs,nginx。大多数网站都是硬件、软件负载均衡系统并用。

数据库集群系统 由于Web前端采用了负载均衡集群结构提高了服务的有效性和扩展性,因此数据库必须也是高可靠的才能保证整个服务体系的高可靠性,如何构建一个高可靠的、可以提供大规模并发处理的数据库体系? 我们可以采用如上图所示的方案: 1)使用SQL数据库,考虑到Web应用的数据库读多写少的特点,我们主要对读数据库做了优化,提供专用的读数据库和写数据库,在应用程序中实现读操作和写操作分别访问不同的数据库。 2)使用同步机制实现快速将主库(写库)的数据库复制到从库(读库)。一个主库对应多个从库,主库数据实时同步到从库。 3)写数据库有多台,每台都可以提供多个应用共同使用,这样可以解决写库的性能瓶颈问题和单点故障问题。 4)读数据库有多台,通过负载均衡设备实现负载均衡,从而达到读数据库的高性能、高可靠和高可扩展性。 5)数据库服务器和应用服务器分离。 6)从数据库使用BigIP做负载均衡。

相关主题