1、网格计算高性能计算的应用需求使计算能力不可能在单一计算机上获得,因此,必须通过构建“网 络虚拟超级计算机” 或 “元计算机 ”来获得超强的计算能力。20 世纪 90 年代初,根据 Internet 上主机大量增加但利用率并不高的状况,美国国家科学基金会(NFS)将其四个超级计算 中心构筑成一个元计算机,逐渐发展到利用它研究解决具有重大挑战性的并行问题。它提供 统一的管理、单一的分配机制和协调应用程序,使任务可以透明地按需要分配到系统内的各 种结构的计算机中,包括向量机、标量机、SIMD 和 MIMD 型的各类计算机。NFS 元计算 环境主要包括高速的互联通信链路、全局的文件系统、普通用户接口和
2、信息、视频电话系统、 支持分布并行的软件系统等。元计算被定义为“通过网络连接强力计算资源,形成对 用户透明的超级计算环境”,目前用得较多的术语“ 网格计算(grid computing)”更系统化地 发展了最初元计算的概念,它通过网络连接地理上分布的各类计算机(包括机群)、数据库、 各类设备和存储设备等,形成对用户相对透明的虚拟的高性能计算环境,应用包括了分布式 计算、高吞吐量计算、协同工程和数据查询等诸多功能。网格计算被定义为一个广域范围的 “无缝的集成和协同计算环境” 。网格计算模式已经发展为连接和统一各类不同远程资源的 一种基础结构。 网络计算技术 基本结构 为实现网格计算的目标,必须重
3、点解决三个问题: 异构性 由于网格由分布在广域网上不同管理域的各种计算资源组成,怎样实现异构机器间的合作和转换是首要问题。 可扩展性 要在网格资源规模不断扩大、应用不断增长的情况下,不降低性能。 动态自适应性 在网格计算中,某一资源出现故障或失败的可能性较高,资源管理必须能动态监视和管理网格资源,从可利用的资源中选取最佳资源服务。 网格计算环境的构建层次从下至上依次为: (1) 网格结点 由分布在 Internet 上的各类资源组成,包括各类主机、工作站甚至 PC 机,它们是异构的,可运行在Unix、NT 等各种操作系统下,也可以是上述机型的机群系统、大型存储设备、数据库或其他设备。 (2)
4、中间件 是网格计算的核心,负责提供远程进程管理、资源分配、存储访问、登录和认证、安全性和服务质量(QoS)等。 (3) 开发环境和工具层 提供用户二次开发环境和工具,以便更好地利用网格资源。 (4) 应用层 提供系统能接受的语言,如 HPC+和 MPI 等。可配置其他一些支持工程应用、数据库访问的软件,还可提供 Web 服务接口,使用户可以使用 Web 方式提交其作业并取得计算结果。 2基本功能 网格计算环境要求不影响各结点本地的管理和自主性,不改变原有的操作系统、网络协议和服务,保证用户和远程结点的安全性,允许远程结点选择加入或退出系统,尽量使用已存在的标准的技术,以便与已有的应用兼容,并能
5、提供可靠的容错机制。一个理想的网格计算应类似当前的 Web 服务,可以构建在当前所有硬件和软件平台上,给用户提供完全透明的计算环境。对用户而言,它把众多同、异构的资源变成了同构的虚拟计算环境。为此,网格计算环境设计需要有以下主要特征: 管理层次 确定管理层次体系,管理域按区域层次划分,决定管理信息流的流向; 通信服务 随应用目的的不同提供不同的服务,包括可靠的点对点和不可靠的组播通信,支持各种通信协议,提供通信链路延迟、带宽和可靠性等指标; 信息服务 提供方便可靠的机制,获得不断变化的各结点信息和状态;名字服务 提供全局统一的名字服务,典型的有国际通用的 X.50 标准或 Internet 上
6、 DNS 标准; 文件系统 提供一个分布式文件系统机制、全局存储和缓存空间; 安全认证 应包括登录认证、可信赖、完整性和记账等方面的安全性,这是网格计算的难点,也是系统成败的关键; 监视系统 提供监视系统资源和运行情况的工具; 资源管理和调度 提供透明的资源调度,高效地利用可利用的资源是系统的核心; 资源交易机制 为鼓励不同组织或资源拥有者加入系统,应提供一种计算资源的交易机制,允许提供资源者获得利益,使系统能动态地取得最好的性价比资源; 编程工具 必须提供丰富的用户接口和编程环境,提供最常用的语言,如C、C+、 FORTRAN、MPI 、PVM 以及分布式共享存储器和一些函数库等; 用户图形
7、界面 提供直观的用户访问接口,包括 Web 方式,使用户可以在任何位置、任何平台上使用系统资源。 3网格计算项目 由于网格计算环境可以连接广域范围内不同标准的异构 “孤岛”,形成庞大的全球性计算体系,是Internet 发展的高级形式,因此,受到世界各国和组织的高度重视,已经开展了许多论坛、实验环境和研究项目,它们大多数都是在网上共享的,极大地方便了人们研究和利用有关资源,如网格计算论坛(http : /www.gridforum.org)旨在促进推广相关的技术。较有代表性的网格计算项目包括:实验床(http :/;http :/www.setiathome.ssl.berkeley.edu
8、)、Globus 项目(http :/www.globus.org)、Legion 项目(http :/legion.virginia.edu )、 Globe 项目(http: /cs.vu.nl/steen/globe)、NetSolve 项目(http:/www.cs.utk.edu/netsolve)、Javalin 项目(http :/www.cs.ucsb.edu/research/javalin)等,可简单地分成有代表性的两类: (1) Globus 项目 提供基础的软件集成分散的异构资源,形成一个单一的计算环境。其核心是 Globus 元计算工具包(GMT),这是一个构筑网格计
9、算环境的中间件,提供基本的资源定位、管理、通信和安全等服务。GMT 是模块化的,允许用户按自己的需要定制环境(Globus 的模块组成将在后面详细介绍)。 一种简单的 Globus 配置如下: 客户端 配置远程计算的 API 接口库、访问信息和通信等接口; 服务端 资源分配管理器(GRAM)、资源监视器; 集中服务 目录服务、认证服务、信息收集监视器等。 (2) 基于 Java 的网格计算 Java 语言和相关技术成功地解决了困扰网格计算的几个关键问题,如异构性和安全性,另一个重要的优势是 Java 程序的最小执行环境可以在 Web 浏览器中执行而不需要另外安装软件,因此,理论上全球任意一台装
10、有 Web 浏览器的机器都可以进行全球计算。尽管 Java 平台还存在效率低等问题,但它无疑将大大影响网格计算模式的发展,使实现全球分布式计算已不再是一个梦想。 下面介绍 Javalin 项目的工作原理。Java 结构建立在 Internet 网络层上,通过扩展 HTTP Server 的功能来实现下述功能: 客户结点向 HTTP 服务器上载包含有任务 Applet 的 HTML 主页; 客户结点向集中服务器登记相应的 UML 地址; 服务结点向集中服务器请求任务,得到相应任务的 URL; 服务结点从 HTTP 服务器下载 HTML 页,运行嵌入的 Applet; 客户结点得到回送的执行结果。
11、实例:Globus 系统 Globus 是一个多研究机构联合开发的项目,它力图实现计算网格结构,来提供对高性能远程计算资源普遍的、可靠的、一致性的访问。目前的 Globus 可以认为是计算网格技术的典型代表和事实上的规范。Globus 最核心的部分就是它的元计算工具包,其中定义了构建计算网格最基础的服务。Globus 构建了一个如图所示的虚拟元计算机。 1元计算实验床 图示的底层是 Globus 的元计算测试床和实验系统,具体来说,它们是网络连接的一些有组织的计算网格结点,其中最著名的有 I-WAY 和 GUSTO。 I-WAY 是 Globus 的较简化系统,用于气象卫星的实时图像处理。在这
12、个应用中,卫星中的数据下载后,进入一个远程超级计算机进行云层检测处理,然后再由另外一个图形处理机进行气象图绘制。这些处理均在地理上分布的多台机器上实现。I-WAY 成功地验证了 Globus 系统一些基本构件和机制。 GUSTO 在很多方面都被认为是 1998 年以前最大的计算网格实验床。该实验床最初通过专用多模光纤和 Internet 连接 17 个站点、330 个计算机和 3600 个处理器。目前,GUSTO 站点遍布整个美国大陆、夏威夷、瑞典和德国等,附加站点 还在不断增加。 2Globus 工具包构件 中间层是 Globus 的工具包模块,也是 Globus 的核心服务,主要包括 7
13、个部分,如下表所示。 3高级服务 虽然 Globus 的工具包可以被应用程序直接调用,但仍然可以通过更高层的工具调用。Globus 提供了自己的一些高级服务,可以实现对下一层服务的调用,这些高级服务最终的目标是形成一个 Globus 的“适应性广域范围资源环境” (AWARE)。同时,Globus 也支持其他高级调用,例如基于消息传递的 MPI、高级并行编程语言 C+、远程文件访问系统 Remote I/O 等。Globus 工具包支持这些高级应用来间接调用Globus 的核心服务。 Globus 从底层构建了元计算软件,开发了一些基本的服务和机制,并可以由多种高级工具调用。随着更多的元计算团体加入 Globus 的研究,它将被开发得更加完善,并将被更多的高级应用软件调用。Globus 的目标是适应广域网络资源环境的计算,目前这一类课题的研究还很艰巨,Globus 作为网格计算中最突出的代表,仍然存在着大量问题需要进一步研究。 网格计算可以合理而有效地将远程资源高效地组织起来,形成“网络虚拟计算机”,以获得超强的计算能力。相对于机群计算环境,它具有范围更广、功能更强大、组织和管理更复杂的特点。同时,由于网络环境的异构性、可扩展性和网络虚拟环境的动态自适应特征,使这类系统在开发软件、并行工具和应用程序方面都存在着较大的挑战。