今年九月二十九日,中央研究院计算中心和全世界 13 个国家同步宣布:『LCG(LHC Computing Grid)第一阶段网格服务正式上线,分散于全世界十余个研究单位的计算机设备连接成为虚拟的单一系统,这是应用信息科技于科学研究的一大里程碑。』听起来真是令人振奋!
可是,网格到底是什么?
这有个简短的答案:我们知道 Web 是在因特网上分享信息的服务,网格呢,就是在因特网上分享运算能力和数据储存空间的服务。网格可不是计算机之间简单的通讯而已,其终极目标是要把全球的计算机转变成一组庞大的运算资源。
那是网格的愿景,但事实是,今天的网格仍然处于「开发中」的阶段,正由世界各地上百位研究人员和软件工程师努力实现当中,而其底层的技术仍然处于原型的阶段,因此网格可说是未来科技。
正如因特网或 Web 的早期一般,我们很难预测网格技术带来的长期冲击会是什么。或许正因为网格的未来是如此地不确定,郄又有产生革命性变革的潜力,才会在世界各地吸引了高度的注目。这些关注并不只来自于信息工程的专家,更来自于科学家、企业家、媒体人,或许也包括您在内!
那么,网格的构想是如何出现的?又是由谁来孵育?将来能顺利诞生吗?网格对您有什么用处?
这要从一群梦想家开始谈了。
孕育网格运算的梦想家
和许多技术的进步类似的,网格技术的需求和发展也是从科学家的实验室中产生的。这些爱作梦的科学家,正是驱使技术进步的先知。怎么说呢?
近年来,从事科学研究但不使用计算机已经是不太可能的事了,科学家面对日益复杂的问题,所需的不再只是一片黑板,而且使用计算机所做的事也越来越可观。举几个例子来看:
- ●十年前,生物学家能在计算机上仿真一个小分子就可以快乐一整天了,现在,仿真上千个不同的分子和特定蛋白质的作用以发掘新药可能是家常便饭。
- ●基因学家使用计算机来定序含有 30 亿个化学单元的人类 DNA 或决定蛋白质结构也已经不是新闻了,加拿大的团队使用 Linux 丛集在五天内完成 SARS DNA 的定序,更是一个活生生的例子。
- ●地球科学家用人造卫星的观测仪器来追踪大气中的臭氧含量,光是这项工作,每天就要从太空下载 100 GigaBytes 的原始图片到地面上的接收站,这相当于 150 片 CD 的容量。
- ●还有,高能物理学家在 Web 诞生地「欧洲粒子物理中心」建造的加速器,从 2007 年起,每年将产生约 10 Petabytes 的数据,那大约是 2 千万片 CD,可以从地板到天花板塞爆 60 坪大的公寓。想象一下,您可曾从这么多通通不一样的 CD 中找到您要的那一张 CD?再想象一下,世界上几十个大学的数千位物理学家,每一位都对不同的数据档有兴趣,只想要找到符合他的条件的数据,但是他们都不知道要找的数据在哪个档案里,几千人同时进来找,那要怎么找?
显然一台计算机、或几台计算机组成的丛集、甚至一台专门设计的超级计算机,都不足以进行科学家真正要作的计算工作。科学家的天性在此显露无疑-不断地追求极限、挑战极限、进而超越极限!
我们都知道计算机速度的进展真可谓一日千里:处理器的能力每 18 月左右提升一倍(有人把这个现象误称为 Moore 定律),即便如此,仍然赶不上科学家的需求。结果就是:想要用现有的计算机技术达成一些尖端的科学目标,不是非常难、非常贵、就是根本不可能。换句话说,科学家踢到铁板了!
有一些科学家,踢到了铁板,不是认命就算了,他们开始作踢破铁板的梦。
他们梦想有一种克服这些障碍的方法:
- ●他们梦想拥有几乎无限的储存空间,让他们不用操心要把数据放在哪里;
- ●他们梦想他们的研究机构在需要的时候能拥有几乎无限的运算能力;
- ●他们梦想能又容易又有效地和远方的同事安全地分享运算资源、数据、程序和结果;
- ●因为科学家总免不了要操心研究经费的事,所以也梦想要很便宜地实现以上所有的梦想,反正作梦不花一毛钱。
读者可以看得出来,这个梦想的实现未必是单一机构、单一公司、甚至单一国家所能达成的,它需要的,是一个把计算机、网络、储存装置及其他所有相关设备串连起来的技术,和把这个技术广为部署的环境。就像电力一样,除了要有输送电力的技术,还要牵线到府。换句话说,科学家在梦想的,是个信息基础建设(information infrastructure),简称 infostructure。
天下没有白吃的午餐 - 梦想实现的可能性
给每个人无限的储存空间和一要就有的运算能力,当然不可能。但是换一个角度来看,全世界现有的计算机运算能力的利用率又有多高呢?网格技术如果能善加使用全球的计算机资源,就很不简单了!
要善用全球的计算机资源,技术上还算做得到,但也不简单,后文会有介绍;但是非技术性的问题可能才是困难的,每个人都会说:『让我用别人的计算机,好啊!什么?别人也会来用我的计算机?办不到!』因此目前发展的趋势是将来会有两大类的网格:社群网格(Community Grid)和商业网格(Service Provider Grid)。在工作上合作的人们,如跨校的研究团队、同一个公司的不同部门等,可以各自拿出一些计算机资源来架构一个网格,以提高总效率,这是社群网格;为不特定用户提供付费的资源服务的,是商业网格。
但我们不要跳得太快。在网格真正落实在你我身边之前,先来看看类似的技术进展如何。
分布式计算和网格运算
自从七零年代 creeper & reaper 开创远程运算的纪元以来,分布式计算的技术就不断以不同的面貌出现;从九零年代初流行用高速网络把超级计算机中心链接起来进行超大型计算的 metacomputing 技术、到 1994 年 Beowulf Linux 的 cluster computing 技术、到 Napster 的 peer to peer computing 技术、到三百多万台 PC 贡献 seti@home 的 internet computing 技术,分布式计算的规模逐渐增大,只是离网格之梦仍然有一段距离。这在 1997 年出现了质变。
概念成形
位于芝加哥西郊的 Argonne 国家实验室,在 1997 年举办了「Building a Computational Grid」研讨会,网格运算的概念于焉形成,之后网格这个名词就逐渐在科学界蔓延开来,在流行起来的同时,网格真正的涵义也在口耳相传之中日渐模糊。在 1999 年,网格运算的两位先驱:Argonne 与芝加哥大学合聘的 Ian Foster 教授和南加大的 Carl Kesselman 教授,联合分布式计算的各界专家出版了后来被尊为网格圣经的「"The Grid: Blueprint for a New Computing Infrastructure」一书,总算为网格这个热门名词作了清楚的定义:「计算网格是:提供可靠的、一致的、遍布的、而且不昂贵的管道来使用高阶计算能力的软硬件基础建设。」虽然后来有许多人对网格提出不同的看法,但大多不脱这个范畴。
技术流传是关键 网格运算需要「白老鼠」
1998 年之后,在欧美各地的科学家开始向他们的政府请求经费,一开始是研究网格技术,然后逐渐进展为开发网格软件和部署网格架构的计划,这其中,我要特别强调部署这一个环节,因为在科技发展史上,有太多优秀的技术最后没有跨出实验室的门坎,其关键就是开发新技术的人未能在技术流传这个问题上下功夫。
技术的流传?说来简单,做起来何其困难!技术还没完全成熟时,谁要当白老鼠?没有白老鼠,如何证明技术出了实验室还能成功?这经常是无解的死结。对网格这种不能遍布不算成功的「基础建设」型的技术,当白老鼠的成本和风险更是高得多。
国际联合投资计划
幸运的是,网格的「本梦比」仍然吸引了各国政府投资,层级甚至上达欧盟。欧盟在 2001 年开始了 EDG (EU DataGrid) 的三年计划,进行数据网格的研发,这个由 Web 诞生地欧洲粒子物理中心为首的计划获得欧洲各国科学家的强力支持,现正规画其后续三年计划 EGEE (Enabling Grids for E-science in Europe),目标在建造一个永续的欧洲网格建设,网格的未来发展一片大好!
若以成败论英雄,欧洲粒子物理中心踏出了成功的第一步,而且正向着大规模部署迈进。但是,一将功成万骨枯,这个成功背后的白老鼠是哪些人呢?身为白老鼠的命运就是:要不断与功能不足、不好用、会当掉、经常改版的原型软件奋斗,其中之甘苦,恐怕只有当事人知道。我们应该向所有网格的开发者和白老鼠致敬:
- ●NASA 的 Information Power Grid 计划;
- ●美国国家科学基金会的 PACI program 中的 National Technology Grid 计划,将美国 27 州的 60 个大学或研究机构以高速网络连接,以建造和运作一分布式的科学工程应用的网格原型系统;
- ●美国的 Grid Physics Network 计划,基于 Globus toolkit 开发适合物理研究使用的网格软件,并在合作的研究单位中部署测试;
- ●世界各地在 EDG 计划下的粒子物理、生命科学、地球观测三大领域的合作单位。
LCG计划
其他还有很多,无法一一列出。但在这里要特别向读者介绍 EDG 中的 LCG (LHC Computing Grid) 计划。在 2002 年启动的 LCG 是与欧洲粒子物理中心的 LHC 加速器搭配的运算计划,要利用目前的网格原型软件,把全球数千台计算机串连起来,试图解决以上所说的千人分析 PetaByte 规模数据的问题,同时对网格技术提出严峻的考验。在网格研发的圈圈中,LCG 因为是真正的全球性计划,问题难度又高,是许多人注目的焦点,如果网格能圆满达成 LCG 的任务,无异是网格发展的关键里程碑!难怪 Ian Foster 和 Carl Kesselmann 两位都亲自参与。LCG 的合作对象主要是欧洲和美国各地和粒子物理关系密切的大型计算机中心。在计划进展上,LCG 规划了几个部署测试的阶段(phases),在规模上和网格软件成熟度上要一关一关地提升,目前刚到达第一阶段。
中央研究院计算中心自 2002 年底起积极参与 LCG,在部署的进度上,除了欧洲粒子物理中心本身之外,是全球第三个受到认可完成第一阶段的单位,进度超越美国、英国、法国、俄国、日本等国家,在此恭贺他们的努力!也期望他们再接再厉,让网格技术在国内生根。
网格技术的关键组织
网格的开发与推行除了由各国的科技团队各自进行之外,还有两个重要的组织:由芝加哥大学、Argonne 国家实验室和南加大为首的 Globus.org 以及由 Grid 社群发起的 Global Grid Forum,分别担任核心模块的开发和网格技术标准的讨论与制定。
Globus.org
Globus.org 所开发的 Globus Toolkit 是网格技术的核心模块,采开放源码的授权条款释出,这对网格技术的广泛流传有决定性的影响。Globus.org 在 2003 年 7 月 1 日公布了 Globus Toolkit 3.0,采用将 Grid 和 Web services 两个概念结合的「开放网格服务架构」(OGSA),第一版的 OGSA 规格草案是由 Globus 和 IBM 共同推出的,目前在 Global Grid Forum 中讨论、修正,以求标准化,将来可以用 J2EE、.Net、C 等架构发展 Grid 应用。
Global Grid Forum(GGF)
Global Grid Forum 的任务是「藉由开发和记录最佳惯例、实作指引和标准,以推广和发展网格技术和应用。」从 GGF 目前的七大领域:应用程序环境、技术架构、数据技术、信息系统和效能、Peer-to-Peer、排程及资源管理、保全(security),可看出其涵盖的技术范畴。从 2001 年 10 月起,GGF 就开始产出类似 RFC 的技术文件:其中还在讨论中的文件称为 Grid Working Draft (GWD),而经过 GGF 的编辑和指导委员会 (Steering Committee) 通过的文件称为 Grid Forum Document (GFD),预计这些文件在网格的发展上将扮演 IETF RFC 在 Internet 发展上的角色。
GGF 在 2001 年 7 月正式成立为一个非营利机构 GGF, Inc.,主办每年三次的 GGF 大会和其他活动。GGF 的参与者来自全球超过 30 个国家的两百多个组织,包括大学、国家实验室、商业公司、研究机构、官方单位等等,赞助者也非常多,如 Argonne 国家实验室、NASA Information Power Grid、英国 e-Science Programme、Compaq、HP、IBM、Microsoft、Sun、Silicon Graphics、Platform Computing、Qwest Communications、Grid Consortium Japan、Entropia、United Devices、Johnson & Johnson... 等等,读者当能看出全球各国产官学研的参与程度。
网格技术架构
对技术细节有兴趣的读者,可以在 Globus.org 找到许多技术文件,限于篇幅,就不在此细述,只介绍一下网格的五层式网络协议。
(1)物理层(Fabric layer):这是网格的最底层,包括所有的实体设备或资源,如计算机、储存设备、网络带宽、各式各样的传感器 (如 CPU 的温度计) 等等。 (2)链接层(Connectivity layer):这是通讯协议和身分认证的层次。通讯协议让不同资源之间可以交换数据,而身分认证协议提供加密的数据保全机制以确认用户和资源的身分。 (3)资源层(Resource layer):这是启动、监视和控制资源共享的层次。这个层次的协议使用链接层的通讯协议和身分认证协议来完成资源相关的工作。 (4)集体层(Collective layer):这是横跨多项资源的层次,包括资源间互动的协议、服务 (service) 和应用程序编程接口 (API)。这个层次的程序有很多种,如资源目录 (resource directory)、资源发现 (resource discovery)、资源中介 (resource brokering)、资源分配 (resource allocation)、资源监视 (resource monitoring)、诊断 (diagnostics)、数据复制 (data replication/cache)、以及判断谁能用哪些资源的会籍服务 (membership service)... 等等。 (5)应用层(Application layer):任何网格系统的最上层就是直接和用户互动的应用层。应用层的程序藉由呼叫其底下各层的组件来完成它的工作,比方说,一位生物学家 Bob 只需要送出一个「请用我的程序 X 分析数据 Y」的要求,他的生物网格软件就会
- ●取得 Bob 的身分认证数据 (链接层)
- ●以 Bob 代理人的身分询问某个生物网格的目录服务以决定数据 Y 的所在地和 CPU、储存设备和网络带宽等资源之可用处 A、B、C... (集体层)
- ●送出「用资源 A、B、C... 来执行程序 X 以分析数据 Y」的请求,包括其中所需的数据搬移等均自动完成 (资源层)
- ●监看整个数据搬移和计算工作的进展,对错误状况作出适当反应
- ●不论过程中有无异常或错误,在运算完成时会通知用户其结果。 (资源层)
对 Bob 来说,他只是下了一个命令或按了一个按钮,工作就开始了,因为中间件会代理他去和各个资源提供者协调资源的使用,他只需登入一次,不必逐一连上各个站去登入。
网格服务
从 LCG 第一阶段才刚完成来看,网格服务的普遍实现还需要一些时间。在业界,IBM 提出的「随选即算」、HP 的「Utility Computing」、Sun 的 Grid Engine,目前看来还是以提供网格所需的计算机为主,有的也提供架设网格软件环境的服务,Platform Computing、Avaki、United Devices 等软件公司则是在它们的软件产品上提供网格接口。因此跨校团队、大型企业等要建立社群网格时,现在已经有公司提供协助的服务。但是商业网格因为牵涉到计费机制的信任度等问题,仍在开发中。
网格与你
上面讲要用网格的人都是科学家、科学家、科学家,如果您不是科学家,网格和您有关系吗?
今天或许还没有,未来呢?不上网就难过的您也许离不开网格!要我拿出证明?哦,未来学是没有证明的,能有的,是看看过去和现在,来猜测一下未来,所以我来抄举几个有名的句子:
IBM 公司的 Thomas J. Watson 在计算机发明的初期说:『世界只需要五台计算机。』
迷你计算机巨人 DEC 公司的 Ken Olsen 在迷你计算机风行时期说:『家中绝对不需要有计算机。』
微软的 Bill Gates 在 PC 发明的初期说:『你所需要的内存永远不会超过 640 KB。』
更何况,在 Web 发明的初期,无人能想象 Web 的技术会发展成今天这种情景、被那么多人所使用。所以呢,就像爱因斯坦说的:『想象力比知识重要』。十年后网格会变成怎样、能为你做什么,没人知道,我更不敢预测,就靠各位读者及所有关心网格的人来发挥想象力了! (作者任教于台湾大学物理系,pyeh@phys.ntu.edu.tw)
参考数据
"The Grid: Blueprint for a New Computing Infrastructure", Ian Foster 和 Carl Kesselman 编辑, Morgan Kaufmann 出版。