这是一篇客座文章。本文仅代表作者个人观点,不代表作者的立场亚博真人yabo.at或者IEEE。
在航空发展的早期,人们可能会想象未来飞机的速度会越来越快。莱特兄弟的时速从1903年的每小时50公里提高到在20世纪60年代,一架波音707的时速约为1000公里.但从那时起,商用飞机的速度就停滞不前了,因为更高的速度使飞机的能源效率低下。
今天的计算机也面临着类似的问题。几十年来,我们小型化组件的能力使得我们每两年左右就能将硅芯片上的晶体管数量增加一倍。这种现象,被称为摩尔定律(以英特尔联合创始人的名字命名戈登。摩尔),在过去的几十年里,它让计算的成本呈指数级下降,功能也越来越强大。但是我们现在达到小型化的极限,因此计算性能停滞不前。
这是一个问题。如果摩尔定律在20年前就被废除了,现在电脑中的处理器的性能将会下降1000倍左右,我们就不会有iphone、Alexa或电影流媒体了。如果我们不能继续提高计算性能,20年后我们可能会错过哪些创新?
近年来,像我们这样的研究人员一直在挠头,不知道下一步该做什么。一些人希望答案是量子计算、碳纳米管或光子计算等新技术。但在与麻省理工学院的其他专家研究了几年之后,我们认为这些解决方案是不确定的,可能需要多年的时间才能制定出来。在此期间,我们不应该指望计算机芯片的彻底改造;我们应该重新编码在上面运行的软件。
正如我们在本周的文章科学在美国,多年来程序员不必担心如何让代码运行得更快,因为摩尔定律为他们做到了这一点。所以他们走捷径,优先考虑自己快速编写代码的能力,而不是计算机尽可能快地运行代码的能力。
例如,许多开发人员使用像“简化”这样的技术:获取解决问题A的代码,并使用它来解决问题B,即使这是一种效率低下的方法。假设您希望构建一个类似siri的系统来识别“是”或“否”的语音命令。您可能不需要构建一个定制的程序来完成这项工作,而是使用一个现有的程序来识别广泛的单词,并对其进行调整,使其只对“是”或“否”的答案作出反应。
好消息是,这种方法可以帮助您更快地编写代码。坏消息是:它有时会导致惊人的效率低下。效率低下很快就会加剧。如果一次简化的效率是自定义解决方案的80%,并且您编写了一个包含20层简化的程序,那么代码的效率将比可能的效率低100倍。
这不仅仅是思想实验。能够在诸如机器学习,机器人,虚拟现实将需要巨大的计算能力。如果我们想充分利用这些技术的潜力,我们就必须做出改变。作为我们的科学文章这表明,开发新的算法和简化计算机硬件是有机会的。但是对于大多数公司来说,获得更高计算性能的最实际的方法是通过软件性能工程——也就是说,使软件更高效。
一个性能工程策略是“并行化”代码.大多数现有软件都是使用几十年前的模型设计的,这些模型假设处理器一次只能执行一个操作。这是低效的,因为现代处理器可以在同一时间进行许多计算多核在每个芯片上,每个核心都内置了并行性。像并行计算这样的策略可以让一些复杂的任务以一种更节能的方式以数百倍的速度完成。
虽然软件性能工程可能是最好的前进道路,但它并不容易。更新现有程序以提高运行速度是一项艰巨的任务,特别是在缺乏接受过并行编程和其他性能工程策略培训的编码员的情况下。此外,具有前瞻性的公司的领导者必须与这种趋势作斗争机构惯性按照他们一贯的方式做事。
像谷歌和亚马逊这样灵活的科技巨头已经明白了这一点。他们庞大的数据中心规模意味着即使软件性能上的微小改进也能带来巨大的经济回报。这些公司引领的方向,世界其他地区必须效仿。对于应用程序开发人员来说,在推出新特性和功能时不能再忽视效率。对于公司来说,这可能意味着更换那些勉强维持的长期存在的软件系统。
性能工程的风险将超过摩尔定律。公司可能不知道他们的努力的好处,直到他们投入了大量的程序员时间。加速可能是零星的、不平衡的和不可预测的。但当我们达到微处理器的物理极限时,专注于软件性能工程似乎是大多数程序员从计算机中获得更多的最佳选择。
摩尔定律的终结并不意味着你的笔记本电脑即将停止运转。但如果我们想在人工智能和机器人等领域取得真正的进步,我们必须更有创造力,并花时间来优化我们的软件。网上亚博Ayabo2016
查尔斯·e·雷瑟森他是麻省理工学院计算机科学与工程教授,也是IEEE会员。
Tao B. Schardl是麻省理工学院的一名研究科学家。
尼尔·c·汤普森他是麻省理工学院计算机科学和人工智能实验室的研究科学家。网上亚博Ayabo2016