基于Python的编译器实现了数量级的加速
2018年,《经济学人》发表了一篇关于编程语言Python的深度文章。“在过去的12个月里,”文章说,“美国的谷歌用户搜索Python的次数超过了KimKardashian。”真人秀明星,要小心了。
这种高级语言也广受欢迎,每天都有大量用户涌向该语言,因为它的易用性部分归功于其简单易学的语法。这促使麻省理工学院计算机科学与人工智能实验室(CSAIL)和其他地方的研究人员制作了一种工具,以帮助更高效地运行Python代码,同时允许定制和适应不同的需求和环境。编译器是一种软件工具,可将源代码转换为可由计算机处理器执行的机器代码,它允许开发人员在Python中创建新的领域特定语言(DSL)——这通常比C或C等语言慢几个数量级C++——同时仍然获得其他语言的性能优势。
DSL是为特定任务量身定制的专用语言,比通用编程语言更容易使用。然而,从头开始创建一个新的DSL可能有点令人头疼。
“我们意识到人们不一定想学习一门新语言或一种新工具,尤其是那些非技术人员。所以我们想,让我们采用Python语法、语义和库,并将它们合并到一个由从头开始,”AriyaShajii博士说。,关于该团队的新系统Codon的新论文的主要作者。“用户只需像他们习惯的那样编写Python,而不必担心我们自动处理的数据类型或性能——结果是他们的代码运行速度比普通Python快10到100倍。Codon已经被使用在量化金融、生物信息学和深度学习等领域具有商业价值。”
该团队对Codon进行了一些严格的测试,结果超出了它的重量。具体来说,他们采用了大约10个用Python编写的常用基因组学应用程序,并使用Codon对其进行了编译,与最初的手动优化实现相比实现了5到10倍的加速。除了基因组学,他们还探索了量化金融领域的应用,该领域还处理大数据集并大量使用Python。Codon平台还有一个并行后端,让用户可以编写可以为GPU或多核显式编译的Python代码,这些任务传统上需要低级编程专业知识。
飞机上的蟒蛇
与C和C++等语言都带有编译器来优化生成的代码以提高其性能不同,Python是一种解释型语言。为了使Python更快,人们付出了很多努力,该团队表示这通常以“自上而下的方法”的形式出现,这意味着采用普通Python实现并结合各种优化或“即时”"编译技术——一种在执行期间编译性能关键代码段的方法。这些方法擅长保持向后兼容性,但极大地限制了您可以获得的加速类型。
“我们更多地采用了自下而上的方法,我们从头开始实施所有内容,虽然有局限性,但灵活性更高,”Shajii说。“因此,例如,我们不能支持某些动态特性,但我们可以使用优化和其他静态编译技术,而这些是您无法从标准Python实现开始的。这是关键的区别——没有太多的努力采用自下而上的方法,其中大部分Python基础设施都是从头开始构建的。”
第一个难题是向编译器提供一段Python代码。执行的关键第一步之一称为“类型检查”,这是一个在您的程序中找出每个变量或函数的不同数据类型的过程。例如,有些可能是整数,有些可能是字符串,有些可能是浮点数——这是常规Python不会做的事情。在常规Python中,您必须在运行程序时处理所有这些信息,这是导致它如此缓慢的因素之一。Codon的部分创新是该工具在运行程序之前进行这种类型检查。这让编译器将代码转换为本机机器代码,从而避免了Python在运行时处理数据类型的所有开销。
“Python是非编程专家的领域专家的首选语言。如果他们编写了一个流行的程序,并且许多人开始使用它并运行越来越大的数据集,那么Python的性能不足将成为一个关键障碍成功,”麻省理工学院电气工程和计算机科学教授兼CSAIL首席研究员SamanAmarasinghe说。“无需使用像NumPy这样的C实现的库重写程序或完全用像C的语言重写,Codon可以使用相同的Python实现并提供与用C重写时相同的性能。因此,我相信对于因性能不足而达到极限的Python应用程序,Codon是成功的最简单途径。”
比C的速度还快
另一个难题是编译器中的优化。例如,使用基因组学插件将执行其自己的一组特定于该计算域的优化,例如涉及处理基因组序列和其他生物数据。结果是一个可执行文件以C或C++的速度运行,甚至在应用特定领域的优化后更快。
虽然Codon目前涵盖了相当大的Python子集,但它仍然需要合并一些动态特性并扩展其Python库的覆盖范围。Codon团队正在努力进一步缩小与Python的差距,并期待在未来几个月内发布多项新功能。Codon目前在GitHub上公开可用。
除了Amarasinghe之外,Shajii还与前CSAIL学生、现任JumpTrading软件工程师GabrielRamirez一起撰写了这篇论文;JessicaRay,麻省理工学院林肯实验室副研究员;BonnieBerger,麻省理工学院数学、电气工程和计算机科学教授,CSAIL首席研究员;HarisSmajlović,维多利亚大学研究生;IbrahimNumanagić,维多利亚大学计算机科学助理教授和加拿大研究。
该研究在ACMSIGPLAN2023编译器构建国际会议上发表,并作为CC2023的一部分发表:第32届ACMSIGPLAN编译器构建国际会议论文集。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
宝子们,杭州 房子装修完成啦!这次要给大家分享几家设计超赞的装修公司哦。它们各具特色,从空间规划到风格...浏览全文>>
-
欲筑室者,先治其基。在上海,装修房子对于每个业主而言,都是极为关键的一步,然而,如何挑选一家值得信赖的...浏览全文>>
-
2025年以来,联通支付严格贯彻落实国家战略部署,以数字和科技为驱动,做好金融五篇大文章,履行支付为民社会...浏览全文>>
-
良工巧匠,方能筑就华居;精雕细琢,方可打造美家。当我们谈论装修公司时,选择一家靠谱可靠的公司是至关重要...浏览全文>>
-
在当今社会,随着城市化进程的高速推进,建筑垃圾的产生量与日俱增。据权威数据显示,我国每年建筑垃圾产生量超 ...浏览全文>>
-
家人们,在上海要装修,选对公司那可太重要了!古语有云:"安得广厦千万间,大庇天下寒士俱欢颜。"一个温馨的...浏览全文>>
-
近年来,新能源汽车市场发展迅猛,各大品牌纷纷推出各具特色的车型以满足消费者多样化的需求。作为国内新能源...浏览全文>>
-
近年来,随着汽车市场的不断变化和消费者需求的升级,安徽滁州地区的宝来2025新款车型在市场上引起了广泛关注...浏览全文>>
-
随着汽车市场的不断变化,滁州地区的消费者对高尔夫车型的关注度持续上升。作为大众品牌旗下的经典车型,高尔...浏览全文>>
-
在2023年,大众探影以其时尚的设计和出色的性能赢得了众多消费者的青睐。作为一款小型SUV,探影凭借其紧凑的车...浏览全文>>
- 安徽滁州途安L新车报价2022款,最低售价16.68万起,入手正当时
- 小鹏G7试驾,新手必知的详细步骤
- 别克GL8预约试驾,4S店的贴心服务与流程
- 安徽阜阳ID.4 CROZZ落地价全解,买车必看的省钱秘籍
- 淮北探岳多少钱 2025款落地价,最低售价17.69万起现在该入手吗?
- 安徽淮南大众CC新款价格2025款多少钱能落地?
- 淮北长安启源C798价格,最低售价12.98万起现在该入手吗?
- 安徽淮南途锐价格,各配置车型售价全解析
- 蒙迪欧试驾预约,4S店体验全攻略
- 沃尔沃XC40试驾需要注意什么
- 滁州ID.4 X新车报价2025款,各车型售价大公开,性价比爆棚
- 试驾思域,快速操作,轻松体验驾驶乐趣
- 试驾长安CS35PLUS,一键搞定,开启豪华驾驶之旅
- 天津滨海ID.6 X落地价限时特惠,最低售价25.9888万起,错过不再有
- 天津滨海凌渡多少钱?看完这篇购车攻略再做决定
- 安徽池州长安猎手K50落地价,买车前的全方位指南
- 山东济南ID.6 CROZZ 2024新款价格,最低售价19.59万起,现车充足
- 试驾海狮05EV,新手必知的详细步骤
- 生活家PHEV多少钱 2025款落地价走势,近一个月最低售价63.98万起,性价比凸显
- 奇瑞风云A9试驾,新手必知的详细步骤