numba
by
numba

Description: NumPy aware dynamic Python compiler using LLVM

View on GitHub ↗

Summary Information

Updated 1 hour ago
Added to GitGenius on August 27th, 2024
Created on March 8th, 2012
Open Issues & Pull Requests: 1,796 (+1)
Number of forks: 1,287
Total Stargazers: 11,080 (+0)
Total Subscribers: 190 (+0)

Issue Activity (beta)

Open issues: 1,672
New in 7 days: 3
Closed in 7 days: 2
Avg open age: 1,826 days
Stale 30+ days: 1,645
Stale 90+ days: 1,609

Recent activity

Opened in 7 days: 2
Closed in 7 days: 1
Comments in 7 days: 4
Events in 7 days: 14

Top labels

  • feature_request (1,022)
  • bug (980)
  • CUDA (482)
  • question (379)
  • no action required (371)
  • bug - incorrect behavior (323)
  • Task (303)
  • needtriage (270)

Repository Insights (GitGenius)

Median issue/PR response: 24.5 hours
Mean response time: 454.2 days
90th percentile: 1770.3 days
Tracked items: 835

Most active contributors

Detailed Description

Numba is an open source, NumPy-aware just-in-time compiler for Python that translates numerical code into optimized machine code using the LLVM compiler infrastructure. Sponsored by Anaconda, Inc., the project enables significant performance improvements for computationally intensive Python applications by compiling a large subset of numerically-focused Python code, including many NumPy functions, without requiring users to leave the Python language or adopt alternative syntaxes.

The core functionality of Numba centers on dynamic compilation of Python functions decorated with Numba's JIT decorators. When a decorated function is called, Numba analyzes the input types, generates optimized LLVM intermediate representation, and compiles it to machine code for execution. This approach eliminates the interpretation overhead of standard Python while maintaining the flexibility of dynamic typing through runtime type inference. The compiler supports automatic parallelization of loops, allowing developers to leverage multi-core processors without explicit parallel programming constructs. Additionally, Numba provides GPU acceleration capabilities, enabling code to run on CUDA-compatible GPUs for further performance gains in data-parallel workloads.

Beyond basic JIT compilation, Numba supports the creation of universal functions (ufuncs) that operate element-wise on arrays and C callbacks that can be invoked from external code. These features extend Numba's utility beyond simple function acceleration to enable integration with broader scientific computing ecosystems.

The repository demonstrates substantial community engagement and active maintenance. GitGenius tracking data shows a median issue and pull request response latency of 24.3 hours across 832 tracked items, indicating responsive project governance. The most frequently opened issues relate to feature requests (220 items), with bug reports on incorrect behavior (79 items) and stale issues (78 items) also prominent. The project's core maintenance is driven by a small group of highly active contributors, with esc leading at 831 tracked events, followed by gmarkall with 691 events and sklam with 372 events. This concentrated contributor activity reflects the specialized nature of compiler development and the deep expertise required to maintain LLVM integration.

Numba's influence extends across the broader Python ecosystem, as evidenced by overlapping contributors with major projects including Microsoft's VSCode, SymPy, and CPython itself. This cross-pollination suggests that Numba's development practices and technical approaches inform and are informed by work on complementary tools and the Python language itself.

The project is distributed via PyPI and documented comprehensively at numba.readthedocs.io, with interactive demo notebooks available through mybinder. Community discussion occurs on the Numba discourse forum, providing a dedicated space for users to seek help and discuss development directions. The combination of powerful compilation capabilities, active maintenance, and strong community infrastructure positions Numba as a foundational tool for Python-based high-performance computing and scientific applications.

numba
by
numbanumba/numba

Repository Details

Fetching additional details & charts...