基于Python的编译器实现了数量级的加速

来源:互联网 时间:2023-03-15 22:59:20

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首席研究员;哈里斯·斯马伊洛维奇,维多利亚大学研究生;以及维多利亚大学计算机科学助理教授兼加拿大研究易卜拉欣·努马纳吉奇。

上一篇:

下一篇:

X 关闭

基于Python的编译器实现了数量级的加速

2018年,《经济学人》发表了一篇关于编程语言Python的深入文章。“在过去的12个月里,”文章说,“谷歌在美国的用户

2023-03-15

03月15日18时江苏镇江疫情数据 阳了以后为什么会腰疼?应该怎么办?

03月15日18时江苏镇江疫情数据阳了以后为什么会腰疼?应该怎么办?以下为详情!一、03月15日18时镇江疫情数据概览

2023-03-15

我的世界虚无世界如何进入其他世界_我的世界虚无世界2怎么去其他世界-环球热头条

1、nevermine:crysteviaRock,tile *** name,晶体石头,0nevermine:o

2023-03-15

世界视讯!美晨生态:公司下属公司有苗圃种植、蔬菜种植等,工业大麻尚未产业化种植,目前主要侧重于纤维麻的小批量试种

同花顺(300033)金融研究中心3月15日讯,有投资者向美晨生态(300237)(300237)提问,公司是否有种植产品如工业大麻公司回答表示,尊敬的投资者

2023-03-15

成都双流机场、天府机场航班转场调整 出行旅客请注意_环球新要闻

转场后,同时在双流机场和天府机场运营的7家航空公司为:中国国际航空、四川航空、中国东方航空、中国南方航空、成都航空、长龙航空、深圳航空

2023-03-15

广州黄埔区积分入学后可以转学吗

广州黄埔区通过积分制入学获得民办学位的随迁子女在同一学段原则上不予转学,若坚持申请转学,将取消其积分入学学位政府补贴待遇。积分入学申

2023-03-15

助浴师,助力老人“沐浴”幸福

天津北方网讯:00后杨骐羽是和平区南营门街社区养老助浴中心的一名助浴服务员,就是这位开朗的姑娘,已经帮助几十位老人解决了洗澡的难题,并

2023-03-15

山东飞羊科技发展有限公司

1、山东飞羊科技发展有限公司于2020年01月02日成立。2、法定代表人杨铭章,公司经营范围包括:计算机软件开发及技

2023-03-15

重要的安全事项还要一讲再讲乘客被困电梯轿内不会窒息千万不要强行扒门逃生|今日热闻

本文转自:沈阳晚报沈阳市市场监管局开展电梯安全专项检查重要的安全事项还要一讲再讲乘客被困电梯轿内不会窒息千万不要强行扒门逃生为切实提

2023-03-15

【世界独家】红楼梦评书下载mp3打包下载_白眉大侠评书下载mp3打包下载

1、直接传到百度上传附件,绝对没有密码、完全免费如觉得好,请及时下载,及时采纳为满意答案,进你的知道,进你的提问,一步一

2023-03-14

Copyright   2015-2022 世界科技网版权所有  备案号: 琼ICP备2022009675号-1   联系邮箱:435 227 67@qq.com