2018年,《经济学人》发表了一篇关于编程语言Python的深入文章。“在过去的12个月里,”文章说,“谷歌在美国的用户搜索Python的频率超过了Kim Kardashian。真人秀明星,要警惕。
高级语言也赢得了它的流行,每天都有大量用户涌向该语言,因为它易于使用,部分原因是其简单易学的语法。这导致麻省理工学院计算机科学和人工智能实验室(CSAIL)和其他地方的研究人员制作了一种工具,以帮助更有效地运行Python代码,同时允许定制和适应不同的需求和上下文。编译器是一种软件工具,可将源代码转换为可由计算机处理器执行的机器代码,它允许开发人员在 Python 中创建新的领域特定语言 (DSL),这通常比 C 或 C++ 等语言慢几个数量级,同时仍然获得其他语言的性能优势。
DSL 是为特定任务量身定制的专用语言,比通用编程语言更容易使用。但是,从头开始创建新的DSL可能有点令人头疼。
“我们意识到,人们不一定想学习一门新语言或新工具,尤其是那些非技术人员。所以我们想,让我们采用Python语法,语义和库,并将它们合并到从头开始构建的新系统中,“Ariya Shajii博士说,他是关于团队新系统Codon的新论文的第一作者。“用户只需像他们习惯的那样编写Python,而不必担心数据类型或性能,我们会自动处理 - 结果是他们的代码运行速度比普通Python快10到100倍。密码子已经在定量金融、生物信息学和深度学习等领域得到商业应用。
该团队对Codon进行了一些严格的测试,它超过了它的重量。具体来说,他们采用了大约 10 个用 Python 编写的常用基因组学应用程序,并使用 Codedon 编译它们,并且比原始手动优化的实现实现了 10 到 <> 倍的加速。除了基因组学,他们还探索了定量金融中的应用,量化金融也处理大型数据集并大量使用Python。Codon平台还有一个并行后端,允许用户编写可以针对GPU或多个内核显式编译的Python代码,这些任务传统上需要低级编程专业知识。
飞机上的蟒蛇
与 C 和 C++ 等语言不同,它们都带有一个编译器,可以优化生成的代码以提高其性能,Python 是一种解释型语言。为了使Python更快,已经付出了很多努力,该团队表示,这种方法通常以“自上而下的方法”的形式出现,这意味着采用普通的Python实现并结合各种优化或“即时”编译技术 - 一种在执行过程中编译性能关键代码片段的方法。这些方法擅长保持向后兼容性,但极大地限制了您可以获得的加速类型。
“我们采取了更多的自下而上的方法,从头开始实施所有内容,这有局限性,但灵活性要大得多,”Shajii 说。“因此,例如,我们不能支持某些动态功能,但我们可以使用优化和其他静态编译技术,而这些技术在标准Python实现开始时是无法做到的。这是关键的区别——在自下而上的方法上没有投入太多精力,其中大部分Python基础设施都是从头开始构建的。
拼图的第一部分是向编译器提供一段 Python 代码。执行的关键的第一步称为“类型检查”,这是一个在程序中找出每个变量或函数的不同数据类型的过程。例如,有些可能是整数,有些可能是字符串,有些可能是浮点数——这是常规 Python 不会做的事情。在常规的Python中,你必须在运行程序时处理所有这些信息,这是导致它如此缓慢的因素之一。Codon的部分创新是该工具在运行程序之前进行此类型检查。这允许编译器将代码转换为本机机器代码,从而避免了 Python 在运行时处理数据类型的所有开销。
“Python是不是编程专家的领域专家的首选语言。如果他们编写了一个流行的程序,并且许多人开始使用它并运行越来越大的数据集,那么Python缺乏性能将成为成功的关键障碍,“麻省理工学院电气工程和计算机科学教授Saman Amarasinghe说。“Codon不需要使用像NumPy这样的C实现的库重写程序,或者用C这样的语言完全重写,而是使用相同的Python实现,并提供与用C重写相同的性能。因此,我相信Codon是成功的Python应用程序的最简单途径,这些应用程序由于缺乏性能而达到了极限。
比C的速度快
难题的另一部分是编译器中的优化。例如,使用基因组学插件将执行其自己的一组特定于该计算域的优化,例如,这涉及处理基因组序列和其他生物数据。结果是一个可执行文件,它以 C 或 C++ 的速度运行,一旦应用了特定于域的优化,甚至更快。
虽然Codon目前涵盖了Python的一个相当大的子集,但它仍然需要整合几个动态功能并扩展其Python库覆盖范围。Codon团队正在努力进一步缩小与Python的差距,并期待在未来几个月内发布几个新功能。Codon 目前在 GitHub 上公开发布。
除了Amarasinghe之外,Shajii还与前CSAIL学生,现任Jump Trading软件工程师Gabriel Ramirez一起撰写了这篇论文;麻省理工学院林肯实验室副研究员杰西卡·雷;Bonnie Berger,麻省理工学院数学、电气工程和计算机科学教授,CSAIL首席研究员;哈里斯·斯马伊洛维奇,维多利亚大学研究生;以及维多利亚大学计算机科学助理教授兼加拿大研究易卜拉欣·努马纳吉奇。
智能推荐
-
媒体评“新三样”走俏:中国外贸产品提质升级(加速转型“中国创造”)2023-08-17 大家好,大家对媒体评“新三样”走俏:中国外贸产品提质升级,加速转型“中国创造”很关注,下面小雪整理下相关的信息,现在让我们一起来看看吧
-
agp图形加速接口(agp纹理加速)2023-09-02 大家好,小讯来为大家解答以上的问题。agp图形加速接口,agp纹理加速这个很多人还不知道,现在让我们一起来看看吧
-
实现了两个独立半导体量子点之间的高可见度量子干涉2023-08-07 今年的诺贝尔物理学奖赞扬了量子纠缠的根本意义,并展望了“第二次量子革命”的潜在应用——一个我们能够操纵量子力学奇异
-
尼古拉特斯拉十大预言已实现6个,预言世界大战(震惊世界)2023-09-07 尼古拉特斯拉被称是旷世奇才,他毕生的发明数都数不清。他不仅是一位天才,还是一位神奇的先觉。尼古拉特斯拉十大预言此刻已兑现了6个,不能不说特斯拉真是一位怪杰
-
加速世界vs刀剑神域千年的黄昏(加速世界vs刀剑神域)2023-08-08 大家好,小讯来为大家解答以上的问题。加速世界vs刀剑神域千年的黄昏,加速世界vs刀剑神域这个很多人还不知道,现在让我们一起来看看吧
-
人类文明就算崩溃,也不能实现宇宙旅行(科技发展缓慢)2023-09-06 假如人类起色得好,技艺的奔腾也是或许的。两百年前,谁能料到本日科技起色的成就?假如人类能在恒星腐朽以前完成星际游历、太空探索,拓展人类文雅的广大邦畿,人类就能把持
-
光通过什么样的动力加速到光速,科学家有了这样的发现2023-09-05 我们都想知道光到底是甚么,本来光的性质便是电磁波,也可以将光看作是一种粒子。已知而今六合中光子的传递速率是最快的,不过我们不知道的是,光通过甚么样的动力可以或许减
-
广东实现跨省异地就医 医保直接结算全覆盖2023-09-18 新华社广州7月1日电记者近日从广东省医疗保障局获悉,目前,广东已实现跨省异地就医医保直接结算的县域全覆盖,住院、普通门诊、门诊慢特病均支持跨省异地就医医保直接结算
-
Loro Parque Fundación重新引入李尔金刚鹦鹉方面实现了新的里程碑2023-09-01 濒危物种保护的一个超然里程碑刚刚发生:第一只李尔金刚鹦鹉雏鸟是在原地(在其自然栖息地)出生的,这些鸟类是异地出生和长大的(在其自然栖息地之外)
-
一司机加速撞倒一女子:红色轿车突然加速撞人2023-08-11 大家好,大家对一司机加速撞倒一女子:红色轿车突然加速撞人很关注,下面小雪整理下相关的信息,现在让我们一起来看看吧
-
黄油猫悖论:绑着黄油的猫咪永远着不了地(无法实现)2023-08-18 在人们众多的头脑海洋中总会有部分额外八怪七喇的表面呈现,最先由英国人提议的黄油猫悖论即是一种如许的生计
-
快递员身上的百元错版币 实现一夜暴富梦2023-08-17 快递员身上翻出1元错版币,演出理想版的丝逆袭。台州的小伙小马处置快递员工作,寻常工作艰辛,一月报酬也就3元,基础属于月光一族