HOPE:面向天体物理计算的Python即时编译器
天体物理仪器与方法
2014-12-04 v2 数学软件
编程语言
计算物理
摘要
Python编程语言因其简洁性、多功能性和广泛的库而越来越受到科学应用的欢迎。然而,这种动态语言的一个缺点是运行时性能较低,这限制了它在大型模拟和大型数据集分析中的适用性,而这在天体物理学和宇宙学中很常见。尽管已经开发了各种框架来解决这一限制,但大多数框架都侧重于覆盖完整的语言集,要么迫使用户修改代码,要么无法达到优化的本地编译语言的完全速度。为了结合Python的易用性和C++的速度,我们开发了HOPE,一个专为数值天体物理应用设计的Python即时(JIT)编译器。HOPE专注于语言的一个子集,能够在运行时对数学表达式进行数值优化的同时将Python代码翻译成C++。为了实现JIT编译,用户只需在函数定义中添加一个装饰器。我们通过执行一系列基准测试来评估HOPE的性能,并将其执行速度与纯Python、C++和其他现有框架进行比较。我们发现,与纯Python相比,HOPE的性能提高了2到120倍,达到了与C++相当的速度,并且通常超过了现有解决方案的速度。我们讨论了HOPE与其他框架之间的差异,以及其未来功能的扩展。完整文档化的HOPE包可在http://hope.phys.ethz.ch获取,并在PyPI和GitHub上以GPLv3许可证发布。
引用
@article{arxiv.1410.4345,
title = {HOPE: A Python Just-In-Time compiler for astrophysical computations},
author = {Joel Akeret and Lukas Gamper and Adam Amara and Alexandre Refregier},
journal= {arXiv preprint arXiv:1410.4345},
year = {2014}
}
备注
Accepted for publication in Astronomy and Computing. 14 pages, 1 figure. The code is available at http://hope.phys.ethz.ch