# Numba usecases
Legend:
- `[yyyy.mm]` in front of each line denotes the date the information is retrieved. Does not correlate to the age of the information.
## Scientific applications:
* [2021.10] Climate modeling: https://twitter.com/sbmalev/status/1438863172975349766
* [2021.10] Biological systems modeling and analysis: https://twitter.com/PhillipSmithNZ/status/1438811040859377667
* [2021.10] Gravitational simulation:
https://twitter.com/MikeGrudic/status/1438939984753426435
* [2021.10] Image processing for low energy microscopy data:
https://twitter.com/TobiasAdeJong/status/1438874719944597509
* [2021.10] Genetic analysis algorithms:
https://twitter.com/GregorGorjanc/status/1438962365844885511
* [2021.10] CERN LHCb High-Energy Physics https://arxiv.org/abs/2107.10090
* [2023.07] MCViNE: Monte Carlo Virtual Neutron Experiments
https://mcvine.ornl.gov/
https://github.com/mcvine/acc
## Engineering applications:
* [2021.10] Aerospace (unstated use case at Airbus):
https://twitter.com/CGCooke/status/1438930274331602952
* [2021.10] NREL FastSim: Automotive Systems Technology Simulator
https://www.nrel.gov/transportation/fastsim.html
https://numba.discourse.group/t/nrels-fastsim-with-numba-out-soon/225
* [2021.10] EvalML: AutoML from Alteryx
https://github.com/alteryx/evalml
* [2021.10] Alibi: Generating explanations of machine learning models
https://github.com/SeldonIO/alibi
* [2021.10] Coqui STT: Speech-to-text models
https://github.com/coqui-ai/STT
* [2024.05] Near Real Time Satellite image monitoring by European Commission, Joint Research Centre (JRC)
https://github.com/ec-jrc/nrt
## Libraries:
* [2021.10] RAPIDS: User defined functions in GPU-accelerated Dataframe
https://twitter.com/zstats/status/1438960091777040387
* [2021.10] Librosa: Music and audio analysis algorithms
https://librosa.org/doc/latest/index.html
* [2021.10] Stumpy: Time series analysis
https://twitter.com/stumpy_dev/status/1439185219408515072
* [2021.10] UMAP: Dimensional reduction algorithm https://twitter.com/leland_mcinnes/status/1438989739969875970
* [2021.10] PyNNDescent: Nearest neighbor search
https://twitter.com/leland_mcinnes/status/1438989739969875970 (same as previous)
* [2021.10] Pydata/Sparse: Accelerates sparse array operations
https://twitter.com/hameerabbasi/status/1439177043279859712
* [2021.10] Datashader: Generates accelerated aggregation code without having to write separate C or FORTRAN code.
https://twitter.com/datashader/status/1438877922866171905
* [2021.10] Galois: accelerated math operations on Galois fields
https://twitter.com/galois_py/status/1438816837953798150
* [2021.10] Pandas: Acceleration of specific algorithms like rolling windows and split-apply-combine.
https://pandas.pydata.org/pandas-docs/stable/user_guide/enhancingperf.html#numba-jit-compilation
* [2021.10] TARDIS: An open-source Monte Carlo radiative-transfer spectral synthesis code for 1D models of supernova ejecta.
https://tardis-sn.github.io/tardis/index.html
* [2021.10] BODO: Accelerated Pandas
https://bodo.ai/
https://numba.discourse.group/t/introducing-bodo-community-edition-for-pandas-acceleration/604
* [2021.10] Remote Backend Compiler
Notes: it provides User defined functions to [HeavyDB](https://www.heavy.ai/)
https://github.com/xnd-project/rbc/
- [2023.06] Numba-DPEX: Intel's Data Parallel Extension for Numba
https://github.com/IntelPython/numba-dpex
Note: Numba-DPPY is the old name
Argonne National Lab tutorial: https://www.alcf.anl.gov/aurora-learning-paths-data-parallel-essentials-python.
- [2023.06] AlgoTom: Data processing algorithms for tomography
https://github.com/algotom/algotom
paper: https://www.spiedigitallibrary.org/conference-proceedings-of-spie/12242/2636834/Practical-implementations-of-speckle-based-phase-retrieval-methods-in-Python/10.1117/12.2636834.full?SSO=1
- [2023.06] Strax: Stream analysis for xenon TPCs
Developed for XENONnT dark matter research
https://strax.readthedocs.io/en/latest/
- [2023.09] PyCOX: Survival analysis with PyTorch
https://github.com/havakv/pycox
- [2023.09] VectorBT
https://vectorbt.dev/
> a Python package for quantitative analysis that takes a novel approach to backtesting: it operates entirely on pandas and NumPy objects
- [2024.01] catalyst-cooperative The Public Utility Data Liberation Project (PUDL) https://github.com/catalyst-cooperative/pudl.
- sample use: https://github.com/catalyst-cooperative/pudl/blob/75ba57686d96e6633dcc252a36734cad88f457b0/src/pudl/analysis/record_linkage/link_cross_year.py#L89-L112
- [2024.09] "An open-source Python library supporting popular model compression techniques on all mainstream deep learning frameworks (TensorFlow, PyTorch, and ONNX Runtime)"
https://intel.github.io/neural-compressor/latest/docs/source/Welcome.html
https://github.com/intel/neural-compressor
- [2024.09] "NUCS is a Python library for solving Constraint Satisfaction and Optimization Problems."
https://github.com/yangeorget/nucs
example jit use: https://github.com/yangeorget/nucs/blob/3cfb02f60e94d7a6dfba0b7e6e704e3aef821e94/nucs/propagators/lexicographic_leq_propagator.py#L17
- [2024.10] Acoular:
- "Acoular is a framework for acoustic beamforming". "Parallel (multithreaded) implementation with Numba for most algorithms"
- webpage: https://www.acoular.org/
- citation: https://zenodo.org/records/13971849
### AI
* [2023.06] OpenAI Whisper uses numba
https://github.com/openai/whisper/pull/1171
numba + torch/triton https://github.com/openai/whisper/blob/b38a1f20f4b23f3f3099af2c3e0ca95627276ddf/whisper/timing.py#L57-L138C12
* [2023.06] Nvidia NeMo uses Numba https://github.com/NVIDIA/NeMo/issues/3260
* [2023.08] PyReason: Software for Open World Temporal Logic
- https://arxiv.org/pdf/2302.13482.pdf
> We use the Numba open-source JIT compiler
to translate many key operations into fast, optimized machine code while allowing the user
to interact with Python and the aforementioned front-ends.
- https://github.com/lab-v2/pyreason/
* [2023.10] Outlines
https://outlines-dev.github.io/outlines/
https://twitter.com/remilouf/status/1716365119360286934
> Neuro-symbolic text generation
* [2024.04] SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking
* The company, Naver, is "Korean Google"
* Github: https://github.com/naver/splade
* Numba use is not opensourced (see https://github.com/naver/splade/issues/9#issuecomment-974206923) but may (see https://github.com/naver/splade/issues/11#issuecomment-1048887483)
* Paper: https://arxiv.org/pdf/2107.05720.pdf
> For storing the index, we use a custom implementation based on Python arrays, and we rely on Numba [14] to parallelize retrieval. Models2 are trained using PyTorch [21] and HuggingFace transformers [24], on 4 Tesla 𝑉 100 GPUs with 32GB memory
* [2024.04] SalesForce WarpDrive. _Extremely Fast End-to-End Deep Multi-Agent Reinforcement Learning Framework on a GPU (JMLR 2022)_
* Paper: https://arxiv.org/abs/2108.13976
* Github: https://github.com/salesforce/warp-drive
* numba uses:
* "prelude": https://github.com/salesforce/warp-drive/tree/c1bb1995916f27fe0d138a81835c6744ed5bb8e0/warp_drive/numba_includes
* notebook: https://github.com/salesforce/warp-drive/blob/c1bb1995916f27fe0d138a81835c6744ed5bb8e0/tutorials/tutorial-1.b-warp_drive_basics.ipynb
## Benchmarks
- [2023.06] NPBench: HPC Numpy benchmark by SPCL
https://github.com/spcl/npbench
paper: https://dl.acm.org/doi/10.1145/3447818.3460360
DaCe paper has more benchmarks: https://arxiv.org/pdf/2107.00555.pdf
- [2023.06] DPBench: Intel's extension to NPBench
https://github.com/IntelPython/dpbench
- [2025.10] HuggingFace Transformer uses Numba for quantization
https://github.com/huggingface/transformers/blob/30c508dbcbc2d4e19507da5af46a32a7de73c5e9/docs/source/en/quantization/aqlm.md?plain=1#L50
- [2025.10] VLLM uses Numba for NGram speculative encoding
https://github.com/vllm-project/vllm/blob/e7e3e6d2636f6cd012c7ffeff773b20b3c90b958/vllm/v1/spec_decode/ngram_proposer.py#L6
## Other opensource uses
- [2024.06] Province of British Columbia, Wildfire Predictive Services
- https://github.com/bcgov/wps
- using numba to `vectorize` one function https://github.com/bcgov/wps/blob/6833ff86e5ac68860cb43874319afd0f6f1cafe4/api/app/auto_spatial_advisory/sfms.py#L3
- [2024.10] Seam carving algorithm. Single dimension resizing without distortion.
- https://x.com/akshaykagrawal/status/1845245319350714428
- Code: https://github.com/marimo-team/marimo/blob/7effb0dbc88bf683537fe00aaf89c827e887b106/examples/misc/seam_carving.py
## Other proprietary uses
Publicly admitted proprietary use of numba
[2024.04] Meta uses Numba for internal workload: https://numba.discourse.group/t/llvmlite-upgrade-cadence/2436