并行宇宙

来源 :科技创业 | 被引量 : 0次 | 上传用户:gustczh
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  当2002年安瓦尔·古鲁姆(Anwar Ghuloum)来到英特尔工作的时候,该公司是芯片制造行业的龙头老大,这主要是因为它在持续供应速度越来越快的处理器。 “我们的奔腾4处理器已经达到了3GHz,而公司发展路线图计划,未来生产时钟频率达到甚至超过10GHz的处理器,”古鲁姆回忆到,他拥有卡内基梅隆大学的博士学位,现在是该公司的首席工程师之一。在同年的英特尔开发商会议上,首席技术官帕特·基辛格(Pat GelsLnger)说,“我们正在按部就班地进展,将在2010年开发出30GHz的设备,采用10纳米或更小的制作工艺,实现万亿指令级别的性能。”就是每秒钟处理一万亿条计算机指令。
  但是基辛格错了。英特尔和它的竞争对手仍在制作速度低于4GHz的处理器,至少现在看来,5GHz依然被当作硅技术可实现的最大速度。
  这并不意味着摩尔定律失效了——该定律认为,一块芯片上的晶体管数量每两年增加一倍。当然,由发热和能量消耗带来的不可预测的问题,已经对处理器的时钟频率或指令的处理速率造成了实际限制。新的技术,比如自旋电子学(它用单个电子的自旋方向来编码数据)和量子(或隧道)晶体管,最终可能会使计算机的运行速度大大提升,同时大幅降低能耗。但是,这些技术至少还需十年才能进人市场,而且它们需要更换掉花费数百亿美元建造的半导体生产线。
  所以,为了使手中的技术发挥出最大的效用,芯片生产商们采取别的方法。摩尔定律预测增加的晶体管,并不用于加快单独处理器的运行速度,而是增加了芯片中处理器的数量。拥有双处理器——或“核心”——的芯片现在成为台式计算机的标准配置,而四核芯片也越来越普遍。从长远来看,英特尔期望每台设备包含数百个核芯。
  但是出现一个问题:尽管过热芯片的硬件问题通过多核计算的方法很好地解决了,但是这种解决方案进而引来一个棘手的软件问题。你怎么给多处理器编程?这就是安瓦尔·古鲁姆,在他管理的美国和中国编程团队的帮助下,所要解决的。
  微处理器公司采用多核战略是顶着巨大风险的。如果他们找不到为新芯片编写软件的简单方法,那么他们就可能失去软件开发者的支持。这就是索尼的多核PlayStation3游戏机推迟上市,并且在游戏数量上仍然输给竞争对手的原因。硅的问题
  微处理器发展的前30年间,提高性能的方法是尽量缩小芯片的零件尺寸,同时提升运行的时钟频率。1977年,最初的苹果II型电脑使用一个运行速度为1MHz的8位处理器。今天的计算机标准为3,6GHz的64位芯片——实际上速度是以前的28800倍。但这似乎就是这条轨道的终点。到2002年左右,蚀刻在芯片的最小零件尺寸,通过光刻技术缩减至90纳米——在此规模下会产生意料之外的结果,大部分注入到芯片的电流会泄漏出去,产生热量却什么工作也不做。同时,由于晶体管排列得太过密集,它们发出的热量无法被吸收和带走。当时钟频率达到5GHz时,芯片制造商们意识到,芯片的温度太高,以至于如果没有精密的冷却系统,它们的制造原料——硅——就会融化。该行业需要别的途径来提高性能。
  相对于单核高速芯片现在所需的设计复杂,多核技术可以具备相同处理能力并消耗更少电力。更少的电力产生更少的热量。此外,使用多核可以随时随地地释放热量。
  然而,大多数计算机程序设计时并没有考虑多核。它们的指令被线性处理,没有并行环节的作用。如果你的计算机看起来能同时进行多项任务,那是因为处理器不停地在任务间跳转,其速度快得超乎你的想象。因此多核最简单的用途就是劳动分工——例如,在一个核心上运行操作系统,在另一个运行一个应用程序。
  这不需要一个全新的编程模型,而且,它可以匹配今天拥有两个或四个核心的芯片。但是将来出现64个核心时,该怎么办呢?
  
  重操旧业
  
  幸运的是,哈佛大学计算机科学与应用数学的教授莱斯利-瓦瑞安特(Leslie VaHant)说,高性能计算领域——也就是超级计算机——的并行原理几十年前就解决了。 “现在的挑战,”瓦瑞安特说, “是寻找让这些老玩意儿依然有效工作的方法。”
  激发出多核计算的超级计算机是20世纪80年代的第二代设备,由思维机器(Thinking Machines)和肯德尔广场研究公司(Kendall Square Research)等公司制造。这些公司使用成百上千个现成的处理器,让它们并行地运行。一些由美国国防部高级研究计划署委托制造,以当作克雷超级计算机(Cray supercomputers)的廉价替代品。为这些计算机编程所获得的经验教训,成为今天进行多核编程工作的指南。所以,《侠盗猎车手》游戏可以很快地从20年前帮助设计氢弹的软件研究中获益。
  在80年代,并行计算的关键问题开始清晰起来:很难将软件分开在数百个处理器上并行工作,再按照正确的顺序组合回去,而不让预期结果错误或丢失。计算机科学家发现,尽管一些问题很容易并行化,但是也有一部分不行。在一种叫做“竞态条件(race condition)”的情况下,即使问题可以并行化,结果可能仍会不按顺序返回。想象两个并行工作的运算,其中一个需要在另一个之前完成,才能使总结果正确。你如何确保正确的那个运算赢得这场竞赛呢?现在,想象一下2000个或200万个这样的处理进程的情况。
  “我们从高性能计算的早期工作了解到,有些问题适合并行,但是这些并行应用程序不容易编写,”伊利诺伊大学香槟分校通用并行计算研究中心(Universal Parallel Computing Research Center,UPCRC)的副主管马克·史尼亚(Marc Snir)说。通常,程序员使用专门的编程语言和工具来为计算机编写指令,因为相对于I/0二进制码,人们更容易理解它们。但是这些语言旨在表现线性的运算过程;我们很难通过一系列线性命令来组织数千个并行的进程。为了从头创建并行程序,就需要编程语言让程序员在编码时不考虑如何使之并行——就像往常一样编程,软件会计算出如何给多个处理器有效地分发指令。“然而,现在仍没有好的工具来隐藏并行,或令其浅显易实现,”史尼亚说。
  为了帮助解决这些问题,公司们已经召回了参与80年代超级计算机的老家伙们。例如,大卫·库克(DavidKuek),伊利诺伊大学的荣誉退休教授,以并行编程工具的开发者而闻名。现在,他在英特尔从事多核编程工作。同样还有以前数字设备公司(Digltal Equipment Corporation)雇佣的整个团队。在早期职业生涯中,该团队开发出数字设备公司的消息传递接口(MPI)实施方案,如今成为多机超级计算机的主要软件标准。
  就某种意义来说,这些老先生们比上一次要轻松一些。因为,今天许多的多核程序与杰出的主机设计者吉恩·阿姆达尔(Gene Amdahl)的设想大大不同,他创立的理论认为, 通过使用多个处理器所获得的速度增量受限于给定程序可以被并行化的程度。
  计算机现在处理的数据量比以前更大,但是它们对任务的处理能够完美地并行化,以至于1967年描述的阿姆达尔定律的约束似乎变得完全不存在了。大规模并行任务的最简单例子,是通过尝试所有可能的字母组合来暴力破解密码。将潜在答案分给1000个处理器必然会快上1000倍。今天的视频和音频数据编码等处理器密集型程序也同样受益。并行地压缩电影几乎有完美的效率。但是,即使今天更容易找到并行计算的用途,要实现它也不那么容易。让它变得简单,就需要芯片制造商、软件开发者和计算机学者的一致努力。实际上,伊州大学的UPCRC就是由微软和英特尔资助的——如果多核计算成功,这两家公司将获益丰厚;如果失败,则损失惨重。
  
  发明新工具
  
  如果软件继续复杂化,那不只是因为加入了更多的功能,还因为程序员实际所做工作的复杂性被越来越多的抽象层掩盖,而编码就建立在这些抽象层上。这不仅仅是膨胀:程序员需要抽象,好让基础的二进制码完成我们所想要的更加高级的工作。但是,当开始为并行处理器编写程序的时候,程序员使用的工具就太简陋了,甚至微软研究院未来数据中心项目的软件架构主管詹姆斯-拉诺斯(James Larus)将它们比喻成“程序员所能使用的最底层和最困难的语言”。
  “我们无法想象使用汇编语言编写今天的软件,”他说,“但是出于某些原因,我们认为,我们可以使用几乎是并行汇编语言的工具来编写复杂度类似、但拥有新的关键特性的并行软件,实际上却做不到。”
  这就是为什么微软一直在尽早发布并行编程工具。例如,F#,是微软通用ML编程语言的并行版本。它不仅使一些功能并行化,而且防止它们之间不当的相互影响,从而使并行软件变得更易于编写。
  同时,英特尔每个月都将古鲁姆送出国一周,与软件开发者讨论多核架构和并行编程模型。“我们已经得出一个观点,并行编程‘问题’不会在一两年内解决,它将需要对现在的语言进行大量改进一以及几次跳跃式发展,”古鲁姆说,“我还认为,我们不能脱离现实去完成这项工作,没有重要的程序员反馈,我们无疑将以失败告终。”
  在商业和开源市场,其它新的语言和工具要么利用了多核处理的能力,要么掩盖了它的复杂性。其中包括谷歌MapReduce架构,它使并行计算更易于在集群计算机上运行。Hadoop,一个MapReduce的开源实施项目,可以为数千个节点分配程序。类似Clojure和Eflang等新的编程语言完全以并行计算为根本而设计,风靡全球的Facebook聊天程序就部分使用Erlang编写。
  同时,从麻省理工学院诞生的公司,Cflk Arts,可以将使用现有c++语言编写的程序打散为多线程,从而能在多个核心上并行处理。还有,圣刘易斯市的Appistw公司宣布,它的企业应用结构(Entemrise ApDHcaNon Fabric)可以自动地将微软的.Net编程框架分配给数千台服务器,程序员连一行原始代码也不用修改。
  
  多核计算的局限
  
  然而,就像英特尔的10GHz和30GHz芯片的梦想给多核计算的发展让路一样,多核自己也只能存活大约几年,而不是几十年。每增加一个处理器,并行系统的效率就会下降一些,因为处理器在争夺相同的数据。当矛盾发展到一个临界点时,向芯片增加新的核心实际会拖慢它的速度。可能在我们开始购买百核计算机之前,多核策略就被早早设置了实际限制。
  然而,这有什么关系呢?尽管有些程序可能需要多核的能力,但是大多数人不会使用它们。除了游戏发烧友,很少有人会抱怨他们的计算机太慢。实际上,微软已经强调Windows 7,作为陷于困境的Windows Vista的替代品,将比Vista使用更少的处理能力和内存——这是应对低耗能移动计算平台的普及和可预期的个人电脑应用程序网络化,所采取的必要举措。愤青们会说,对不断增长处理能力的追求是纯商业的——半导体和计算机公司、软件供应商和手机制造商需要我们购买新的玩意。
  所以,如果多核计算失败了,会有什么负面影响呢?如果我们的技术出现重大转折,突然无法使用未来笔记本电脑中全部64个处理器核心时,我们的文化会受到什么影响呢?
  “我等不及了!”苹果II型机的发明者史蒂夫·沃兹尼亚克(steve Wozniak)说, “摩尔定律的失效将带来软件开发的复兴,”他宣称,“只有到那时,我们才能最终创建在稳定持久的平台上运行的软件。”
  “在学校里,”沃兹说,“一张课桌的生命期是25年,一本教科书是10年,而一台计算机最多3年。这些设备中哪一个的购买和维护费用最多呢?当然是计算机。哪些设备的使用期结束后还具有剩余价值呢?不是计算机——我们要花钱去处理这些电子垃圾。至少书本可以烧掉取暖。直到技术的速度减慢,计算平台生存期足够长,具有经济上的可行性时,它们才会真正成为教育的必备物品。所以,摩尔定律的结束,虽然感觉不好,实际上却是一件好事。”
其他文献
从1886年第一辆汽车行驶在路上,到2009年全球汽车保有量超过9亿。百年的时间,让人们逐渐享受到了汽车带来的便利。但正如每个硬币都会有两面,汽车带来的问题也越来越快地影响着人们的生活。气候的恶化、石化能源的枯竭和不堪重负的城市交通等问题逐渐显露,由汽车引发的矛盾在今天已经成为了国际社会普遍关注的焦点。  为了解决日益严重的环境和能源问题,各家汽车企业无论是跨国巨头还是自主品牌都纷纷致力于在未来用
期刊
移动计算正在改变微处理器产业    英特尔的酷睿i7系列芯片,身为当今性能最强劲台式机处理器中的一员,有7亿7400万个晶体管,其沟道只有100个硅原子的宽度。芯片拥有4~6个以最高3.3GHz的时钟频率运行的6.4位运算内核。大批量生产的情况下,一块芯片的成本约为1000美元。考虑到通货膨胀,这大抵就是第一款商业化微处理器英特尔4004处理器在1971年时的成本。过去40年中硅技术不可思议的进步
期刊
媒体公司拥抱网络新技术    几十年来,传统媒体通过扮演广告商与受众的中介,实现自给自足。受众需要内容,而广告商需要一个接触受众的渠道,因此,广告商愿意为这些内容买单。现在,廉价的计算机和网络连接创造了出版的平台和广告市场,在这里,广告商和受众不再需要依赖媒体公司(参考《整合为王》,第76页,和《主流新闻与公民新闻》,第72页)。  看上去最有可能幸存的媒体公司都使用了新技术,既能直接从受众那里获
期刊
想查一下你(或你邻居)的无线网络密码是否符合要求?交34美元,你就可以使用一种云密码破解服务做到这一点。这项服务主要是针对“渗透测试者”——由公司付费测试网络安全性能的人——提出的。  这项被称作“WPA破解”(WPA Cracker)的服务,是依赖云计算的第一批黑客服务之一。它使用随付随访云计算资源的方式,从13.5亿种不同的可能性中,寻找突破加密无线保护访问(WPA)的密码, “WPA破解”的
期刊
找回广告商    广告商花在网络上的费用只是他们过去用于传统媒体的一小部分。对于媒体公司来说,这是个大问题。尽管他们通过互联网传播产品节省了成本,但是,他们仍然要承担相当大的固定成本来创造内容。这些公司怎样赚钱呢?  可能的答案是,他们需要更加依赖订阅和直接销售的收入,或者转变为非营利性的模式,由赠款和捐助支撑。但是,光有这些战略很难缩小财务上的鸿沟,大多数的媒体公司,必须说服广告商,他们在线展示
期刊
主流新闻与公民新闻    2009年6月,一场有争议的总统选举在伊朗引发骚乱。政府阻止了国外和国内的新闻媒体报道此事件,但是,伊朗人用社交网站绕过了审查。目击者不停地传出关于血腥镇压抗议活动的消息。当一个叫做妮达·艾嘉·索尔坦(Neda Agha Soltan)的过路人被射杀,悲惨的画面被手机的摄像头捕捉下来,并传到了Facebook上。  关于抗议伊朗选举的报道就是“我们媒体”的一个例证,这是一
期刊
集成云    温顿·瑟夫认为,云计算的下一步是将不同的系统连接在一起。  在谷歌,我们管理着世界各地许多的数据中心,每一个都包含有大量的计算机,彼此相连的成为集群。数据中心再通过高速专用网络依次相连。这些数据中心支持应用程序和服务——用户可以访问公共互联网,按需利用几乎无限的计算能力,这个过程被称之为云计算(详见30页的《云安全吗?》)。亚马逊、IBM、微软以及其他公司也在试验并实施类似的系统。目
期刊
越来越多的成年人不是肥胖就是超重,无怪乎人们最常见的新年愿望之一就是减肥了。为了帮助那些在减肥路上挣扎的人们,《科技创业》杂志找到了几种最棒的减肥小窍门。这些小发明跟踪记录从卡路里消耗量到食物摄取量的详细信息。    FitBit    这个小巧的可佩戴装置应用了被称为加速度计的三向运动传感器,跟踪记录用户的一举一动,甚至睡觉。它利用这些数据,判断诸如卡路里消耗量、步数、动距离,甚至睡眠质量这些实
期刊
自从谷歌新的社交网络经历了一个糟糕的启动之后,它就一直忙于解决用户的疑惑和隐私问题。谷歌称,公司的工程师们已经开始结合用户反馈,马不停蹄地对其性能进行调整。但是,这个名为Buzz的产品已经招致激烈的批评和联邦贸易委员会(FTC)的不满,并引发了官司。有些专家认为,(BHZZ)启动伊始由于糟糕的隐私控制而引发的伤害根本无法挽回,另一些人却相信,谷歌仍然有机会通过服务来进行补救。  当Buzz于2月9
期刊
题记:1.“故天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。”——这总是不变的道理。   2.“这我要首先看一看我这位朋友是做什么的:如果他也是做科技的而要创业,那么,我自然会推荐我的朋友来这里;如果我这位朋友不是做科技,而是做其他行业,譬如服务业的,自然就没有来这里的必要了。”—— 一句需要仔细品味的话。      作为一名创业领域的记
期刊