访问量: 251 次浏览
网格计算也许是个新名词,但对于电脑科学领域来说,
并非一个全新的技术。我们可以追溯到十多年前,
电脑发展有两个流派:一派是超级电脑,
像“CRAY1”(克雷一号)之类的超级电脑,
虽然运算速度很快,但造价也极髙,
不是一般企业可以负担得起的;另外一派的髙速运算就提出,
利用分散式的方式将需要大量运算的工作,
分给很多电脑一同运算,再将计算完的结果送回来。
这样便能把很多需要运算的问題,
利用多个电脑来协助运算了。如基因排列、
撞击模拟、气象预测等,都可以利用这样的方式来完成。
20世纪90年代提出的网格运算概念,
是基于网格问题的求解。
网格计算是在动态的环境下协调资源分享与问题解决能力,
利用互联网或专用网络把地理上广泛分布的各种计算资源互连在一起,
构成虚拟的整合应用环境,这些计算资源包括超级计算机、
计算机集群、存储系统和可视化系统等。
在必要的时候,这项技术还可以有选择地将计算资源作为单独、
统一的计算资源来处理。研究人员可突破空间障碍,
透过共享的虚拟组织,弹性地建立各种议题和有效的合作机制,
并解决更大尺度的问题。
网格运算的目的是善用伺服器能量,
利用大量的闲置伺服器运算能力从事更多的工作,
包括IBM、Microsoft、Sun等公司已开始将网格运算加入到商用系统中。
由于IBM、Sim具有自己的伺服器与作业系统,
IBM早已投人许多的人力加入开发;
Sun则收购Gridware公司以加快Grid Computing的研发步伐。
Microsoft则宣布支援最主要的网格运算组织的Globus Project,
在.Net服务与WindowsXP作业系统中提供
Grid Computing的ToolKit,以便于提供商业网格运算服务。
在网格计算中,首先要査清网格里所有可用的资源,
比如可供访问的主机、空置的处理能力、资料库里可供使用的资料、
共用的应用程序、共用主机采用的操作系统等。
用户提交的任务要由系统来分配资源并控制其运行,
包括将其分配到哪些主机上运行、调用哪些资料、
启动何种应用程序、何时开始运行等。
这样,网格计算至少需要具备三种基本功能:
任务管理、任务调度和资源管理。
任务管理指用户通过该功能向网格提交任务、为任务指定所需资源、
删除任务并监测任务的运行状态。
任务调度指用户提交的任务由该功能按照任务的类型、
所需资源、可用资源等情况安排运行日程和策略。
资源管理指确定并监测网格资源状况,
收集任务运行时的资源占用资料。根据马森大学的研究,
网格计算可分为集中式任务管理系统、分散式任务管理系统、
分散式作业系统、参量分析、资源监测/预测,
以及分散式计算界面等几类,
现有的网格计算技术方案主要集中在第一、二类。
属于集中式任务管理系统的有Sun公司的Grid Engine、
LSF、PBS等;属于分散式任务管理系统的有Globus、
Legion和NetSolve等。集中式系统由一台电脑统一调度任务,
分散式系统任务的载入和运行控制由网格中各台电脑自行完成。
Globus是美国Argonne国家实验室的研发项目,
全美有12所大学和研究机构参与了该项目。
Globus对资源管理、安全、
资讯服务及资料管理等网格计算的关键理论进行研究,
开发能在各种平台上运行的网格计算工具软体,
帮助规划和组建大型的网格试验平台,
开发适合大型网格系统运行的大型应用程式。
Toolkit是Globus最重要的成果,其第一版在1999年推出,
Toolkit源代码开放,任何人都可以从其网站上下载。
目前,Globus的技术已在NASA网格、欧洲资料网格、
美国国家技术网格(NTG)等8个专案中得到应用。
通常,网格计算着眼于大型应用专案,按照Globus的观点,
大型应用专案应该由许多组织协同完成,
共同形成一个“虚拟组织”,各组织拥有的计算资源在虚拟组织里共用。
按Globus的定义,所有共用的实体都是资源,
电脑、记忆体、资料、软体等是资源,分散式档系统、
缓冲池等也是资源。在Globus看来,现有的共用方案,
比如互联网、B2B、ASPS、SSPS、Java、CORBA、DCE等,
或者在共用配置的灵活性上,
或者在共用资源种类上不能完全满足虚拟组织的需要。
同时,Globus并不试图取代现有技术,
而是希望在现有技术之上建立更髙层次的共用。
从技术的角度看,共用是资源或实体间的互操作,
比如用甲电脑的What-If分析程式调用乙电脑的资料库。
Globus认为,网络环境下的互操作意味着需要开发一套通用协定,
用来描述消息的格式和消息交换的规则。
在协定之上,需要开发一系列服务,
这与建立在TCP/IP协议上的Web服务原理相同。
在服务中要定义API,基于这些API再构建软体发展工具(SDK)。