网格定义
网格是一种新兴的技术,正处在不断发展和变化当中。学术界和商业界围绕网格开展的研究有很多,其研究的内容和名称也不尽相同因而网格尚未有精确的定义和内容定位。比如国外媒体常用“下一代互联网”、 “Internet2 ”、“下一代Web”等来称呼网格相关技术。但“下一代互联网(NGI)”和“Internet2”又是美国的两个具体科研项目的名字,它们与网格研究目标相交叉,研究内容和重点有很大不同。企业界用的名称也很多,有内容分发(Contents Delivery)、服务分发(Service Delivery)、电子服务(e-service)、实时企业计算(Real-Time Enterprise Computing,简称RTEC)、分布式计算Peer-to-Peer Computing(简称P2P)、Web服务(Web Services)等。中国科学院计算所所长李国杰院士认为,网格实际上是继传统互联网、Web之后的第三次浪潮,可以称之为第三代互联网应用。1
网格是利用互联网把地理上广泛分布的各种资源(包括计算资源、存储资源、带宽资源、软件资源、数据资源、信息资源、知识资源等)连成一个逻辑整体,就像一台超级计算机一样,为用户提供一体化信息和应用服务(计算、存储、访问等),虚拟组织最终实现在这个虚拟环境下进行资源共享和协同工作,彻底消除资源“孤岛”,最充分的实现信息共享。
网格(Grid)这个词来自于电力网格(PowerGrid)。“网格”与“电力网格”形神相似。一方面,计算机网纵横交错,很像电力网;另一方面,电力网格用高压线路把分散在各地的发电站连接在一起,向用户提供源源不断的电力。用户只需插上插头、打开开关就能用电,一点都不需要关心电能是从哪个电站送来的,也不需要知道是水力电、火力电还是核能电。建设网格的目的也是一样,其最终目的是希望它能够把分布在因特网上数以亿计的计算机、存储器、贵重设备、数据库等结合起来,形成一个虚拟的、空前强大的超级计算机,满足不断增长的计算、存储需求,并使信息世界成为一个有机的整体。
早期网格的目标是期望能够像使用电力一样方便地使用分布在网络上强大而丰富的计算能力,而不用理会这种计算力是在哪个地点、以何种形式产生的。网格技术被看作是继传统因特网、Web之后的第3次互联网浪潮,也被称为第3代因特网应用,其主要特点是通过提供资源级的共享,从而消除信息孤岛、实现应用程序在更高层次上的交互与协作。目前,在网格计算的研究上,对信息与知识孤岛的消除、实现对它们的共享也已成为一个研究的侧重点。目前网格计算主要可以分为计算网格、信息网格与知识网格3个层次。
满足条件网格必须同时满足三个条件:
在非集中控制的环境中协同使用资源;
使用标准的、开放的和通用的协议和接口;
提供非平凡的服务。
网格的构成网格可以分为4个部分:网格资源、网格中间件、网格开发环境和工具以及网格应用层。2
1.网格资源
指网络上所有分布的、可访问的计算机资源,包括硬件设施(如高能计算机、贵重仪器、网络线路)、信息资源(如数据库、网站)、人力资源等。这些资源仅仅是在物理上能够相互连通。
2.网格中间件
包括一系列工具和协议软件,用于屏蔽网格资源的分布、异构特性,并提供透明、一致的接口。有些类似Win-dows操作系统的API (应用程序编程接口),能为网格应用程序的开发提供直接调用服务。现在已经开发出一些网格中间件,如Legion、globus。
3.网格开发环境和工具
供开发人员开发各种应用、用户代理的环境和工具,用于在全局资源中调度计算。现在已经有了可供开发人员进行网络开发的操作系统和工具,而将来也会有更成熟的网络操作系统和工具为开发人员提供网格开发环境,使他们得以进行网格应用开发。
4.网格应用层
在这一层可以运行网格应用程序,满足用户需求。该层是用户的网格入口(Grid Potrals)。按照Ian Foster和Globus项目组的观点,网格应用层所包含的领域目前主要有4类:分布式超级计算、分布式仪器系统、数据密集型计算和远程沉浸。
网格技术的基本特性网格是高性能计算机、数据源、因特网三种技术的有机结合和发展,它与当前的因特网相比,具有高性能、一体化、资源共享、协同工作、知识生产等技术优点。3
1.高性能
首先,基于网格的互联网比现有的因特网具有更大的带宽。科学家们这样来形容网格的的带宽:“如果把因特网和今天的道路相比,那么网格的带宽就相当于100条车道的高速公路”;其次,网格上将有更多高性能计算机,因此网格的计算功能、数据处理速度可以大幅度提高;第三,网格的体系将比因特网更有效地利用这些资源,比如网格采用的“广域缓存技术”能自动地把用户最需要的信息放在离用户最近的服务器上,因此用户可以非常迅捷的获取信息资源。
2.一体化
网格的重要特征之一就是一体化。因特网只是通过网页的形式把全球的计算机连为一体,各个机构和公司可以在网上建立自己的网站,并为用户提供相应的信息;但用户却必须通过一定的网址或搜索引擎查找自己所需的信息,而且找到的信息往往是重复繁杂的。网格则是进一步把这些计算机上的所有资源和知识孤岛连为一体,在逻辑上就像一台机器。用户可以方便地使用网上资源,就像现在使用自己计算机上的资源那样方便。
3.资源共享
因特网通过网页为用户提供共享信息,或通过专门的FTP网站共享部分的软件等资源,但其适用范围却很小。网格能够共享的资源范围则可以无限大,它包括网络服务、应用软件、数据、信息、知识以及计算机、雷达、家用电器等设备和仪器,并具有面向用户和透明性的特点,用户可以在不考虑资源物理位置的情况下,通过网络来方便地使用这些资源。
4.协同工作
协同工作包括资源共享协同和问题解决协同等方面。资源共享的协同是以资源互连为基础,它既包括资源使用时不同用户因时间、空间、权限等差异引起的协商,也包括用户对资源的组合。问题解决的协同则是指虚拟组织之间通过协同共同解决某一问题,以满足用户的新需求。网格的出现实现了网络的完全共享,通过众多结点计算机整合而成的“超级计算机”的协同工作,实现广域化、空间化、无限化的连接,全球性的资源共享瞬间享受。网格就非常方便、迅速、准确地完成各种复杂的科学计算任务,如高能物理研究、航空设计、基因工程等,以及全球合作性的开展科学研究。
5.知识生产
因特网只是简单的资源互连和单一使用,用户仅能获得和使用有限的信息资源。而并不能通过因特网进行知识的再加工。而网格则可以通过互连、组合、协同解决用户的各种复杂问题,从而产生出具有附加值的新服务、新数据和新信息等资源来满足用户的新需求,即可以进行知识的再生产。
其他特性可靠性可靠性是计算领域内永恒的话题,网格环境也不例外。实现这一难题最好的方法是预见所有可能出现的失败情况,并提供解决这些情况的手段。最可靠的方法能够“容纳异常情况的出现”(surprise tolerant)。网格计算的基础设施必须处理主机中断和网络中断等情况。下面列出一些需要考虑的方法:4
使用检查点-重启机制。
用持久性存储保存中间结果。
用心跳监视机制跟踪系统状态。
用健壮的系统管理解决方案最大程度地提高网格及其组件的可用性。
拓扑问题网格计算的分布式本质使地理上和组织机构上的大跨度变得不可避免。随着内部网格的拓扑扩展为外部网格拓扑,复杂程度也逐渐提高。比如说,非功能性操作需求,安全性、目录服务、可靠性、性能等都变得更加复杂。让我们来研究一下拓扑的问题。
网络拓扑
网格架构内的网络拓扑可能在很多不同方面上呈现出来。网络组件可以表示 LAN 或校园网的连通性,甚至还能表示网格网络之间 WAN 的通信情况。网络的职责是为所有的网格系统提供充足的带宽。像基础设施中其他的组件一样,我们可以通过定制网络来提供更高级别的可用性、性能以及安全性。
出于安全性以及其他一些架构性的限制,网格系统从很大程度上来说是网络密集型的。尤其是数据网格,它可能在整个企业的网络内散布着一些存储资源,因此在基础设施的设计中,为了保证足够的性能,关键因素就在于处理数量巨大的网络负载。
启用应用程序时应该考虑的问题包括如何使网络通信量最小,如何使网络延迟最短。假设应用程序的设计已经能够保证最小的网络通信量,那么就有几种方法可以使网络延迟最短。比如说,千兆以太局域网可以用来支持高速群集,或实现远程网络之间的高速 Internet骨干网。
数据拓扑
我们最希望把任务指派到距离它所使用的数据最近的机器上执行。这样可以降低网络的通信量,还可能降低可测量性方面的限制。
数据需要存储空间。在一个网格的设计中,存储的可能性问题是没有止境的。存储要求一定的安全性、要可以进行备份、要可管理,还/或要进行复制。在网格的设计中,您需要确定您的数据对于需要它的资源来说一直是可用的。除了可用性之外,您还需要保证数据得到适当的保护,因为您不能让未经授权的人访问到敏感的数据。最后,您需要最佳的数据访问性能。显然,带宽和访问数据的距离两者是相互有关的,但是您不会希望让 I/O 问题阻碍网格应用程序的运行速度。对于那些磁盘密集型的应用程序,或是数据网格而言,您可以将工作重点更多地放在存储资源上,比如您可以使用那些能够提供更高容量、冗余程度或容错机制的存储。
结构化网格从严格意义上讲,结构化网格是指网格区域内所有的内部点都具有相同的毗邻单元。结构化网格生成技术有大量的文献资料。结构化网格有很多优点:
1.它可以很容易地实现区域的边界拟合,适于流体和表面应力集中等方面的计算。
2.网格生成的速度快。
3.网格生成的质量好。
4.数据结构简单。
5.对曲面或空间的拟合大多数采用参数化或样条插值的方法得到,区域光滑,与实际的模型更容易接近。
它的最典型的缺点是适用的范围比较窄。尤其随着近几年的计算机和数值方法的快速发展,人们对求解区域的复杂性的要求越来越高,在这种情况下,结构化网格生成技术就显得力不从心了。
结构化网格的生成技术主要有:
代数网格生成方法:主要应用参数化和插值的方法,对处理简单的求解区域十分有效。
PDE网格生成方法:主要用于空间曲面网格的生成。2