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。