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