
他们开发的Scalene是一款开源工具,可以显著提高编程语言Python的运行速度,绕过了限制计算机处理速度的硬件问题。
麻省大学阿默斯特分校的一支由Emery Berger领导的计算机科学家团队最近发布了一款名为Scalene的Python分析器,该分析器获奖无数。用Python编写的程序因其运行速度特别慢而众所周知,可能比其他编程语言的代码慢上多达60,000倍,而Scalene可以准确地找到Python性能瓶颈的地方,并帮助程序员解决问题、优化代码以提高性能。
虽然有很多不同的编程语言,比如C++、Fortran和Java,但在近年来,Python几乎无所不在。
“Python是一种‘即插即用’的语言,” 阿默斯特分校信息与计算机科学曼宁学院的计算机科学教授Berger说,“在数据科学和机器学习时代,它变得非常流行,因为它非常用户友好。” 这种语言自带了易于使用的工具库,具有直观易懂的语法,用户可以快速开始编写Python代码。
Python的效率问题
“但是Python的效率非常低下,” Berger说,“它的运行速度很容易比其他语言慢100到1,000倍,有些任务可能在Python中需要花费60,000倍的时间。”
程序员早已知晓这一点,为了帮助解决Python的低效问题,他们可以使用称为“分析器”的工具。分析器运行程序,然后准确指出哪些部分运行缓慢,以及为什么会如此。
不幸的是,现有的分析器对Python程序员的帮助非常有限。最好的情况下,它们只能指示出代码的某个区域运行缓慢,并让程序员自行判断是否需要进行优化。
伯格团队包括UMass计算机科学研究生Sam Stern和Juan Altmayer Pizzorno,他们开发了Scalene,这是第一个不仅精准识别Python代码中低效问题,而且通过人工智能提出代码优化建议的分析器。
“Scalene首先找出程序代码在哪里浪费时间,”伯格说。它专注于三个关键领域:CPU、GPU和内存使用,这些领域是导致Python运行速度缓慢的主要原因。
一旦Scalene确定了Python在哪些方面存在性能问题,它便利用人工智能技术(与ChatGPT使用相同的技术)提出优化单行代码甚至代码块的建议。
伯格说:“这是一个可操作的仪表板。它不仅仅是一个速度表,告诉你车跑得有多快或多慢,它还能告诉你是否可以跑得更快,为什么你的速度受到影响,以及你可以采取什么措施来达到最大速度。”
编程的未来和Scalene的影响
“计算机的速度不再提高,”伯格说。“提高速度将更多地依赖于更高效的编程,而不是更好的硬件。”
自Scalene在GitHub上公开发布以来,已被广泛使用,下载次数超过75万次。支持Scalene开发的研究得到了美国国家科学基金会的支持。描述这项工作的论文在今年的USENIX操作系统设计和实现会议上发表,并获得了最佳论文奖。