Numba is a compiler for Python array and numerical functions that gives you the power to speed up your applications with high performance functions written directly in Python. Array-oriented and math-heavy Python code can be just-in-time optimized to performance similar as C, C++ and Fortran.
Numba uses the LLVM compiler infrastructure to compile Python to CPU and GPU machine code.
Numba needs llvmite, NumPy, and funcsigs. It’s compatible with Python 2.7 and 3.5 or later, and Numpy versions 1.7 to 1.14.
Key Features
- Speeds up operations written in Python.
- On-the-fly code generation (at import time or runtime, at the user’s preference).
- Native code generation for the CPU (default) and GPU hardware. It offers an efficient GPU code reduction algorithm for faster compilation.
- Integration with the Python scientific software stack (courtesy of NumPy).
- Aims to offer seamless integration with NumPy.
- It supports NumPy scalar types:
- Integers: all integers of either signedness, and any width up to 64 bits.
- Booleans.
- Real numbers: single-precision (32-bit) and double-precision (64-bit) reals.
- Complex numbers: single-precision (2×32-bit) and double-precision (2×64-bit) complex numbers.
- Datetimes and timestamps: of any unit.
- Character sequences (but no operations are available on them).
- Structured scalars: structured scalars made of any of the types above and arrays of the types above.
- Basic linear algebra is supported on 1-D and 2-D contiguous arrays of floating-point and complex numbers.
- NumPy arrays of any of the scalar types above are supported, regardless of the shape or layout.
- Supports top-level functions from the numpy.random module.
- Seeks to support as much of the Python language as possible.
- Support for Python features in CUDA Python.
- Uses contributions from Intel, via the ParallelAccelerator project, to speed up some operations by automatically parallelizing them.
- Supported platforms:
- Linux x86 (32-bit and 64-bit).
- Windows 7 and later (32-bit and 64-bit).
- OS X 10.9 and later (64-bit).
- NVIDIA GPUs of compute capability 2.0 and later.
- AMD APUs supported by the HSA 1.0 final runtime (Kaveri, Carrizo).
Website: numba.pydata.org
Support: Documentation, Mailing List, GitHub
Developer: Anaconda, Inc
License: BSD 2-Clause “Simplified” License
Numba is written in Python. Learn Python with our recommended free books and free tutorials.
Related Software
| Compilers | |
|---|---|
| GNU Compiler Collection | The standard compiler for most Unix-like operating systems |
| rustc | Compiler for the Rust programming language |
| AOCC | AMD Optimizing C/C++ Compiler |
| LLVM | Low-Level Virtual Machine (LLVM) compiler for C/C++ |
| ispc | Intel SPMD Program Compiler |
| Babel | JavaScript compiler - use next generation JavaScript |
| Glasgow Haskell Compiler | An optimizing compiler for Haskell, written in Haskell |
| Clang | C Language Family Frontend for LLVM |
| Nuitka | Optimizing Python compiler |
| CHICKEN | Compiler for the Scheme programming language |
| FreeBASIC | 32-bit BASIC compiler |
| Numba | Compiler for Python array and numerical functions |
| Free Pascal | Advanced Pascal compiler for Pascal and Object Pascal |
| NASM | Assembler for the x86 CPU architecture |
| Bigloo | Practical Scheme compiler |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Know a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

