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)能及时更新。