2024年5月发布IEEE综览在这里!

关闭栏

软件性能工程能使我们免于摩尔定律的终结吗?

编写更高效的代码有很多好处

3分钟读取
带有代码的计算机屏幕图像
插图:百叶窗

这是一篇客帖。此处表达的观点仅为作者的观点,并不代表IEEE综览或IEEE。

在航空业的早期,人们可能会被原谅,因为他们设想未来会有更快的飞机。莱特兄弟的速度从1903年的每小时50公里增长到20世纪60年代波音707的时速约为1000公里但自那以后,商用飞机的速度一直停滞不前,因为速度越高,飞机的能耗就越低。

今天的计算机也面临着类似的问题。几十年来,我们将元件微型化的能力使我们每两年左右将硅芯片上的晶体管数量增加一倍摩尔定律(以…命名英特尔联合创始人戈登·摩尔)数十年来,它使计算成本大幅降低,功能更加强大。但我们现在达到小型化的极限计算性能停滞不前。

这是一个问题。摩尔定律20年前结束的时候,今天电脑中的处理器的功能大约会降低1000倍,我们也不会有iPhone、Alexa或电影流媒体。如果我们不能继续提高计算性能,20年后我们可能会错过哪些创新?

近年来,像我们这样的研究人员一直在为下一步该做什么而挠头。一些人希望答案是新技术,比如量子计算、碳纳米管或光子计算。但在与麻省理工学院其他专家一起研究了几年后,我们相信这些解决方案是不确定的,可能需要很多年的时间。在此期间,我们不应该指望计算机芯片的彻底改造;我们应该重新编码在其上运行的软件。

正如我们在本周的文章科学类,多年来,程序员不必担心让代码运行得更快,因为摩尔定律为他们做到了这一点。所以他们走捷径,优先考虑快速编写代码的能力,而不是计算机尽快运行代码的能力。

例如,许多开发人员使用像“简化”这样的技术:获取解决问题A的代码,并使用它来解决问题B,即使这是一种效率低下的方法。假设您想构建一个类似Siri的系统来识别“是”或“否”语音命令。与其构建一个自定义程序来实现这一点,不如使用一个可以识别大量单词的现有程序,并对其进行调整,使其只对“是”或“否”的答案作出响应。

好消息是,这种方法可以帮助您更快地编写代码。坏消息是:它有时会产生惊人的低效率。效率低下可能很快加剧。如果一个简化的效率是定制解决方案的80%,并且您编写了一个包含20层简化的程序,那么代码的效率将比它可能的效率低100倍。

这不仅仅是思想实验。能够在诸如机器学习,机器人技术、和虚拟现实将需要巨大的计算能力。如果我们想充分利用这些技术的潜力,我们必须做出改变。作为我们的科学类文章这表明,在开发新算法和精简计算机硬件方面存在机会。但对于大多数公司来说,获得更高计算性能的最实际方法是通过软件性能工程,即使软件更高效。

性能工程策略之一是“并行化”代码大多数现有软件都是使用十年前的模型设计的,这些模型假定处理器一次只能执行一个操作。这是低效的,因为现代处理器可以通过使用多芯在每个芯片上,每个内核中都内置了并行性。像并行计算这样的策略可以让一些复杂的任务以数百倍的速度完成,并且以更加节能的方式完成。

虽然软件性能工程可能是前进的最佳途径,但这并不容易。更新现有程序以更快地运行是一项艰巨的任务,尤其是在缺乏受过并行编程和其他性能工程策略培训的编码人员的情况下。此外,前瞻性公司的领导者必须与制度惯性按照以往的方式做事。

聪明的科技巨头谷歌亚马逊已经收到这份备忘录。他们的数据中心规模巨大,这意味着即使软件性能的微小改进也能带来巨大的财务回报。这些公司在哪里领先,世界其他国家也必须效仿。对于应用程序开发人员来说,在推出新特性和功能时,效率再也不能被忽视。对于公司来说,这可能意味着更换长期存在的勉强维持的软件系统。

性能工程将比摩尔定律更具风险。公司可能直到投入了大量的程序员时间后才知道他们的努力的好处。加速可能是零星的、不平衡的和不可预测的。但当我们达到微处理器的物理极限时,专注于软件性能工程似乎是大多数程序员从计算机中获得更多信息的最佳选择。

摩尔定律的终结并不意味着你的笔记本电脑即将停止。但如果我们想在以下领域取得真正的进展人工智能机器人技术,我们必须更有创意,并花时间对软件进行性能工程。

对话(0)