# 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