认知计算时代的计算机编程
- 来源:互联网周刊 smarty:if $article.tag?>
- 关键字:认知计算,计算机,编程 smarty:/if?>
- 发布时间:2013-11-29 16:02
60年前,IBM工程师John Backus不顾诸多质疑,开始通过编程来显著降低IBM 704的成本并且提高速度及可靠性,以便从根本上提高在该产品上开展科学计算的经济性。他和同事一起开发的语言——FORTRAN ——最终成为率先得到广泛部署的首个高级编程语言。众所周知,FORTRAN在工业、科学、政府和社交等多个领域掀起计算转型热潮,给软件行业的发展奠定了坚实基础。FORTRAN的重要性很难高估,这一点可从O’Reilly的“编程语言发展史”海报中得到证实。
今天,信息技术行业走到了历史上的另一个转折点。Backus及其同事帮助创建的“可编程计算时代”正在被认知计算时代所取代。渐渐地,计算机将能够收集大量数据、解释数据、并且能够从信息及用户互动中获得洞察。从如何管理城市、直到如何解决复杂的业务问题,这些新功能将帮助我们深入洞悉世间万物的复杂性并且做出更加明智的决策。
但是,要想认知计算真正发挥作用,科学家们几乎需要对整个计算行业进行全方位改造——硅、系统、存储器和软件。在这个过程中,他们必须开发全新编程模式,就像曾经支撑FORTRAN的编程模式一样。我可以骄傲的说,在大学院校科研人员的帮助下,IBM SyNAPSE项目组已经在开发此类全新编程模式方面迈出了第一步。我们称之为corelet编程。
如果您希望详细了解认知计算时代,请访问:http://cup.columbia.edu/static/cognitive,登录到哥伦比亚大学出版社网站下载IBM研究院院长John E. Kelly III所著书籍《Smart Machines》中的免费章节。
我们正在为美国国防部高级研究计划局出资赞助的多年计划“SyNAPSE”项目开发这项技术。该计划旨在创建具有人脑功能及低功率、小体积、结构紧凑等特征的认知处理器芯片和系统,以便运行大量的下一代认知软件应用。
FORTRAN曾经肩负重要使命;SyNAPSE也是拥有远大目标的项目。我们一直期待该项目能够创建出全新计算架构——神经突触处理器网络,像人脑一样具有模块化、并行化、分布式、容灾、由事件驱动及可扩展性等特征。早先,我们曾演示过采用IBM硅技术、作为构建块存在的单个神经突触处理器内核。此外,我们还在Lawrence Livermore国家实验室使用IBM最大规模的超级计算机Sequoia模拟过由数十亿个此类神经突触处理器内核组成的网络——达到了百兆神经节的人脑规模。
我们的架构从根本上有别于现在普遍使用的计算架构(即冯·诺依曼架构)。要想通过改造让现在的编程语言适应此类架构,就像试图将一根方木钉钉进圆孔里一样。您需要全新编程方法。
进入corelet模式。该模式基于可以复用的代码构建块“corelets”对软件程序进行简要说明。每个corelet都代表通过在单个神经突触处理器内核上联合使用处理器(“神经元”)、内存(“神经节”)和通信组件(“轴突”)及核间连接来完成某些工作的一种方法。每个corelet都会将除外部输入和输出以外的所有具体信息隐藏或封装起来。
Corelets就像乐高积木。小个的corelets负责处理简单功能。若结合在一起,它们将会构成规模更大的全新corelets。这个corelets不仅汇聚了所有corelets的功能,而且还添加了新功能,同时将作为基本组件的corelets隐藏起来。通过这种方法,程序员将能够使用现有构建块编写大规模的复杂程序。通过使用这个模型以及在这个模型上面执行的编程语言,程序员将能够相当轻松地编写出大量的高效代码,非专家级编程人员也能创建出复杂的认知应用。这与FORTRAN在面市初期对计算世界产生的影响极为相似。
除了新架构和全新编程模型外,我们还创建了能够代表垂直集成技术生态系统的重要的软硬件技术—给新计算时代奠定了新基础。
John Backus的辉煌成就在可编程计算时代的初期大放异彩。然而,随着John继续深入研究,他开始意识到数学家约翰·冯·诺伊曼在20世纪40年代创建的计算机架构存在一些局限性 — 而他的编程模型,实际上包括所有的现代化计算,都是以此为基础的。在久负盛名的1977年“图灵奖”颁奖典礼上,John自创出“冯诺依曼瓶颈”一词来描述这个架构的缺陷。1979年,他这样写到,“我注意到所有的传统语言(FORTRAN、ALGOL、它们的接替品和衍生品)都因为受到冯诺依曼计算机编程风格的影响而变得越来越复杂。 遗憾的是,由于长期建立的熟悉性,我们将很难去了解和采用有朝一日能够显著提高智力和计算能力的全新编程风格”。(John逝于2007年,享年82岁。)
今天,全世界都已开始通过跨学科合作来开发全新的非冯·诺依曼计算架构,以便补充当今的计算机能力。这对认知计算的出现起到了至关重要的作用。我们所提供的架构和corelet编程模型也给这项成就贡献了重要力量。最终,时间将会证明我们的发明创造能否像曾经的John Backus及其工作团队那样对于这个计算新时代发挥相同的催化作用。但是,预测未来的最佳方式是创建未来。
作者:Dharmendra S. Modha,IBM公司SyNAPSE项目首席研究员及认知计算项目高级经理