Redian新闻
>
麻省理工Python增强编译器Codon 让Python像C\\C++一样高效

麻省理工Python增强编译器Codon 让Python像C\\C++一样高效

公众号新闻

点击蓝字 关注我们

SUBSCRIBE to US


GETTY IMAGES/IEEE SPECTRUM


Python作为最流行(没有之一)的高级编程语言之一,使用广泛。然而,尽管高级语言的简化语法使其易于学习和使用,但与C或C++等低级语言相比,它可能会慢一些。


麻省理工学院计算机科学与人工智能实验室(CSAIL)的研究人员希望通过Codon来改变这一现状,Codon是一种基于Python的编译器,允许用户编写与C或C++程序一样高效运行的Python代码。


麻省理工学院CSAIL研究生Ariya Shajii说:“普通Python编译成所谓的字节码,然后字节码在虚拟机中执行,这要慢得多。使用Codon,我们正在进行本机编译,因此您可以直接在CPU上运行最终结果,而不需要中间的虚拟机或解释器。”


EXALOOP


基于Python的编译器附带了适用于Linux和macOS的预构建二进制文件,您还可以从源代码构建或构建可执行文件。Shajii说:“使用Codon,你可以像Python一样分发源代码,或者你可以将其编译为二进制文件。如果你想分发二进制文件,它将与C++这样的语言相同,例如,你有一个Linux二进制文件或Mac二进制文件。”


为了使Codon更快,团队决定在编译时执行类型检查。类型检查涉及将数据类型(如整数、字符串、字符或浮点数等)分配给值。例如,数字5可以指定为整数,字母“c”可指定为字符,单词“hello”可指定为字符串,十进制数3.14可指定为浮点数。


Shajii说:“在常规Python中,它将所有类型都留给运行时使用。使用Codon,我们在编译过程中进行类型检查,这样在运行时就不需要耗费判断数据类型的开销。”


麻省理工学院教授、CSAIL首席研究员Saman Amarasinghe也是Codon论文的合著者,他补充道,“如果你有一种动态语言(比如Python),每次你有一些数据时,你都需要保留大量额外的元数据,以在运行时确定类型。”Codon去掉了这些元数据,所以“代码更快,数据更小,”他说。


Shajii表示,在运行时没有任何不必要的数据或类型检查的情况下,Codon的开销为零。谈到性能,“Codon通常与C++不相上下。与Python相比,我们通常看到的是10到100倍的改进,”他说。


但Codon的方法也有取舍。Shajii说:“我们做这种静态类型检查,不允许Python的一些动态特性,例如在运行时动态更改类型,同时有些Python库暂时还不支持Codon,也就是兼容性还有待提高。”


Amarasinghe补充道:“Python已经经过了许多人的实战项目测试,但Codon才刚开始,还没有达到和Python一样的完美。它需要运行更多的程序,获得更多的反馈,并加强和修复更多。达到Python的强化水平需要一些时间。”


Codon最初被设计用于基因组学和生物信息学。Shajii说:“这些领域的数据集越来越大,像Python和R这样的高级语言处理每组测序数据太慢了。这就是我们想要填补的空白,通过培训一种无需编写C或C++代码即可处理大数据的方法,为不一定是计算机科学家或程序员的领域专家提供帮助。”


MIT/EXALOOP/UNIVERSITY OF VICTORIA/ACM


除了基因组学,Codon还可以应用于处理大量数据集的类似应用程序,以及基于Python的编译器支持的GPU编程和并行编程等领域。事实上,Codon现在正通过初创公司Exaloop在生物信息学、深度学习和定量金融领域进行商业应用,Shajii创立了Exaloop,旨在将Codon从学术项目转变为行业应用。


为了使Codon能够处理这些不同的域,该团队开发了一个插件系统。“这就像一个可扩展的编译器,”Shajii说,“你可以为基因组学或其他领域编写一个插件,这些插件可以有新的库和新的编译器优化。”


此外,组织可以使用Codon进行原型设计和应用程序开发。Shajii说:“我们看到的一种模式是,人们用Python进行原型设计和测试,因为它很容易使用,但当紧要关头,他们必须重写(他们的应用程序),或者让其他人用C或C++重写它,以便在更大的数据集上进行测试。有了Codon,你可以继续使用Python,两全其美。”


关于Codon的下一步,Shajii和他的团队目前正在研究广泛使用的Python库的本地实现,以及特定于库的优化,以从这些库中获得更好的性能。他们还计划创建一个广受欢迎的功能:为Codon创建一个WebAssembly后端,以便在Web浏览器上运行代码。


微信号|IEEE电气电子工程师

新浪微博|IEEE中国

 · IEEE电气电子工程师学会 · 


人工智能团队合作或可大幅削减芯片开发成本

液体盐使按钮镜片聚焦

机器人系统被用于研究蜂群中的集体行为

Neuralink的人体试验申请已因安全问题被美国FDA拒绝

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
天才儿童!8岁孩子自学高中知识 目标是麻省理工Chrome启用全新编译器友情转发 | 2023第10届麻省理工亚洲招聘会正式开启!2023第10届麻省理工亚洲招聘会正式开启!澄泥砚的“泥”,到底是什么泥闲话人生(230)大年初五结伴出游,百年老宅触发乡情寻找用科技改变世界的青年力量 | 《麻省理工科技评论》“35岁以下科技创新35人”亚太区报名正在进行陌上花开1015 像ChatGPT一样一起迭代美好的生活|年薪百万的科技圈男孩,注重仪式感,爱旅行爱运动都回来了!给中小学生的联合国峰会、麻省理工项目、瑞士徒步旅行……上海诺达的孩子离世界有多近?最后一位去世的中共一大代表刘仁静的坎坷人生最新!麻省理工学院放榜,大陆仅录3人,申请人数暴跌Ruby引入新JIT编译器RJIT,替代MJIT这款编译器能让Python和C++一样快:最高提速百倍,MIT出品恭喜麻省理工学员斩获J.P. Morgan (US) 2023 Internship Offer!让 Python 拥有 C/C++ 一样的速度,编译神器 Codon 发布!尚未高中毕业! 华裔女生就收到哈佛、史丹福、耶鲁、加州理工、麻省理工抢人...学跳广场舞潞晨科技招聘:NLP/AIGC大模型算法,​AI编译器开发,云计算研发等《Nature》麻省理工学院研究垂直堆叠LED,用于高分辨率数字屏幕?2023年度麻省理工亚洲招聘会雇主企业报名正式开启!CVPR 2023 Workshop | 马普所、麻省理工等举办生成模型研讨会【喜报】2枚麻省理工, 1枚加州理工上新!麻省理工商学院年度书单发布,第一本刷爆外网(附PDF)CS书单|麻省理工计算机学生都在看什么书?想学编程的快上车!福布斯发布2023年美国最佳大型雇主排行榜,麻省理工学院排名第一麻省理工报告:“芯片法案”还不足以令美国领先中国麻省理工就是偏爱SAT高分!这不等于贴上了“我爱华裔学生”的标签?这款编译器能让Python和C++一样快!最高提速百倍,MIT出品!Linux 6.3彻底移除英特尔ICC编译器的支持代码麻省理工商学院年度书单公开,第一本刷爆外网(附高清PDF)麻省理工官方推荐:26个硬核竞赛、29个夏校项目让PyTorch创始人直呼「Amazing」的视频「脑补」,动态场景NeRF合成速度提升百倍高中阶段要如何进行规划才能够拿到麻省理工的录取?麻省理工报告称“芯片法案”还不足以令美国领先中国披着扫黑剧外衣的鬼故事 ——笑谈《狂飙》之一
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。