网格计算
网格计算(英语:Grid computing)透过利用大量异构计算机(通常为台式电脑)的未用资源(CPU周期和磁碟存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的电脑集群,为解决大规模的计算问题提供一个模型。网格计算的焦点放在支持跨管理域计算的能力,这使它与传统的电脑集群或传统的分布式计算相区别。
网格计算的设计目标是:解决对于任何单一的超级计算机来说,仍然大得难以解决的问题,并同时保持解决多个较小的问题的灵活性。这样,网格计算就提供了一个多用户环境。它的第二个目标就是:更好的利用可用计算力,迎合大型的计算练习的断断续续的需求。
网格计算包括共享异构资源(基于不同的平台,硬件/软件体系结构,以及电脑语言),这些资源位于不同的地理位置,属于一个使用公开标准的网络上的不同的管理域。简而言之,它包括虚拟化计算资源。
网格计算经常和集群计算相混淆。二者主要的不同就是:集群是同构的,而网格是异构的;网格扩展包括用户桌面机,而集群一般局限于数据中心。
从功能上来说,可以将网格分类为:
网格计算的3个定义
对于网格计算(Grid computing)这一术语有三重理解可供参考,如下:
- 为万维网诞生起到关键性作用的欧洲核子研究组织(CERN,European Organization for Nuclear Research),其对网格计算是这样定义的:“网格计算就是透过互联网来共享强大的计算能力和数据储存能力”。
- 外部网格(External grids)。事实上,网格计算对分布在世界各地的、非营利性质的研究机构颇有吸引力,进而造就了美国国家超级电脑应用中心计算生物学网格,如生物学和医学资讯学研究网络。
- 内部网格(Internal grids)。同样,网格计算对那些需要解决复杂计算问题的商业公司有着非同一般的吸引力,其目标是将企业内部的计算能力最大化。
全球网格论坛
全球网格论坛(OGF)的目标是为网格计算定义相关的规范。Globus联盟透过Globus工具包实现了这些标准,这个工具箱已经成为网格中间件事实上的标准。作为一个中间件组件,它为构建于它之上的服务提供了一个标准的平台,但是网格计算也需要其他的组件,以及很多其他的工具的运转以支持一个成功的网格环境。这种情形类似于TCP/IP的开发:互联网的有用性来自于TCP/IP的成功以及新闻组和网页等应用程式的建立。
Globus实现了下述一些由GGF定义的协议:
- 资源管理:网格资源分配管理协议(GRAM)
- 资讯服务:监视及发现服务(MDS)
- 安全服务:网格安全基础结构(GSI)
- 数据迁移和管理:Global Access to Secondary Storage(GASS)and GridFTP
Globus同时还提供了一些工具,使网格计算平台更加健壮,更适用于高性能计算的需要。他们有:
- 网格入口软件(Grid Portal Software),如GridPort和OGCE
- 网格封装工具集(Grid Packaging Toolkit,GPT)
- MPICH-G2(Grid Enabled MPI)
- 网络气象服务(Network Weather Service,NWS)(QoS监控和统计)
- Condor(CPU Cycle Scavenging)and Condor-G(Job Submission)
北美及欧洲的研究机构和学术社区里运行的大多数网格都采用Globus工具集作为核心中间件。
基于XML的web服务提供了在分布式环境中访问各种不同的服务和应用的方法。2003年网格计算界开始共同将网格作为web服务提供出来(称为网格服务)。开放网格服务结构定义了这种环境,提供了一些遵守网格服务语义的功能。
网格提供了解决Grand Challenge problem的办法,如蛋白质折叠、金融建模、地震模拟、气象模型等等。网格还为组织内部如何优化使用大量的资讯科技资源提供了解决途径。网格也作为公用事业机构为商业和非商业客户提供资讯科技提供了一种方法,这些客户可以只为他们所需要的服务付费,就象电和自来水一样。
网格运算商业化
约在2000年左右,开始有商业机构提供网格解决方案,有的是以Globus Toolkit为基础来实现,有的则采用自有的专属架构。要提醒与注意的,有些业者会将按需运算(computing on demand)、集群运算(cluster computing)包装成网格运算来推行。
目前能提供网格运算方案的主要商家:
概念框架
网格计算的概念反映的是一种理念框架,而不是指一个物理上存在的资源。所谓的网格所采用的方法是指,利用位于分散管理域内的资源完成计算任务。网格技术的焦点在于对超出本地管理域的计算资源的需求的灵活提供。
历史回顾
如同Internet一样,网格的概念也是从“大科学”的巨大计算需求演化来的。Internet是为了满足各大型的联邦资助的计算中心之间的普通通讯需求而开发的。这些通讯连接实现了这些中心之间的资源和资讯共享,并最终为额外用户提供了访问。这些组之间的特殊资源共享“程序”催生了协议的‘标准化’,以满足任意管理域间的通讯需求。当前的网格技术也可以被看作是Internet这个框架的一个扩展或是应用,目的是为了创建一个更为通用的资源共享环境。SETI@home是第一个非营利性的科学项目,其目的是为了对空闲的CPU周期加以回收利用。该项目所设计的程序通常是在电脑没有被用户使用或是使用极少得的情况下在后台运行或作为屏幕保护程序。其后的许多的其他的同类项目进步的地方在于增加了投入控制(prohibitive investment)和返回结果延迟(delay in results)。
虚拟组织
网格环境的创建是为了满足资源共享的需求,而各种资源(例如,CPU周期,磁碟存储空间,数据,软件程序,外围装置等)取决于该资源在本地管理域之外是否可用。这种“外部提供”的方法的不足使我们迫切需要创建一个新的管理域:虚拟组织,或VO。每个虚拟组织有各自独立和分离的管理政策(本地管理政策+外部资源管理政策=VO管理政策)。“任务执行”所需要的环境是根据该任务在本地管理域之外执行时的需求所区分的。网格技术(也称作中间件,middleware)是用来规范化的,以保证你的应用程式执行时所关联的网格环境的具有统一的规范并且遵守之。
网格化(Grid enabled)
除了定义管理的需求和确定“外部”资源(external resource)需求以外,目标程序必须是网格化的。网格化这项工作的本质和外延是由VO(虚拟组织)所处的环境和应用程式本身共同作用的结果。举个例子来说,如果我们需要用到的“外部资源”是被位于隔壁的大楼内的另一个部门所有,那么对于资源发现,资源中介,时序安排,记账,安全和通讯的要求都可以达到最小。