我们现在生活的时代可谓之“信息时代”,因为自1946年世界上的第一台电子计算机ENIAC诞生以来,计算机与网络已逐渐成为人们生活中不可缺少的一部分。目前,计算机的应用减少了人类很多重复的脑力劳动、大大丰富了人类的创造力、提高了社会的生产力,如Internet从1989年转向民用到2009年这20年中,互联网的应用不仅改变了人们获取信息的渠道与信息量,而且改变了人们的生活方式,使得人们的观念在时空上也有改观。如果说,计算机硬件的更新速度是符合摩尔定律的,那么,信息量及其应用的增长速度与规模却大大超出了摩尔定律的“每18个月性能提升一倍”。可预测的是,未来若要提供更好的计算机与网络的应用服务,寄望计算模式、存储方式与网络传输、应用开发模式的改变,促进其创新性的可持续发展。
一、计算模式的发展
从计算模式发展史来看,先是由单机计算发展出集群计算,到现在随着网络的发展产生了网格计算,直到当下炙手可热的云计算。集群计算与网格计算都是在单机计算能力不能满足需求下,提供了可选择的解决方案。
(一)集群计算
包括高性能科学计算集群、负载均衡计算集群、高可用性集群。
高性能科学计算集群,这种系统是通过集群开发并行应用程序以解决复杂的科学问题。它不使用专门的超级并行计算机,而是用商业系统如通过高速连接来链接的一组单处理器或双处理器PC,并且在公共消息传递层上进行通信以运行并行应用程序。比如一种便宜的 Linux 超级计算机,大概多指这种集群系统,其处理能力与真的超级计算机相当。
负载均衡集群,这种系统使负载可以在多台计算机中尽可能平均分摊请求到多个服务器处理,降低单台服务器的负载。负载可以是需要均衡的应用程序处理负载或网络流量负载。在系统中,每个节点都可以处理一部分负载,并且可以在节点之间动态分配负载,以实现平衡。对于网络流量也是如此。但其主要只是对应用负载能力的提升,对应用计算能力的提升并不是负载均衡集群的第一目标。
高可用性集群,它的出现是为了使集群的整体服务尽可能地提高其可用性。如果高可用性集群中的主节点发生了故障,那么这段时间内将由次节点代替它。由于次节点通常是主节点的镜像,所以当它代替主节点时,可完全接管其身份,对用户没有任何影响。与负载均衡集群类似,高可用性集群重点在于提高这个系统的稳定性,对系统的计算性能也不会有明显的提高。
在实际应用中,针对不同的需求,可以在这三种集群基本类型之间进行交叉、混合使用。如:在高可用性的集群系统中,也可以在其节点之间实现负载均衡,同时仍然维持着其高可用性。此外,从对这三种集群计算的分析来看,只有高性能科学计算集群为分布式计算,另外两种集群类型对计算能力并没不会有很大提升。
(二)网格计算
网格计算,虽在有些部分与集群计算有相似之处,但如果仔细观察与比较,可以看到网格计算在异构性、动态性、分布性、可扩展性上,都与集群计算都有所区别,网格计算更为关注的是动态的、实现的是多架构的虚拟组织中的一个协调的共享资源和解决问题的过程。
在异构性上,集群计算主要关注的是计算资源;而网格计算则由异构资源组成,对存储、网络和计算资源进行了集成。集群计算通常包含同种处理器和操作系统;网格计算则可以包含不同供应商提供的运行不同操作系统的机器。
在动态性上,集群计算包含的处理器和资源的数量通常都是静态的;而网格计算在设计之初就是动态的,网格上的资源则可根据实际应用的需求,进行灵活的、动态性调正。
在分布性上,集群计算通常在物理上包含在一个位置的相同地方,集群互连技术可以产生非常低的网络延时,但集群距离很远时可能会导致产生很多问题;而网格计算本身就建立在一个网域上,是在本地网、城域网或广域网上进行分布的,网格可以分布在任何地方。
在可扩展性上,集群计算对物理临近与网络延时的要求往往限制了地域分布的能力;而网格计算在设计之初往往就已提供了动态性增强的可扩展性,且由此可提供很好的高可扩展性。
尽管网格计算与集群计算之间存在很多差别,但这些差别使它们之间构成了一个非常重要的关系,即互补关系。如:在网格计算中,特定的问题通常都需要一些紧耦合的处理器来解决,致使集群计算在网格计算中总有一席之地,很多网格计算都会在自己管理的资源中采用了集群计算。不过,实际应用中,网格计算用户可能并不一定清楚它的工作负载是在一个远程的集群上执行的。反之,亦如此。
(三)云计算
云计算与网格计算非常相似,两者都是为了满足计算需要而从分布式计算衍生的概念,也都是给开发者提供了一个对于后端透明的解决方案。为此,有人将云计算看作网格计算2.0。如果做进一步观察,从定义上来看,它们都试图将各种资源看成一个虚拟资源中心,然后向外提供相应的服务;它们也都试图以松耦合的方式,将大量的计算资源连接在一起,提供单个计算资源所无法完成的超级计算能力。但是,从应用目标来看,网格计算的构建,大多为完成某一个特定的任务需要,也就由此产生了气象网格、生物网格、医学网格等各种应用领域不同的网格计算项目;而云计算一般是为通用性应用而设计的,没有专门性的、以某个应用领域命名的网格。
(四)虚拟化技术
在提到分布式计算的时候,一般不会想到虚拟化技术,两者看似并没有直接关联,其实存在很多共同点。如:分布式计算与虚拟机技术对于终端用户而言,都是一个黑盒(不会知道实际的硬件与运行环境)。分布式计算说到底其实是在为用户提供一套虚拟的资源使用;而虚拟化技术虽说在建立之初是为了增强高性能服务器的计算利用率,但它不受硬件与操作系统的特性与思想,给分布式计算技术以很多帮助。可预见的是,有朝一日,虚拟化技术可将几套硬件资源建立为一个虚拟机,也可能在分布式计算系统上直接建立一个或几个虚拟机。
二、计算模式改变所带来的新机遇
在此,仅以发展前景看好的分布式计算为例,阐述有关计算模式改变所带来新机遇的思考。
(一)分布式计算的带动作用
随着分布式计算的发展,分布式计算的应用会渐入民用市场。如云计算和一些网格计算项目都开始对公众开放,带动新的计算模式逐渐被民众所认识,在民间推而广之。展望未来,一个普通的程序员可以像现在编写单机程序一样简单,开发原有只有在超级计算机环境下才可以运行的应用程序。
随着分布式计算的发展,人工智能应会得到很好发展。目前,人工智能发展得比较缓慢,其主因在于它要求大量计算与存储作为支撑。如:深蓝在1997年以3.5:2.5的成绩击败卡斯巴罗夫,与深蓝在世界超级计算机中第259位排名分不开的。卡斯巴罗夫在比赛败北后坦承他在观察电脑下棋时,感觉电脑的决定有智慧及创意,是自己所不能理解的。卡斯巴罗夫质疑电脑在棋局中可能有人类的帮助,因此要求重赛。但IBM由于一些原因拒绝,并把深蓝退役。如果当时继续比赛,或许可以更好地比较人类与电脑的学习能力。当然这个比赛也不是完美无缺,可以看出一些人工智能的缺陷。如:在比赛过程中,深蓝曾经修改过程序。这个规则虽是被允许,但如果没有这些修改,谁胜谁负就很难说了。另外,此人工智能只是建立在单一知识库的体系下,距真正建立起一个完全知识库型人工智能还很遥远,需要更强大的计算功能与存储支撑才有可能可实现。而分布式计算为人们提供了一个可选择的途径。
随着分布式计算的发展,大量服务器结合起来成为可能。组成比深蓝更强大的计算机,将是完全有可能实现的。我们完全可以大胆地做一个发展的假设:在可预见的未来里,随着果分布式计算的发展,可达到计算能力与存储容量水平是现在很难想象,人们将创造出完全知识库的人工智能机,使其超过人类所有智能的总和。这将成为计算机技术史上的一个里程碑。
(二)分布式计算的发展路径
伴随着分布式计算的发展,至少以下几个相关应用性产业会得到新的发展。
由于分布式计算与网络的发展,终端设备所要求的计算能力会有所下降,由于减少了终端的计算量在相同使用的情况下也会提高移动设备的待机时间,从而更好地适应了应用者对手机等移动设备的技术性要求。
由于BS应用的普及性、成熟性与便捷性已得到普遍认可,BS应用模式也可以很好地与分布式计算结合。以BS为中心的应用,会更为普及,乃至“遍地开花”。
由于优秀IT厂商(如:类似微软、GOOGLE、IBM、ORACLE、思科、英特尔等)会充分利用自身优势,推出各种模式的、以分布式计算为中心的服务,提供给应用性服务运营商。如今,亚马逊已率先向普通大众推出云计算产品。
由于分布式计算中心的建立,应用软件厂商或服务运营商就可像我们现在租用带宽一样,方便地、直接地租用分布式计算的集约式服务,并转而进一步为既有客户提供特定服务。与此同时,社会也有效节俭了诸多方面的相应成本。
通过分析可以看出,未来会以分布计算中心为核心,建立起一条将分布式计算嵌入计算商业化的产业链。
随着分布计算中心的建立,分布式应用提供商的门槛大为降低,有可能几个有创意的年轻人就可以做一个了不起的应用服务,这样会大大促进社会的发展与生产力的提高。而分布服务中心的门槛却是比较高,需要有分布计算技术与强大的硬件资源作为基础,另外很重要的是提供分布式计算中心也需求得到开发者的信任。
三、计算模式发展所带来的新问题及其应对
当下,分布式计算发展还不成熟,存在着一系列问题,突出表现:
首先,至关重要的是目前还没有一个模式标准或协议。这是IT业界的一个普遍存在的问题,致使其从技术研发进入市场运营后,常会因提供商的变更,面临再次进行完全性的重新开发,极度浪费人力与资源。应对思路是政府、企业、学术/技术、行业协会等几方面共同研究、制定、推动。涉及全球性的还需要国际交流与合作。
其二,由于目前缺少成熟的开发与调试环境,严重影响分布式计算模式的发展进程。应对思路是进一步整合资源、共享管道、扩大合作、集聚优势。
其三,由于分布式计算要求高性能与高稳定性,往往会要求一定的数据的冗余,如果不能很好地平衡冗余与计算效率问题,可能会造成环境污染与资源浪费。如:一直在使用分布式计算的GOOGLE也曾因此遭到质疑。应对思路是加强跨域合作,拓展存储新介质。
其四,由于分布式计算中心的建立尚属刚刚起步,无论在硬件上还是在软件上,其服务模式还未成熟,有待完善。应对思路是在投资合作、市场采购、自有品牌及模式推广等方面,需要政府的大力促进、业者的深耕细作。
另一方面,分布式计算的应用会不会完全取得单机应用呢?笔者认为,由于分布式计算应用需要建立在网络的普及与一定带宽的基础上,而目前情况是网络的社会普及不平衡且有不少现实局限,如:在一些特殊场合或公共区域,尚无法使用网络。所以,在中短期内,不仅分布式计算的应用不会完全取代单机应用,反而两者会形成一个良性互补的有效结合,如:微软与GOOGLE公司都发行了线上与线下结合应用的产品。
总之,本文是通过对计算机计算应用与发展历程的回顾,来阐述笔者对未来计算机技术发展前景的展望。期待与相关业者和同仁交流,相互有所补益。
目前为止有一条评论