Numba 使命宣言
介绍
本文档是 Numba 项目的使命声明。它旨在提供项目目的和目标的清晰描述。因此,本文档提供了关于 Numba 用户和使用场景的背景信息,并概述了项目的总体目标。
这是一个活文档:
首次修订日期为: |
2022年5月 |
最后更新日期是: |
2022年5月 |
下一次审查日期是: |
2022年11月 |
背景
Numba 项目提供了提高 Python 软件性能的工具。它包含众多功能,包括即时(JIT)编译、库作者的扩展点,以及一个编译器工具包,可以在此基础上探索和构建新的计算加速技术。
Numba 可以针对的使用案例和应用范围包括但不限于:
科学计算
计算密集型任务
面向数值的应用
数据科学工具和程序
Numba 的用户群体包括任何需要执行密集计算工作的人,包括来自各个学科的用户,例如:
最常见的用例是,用户希望即时编译一些数值函数。
为特定领域用例提供JIT加速库的用户,例如科学研究人员。
为用户提供作为数值Python生态系统一部分使用的JIT加速库。
那些编写更高级的JIT加速库,包含自己的特定领域数据类型等的人。
探索新的编译器用例和/或需要定制编译器的编译器工程师。
硬件供应商希望扩展 Numba 以提供对其定制硅或新硬件的 Python 支持。
项目目标
Numba 项目的主要目标是:
为了使Python用户更容易编写高性能代码。
拥有一个核心包,其功能范围定义明确且实用,能够满足用户需求,同时不过于复杂。
为Python提供一个可扩展的编译器工具包,可以根据用户的需求进行定制。这要求用户可能需要投入时间和精力来扩展和/或定制软件本身。
支持Python核心语言/标准库和NumPy。
为了持续产出高质量的软件:
版本间的功能稳定性。
经过良好建立和测试的公共API。
清晰记录的弃用周期。
内部稳定的代码库。
外部测试的发布候选版本。
定期发布,具有可预测和公开的发布周期。
维护适合测试和发布的适当基础设施。尽可能多地公开内容。
为了让人们尽可能容易地做出贡献。
拥有一个维护良好的公共路线图,该路线图还将包括正在积极开发的领域。
制定并实施治理文件。
为了确保 Numba 的核心依赖项(LLVM、NumPy 和 Python)能及时更新。