skip to main content
10.1145/2833157.2833162acmconferencesArticle/Chapter ViewAbstractPublication PagesscConference Proceedingsconference-collections
research-article
Public Access

Numba: a LLVM-based Python JIT compiler

Published: 15 November 2015 Publication History

Abstract

Dynamic, interpreted languages, like Python, are attractive for domain-experts and scientists experimenting with new ideas. However, the performance of the interpreter is often a barrier when scaling to larger data sets. This paper presents a just-in-time compiler for Python that focuses in scientific and array-oriented computing. Starting with the simple syntax of Python, Numba compiles a subset of the language into efficient machine code that is comparable in performance to a traditional compiled language. In addition, we share our experience in building a JIT compiler using LLVM[1].

References

[1]
Chris Lattner and Vikram Adve. LLVM: A compilation framework for lifelong program analysis and transformation. pages 75--88, San Jose, CA, USA, Mar 2004.
[2]
Travis E. Oliphant. Python for scientific computing. Computing in Science Engineering, 9(3):10--20, May 2007.
[3]
S. van der Walt, S.C. Colbert, and G. Varoquaux. The numpy array: A structure for efficient numerical computation. Computing in Science Engineering, 13(2):22--30, March 2011.
[4]
S. Behnel, R. Bradshaw, C. Citro, L. Dalcin, D.S. Seljebotn, and K. Smith. Cython: The best of both worlds. Computing in Science Engineering, 13(2):31--39, March 2011.
[5]
John Nickolls, Ian Buck, Michael Garland, and Kevin Skadron. Scalable parallel programming with cuda. Queue, 6(2):40--53, March 2008.
[6]
HSA platform system architecture specification, version 1.0 final, 2015.
[7]
Armin Rigo. Representation-based just-in-time specialization and the psyco prototype for python. In Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, pages 15--26. ACM, 2004.
[8]
Reid Kleckner. Unladen Swallow retrospective. http://qinsb.blogspot.fr/2011/03/unladen-swallow-retrospective.html, 2015.
[9]
Carl Friedrich Bolz, Antonio Cuni, Maciej Fijalkowski, and Armin Rigo. Tracing the meta-level: Pypy's tracing jit compiler. In Proceedings of the 4th Workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems, ICOOOLPS '09, pages 18--25, New York, NY, USA, 2009. ACM.
[10]
Python documentation: dis package. https://docs.python.org/3.4/library/dis.html, 2015.
[11]
Andy Kaylor. Object caching with the kaleidoscope example program --- LLVM blog. http://blog.llvm.org/2013/08/object-caching-with-kaleidoscope.html, 2015.

Cited By

View all
  • (2024)Development of equation of motion deciphering locomotion including omega turns of Caenorhabditis eleganseLife10.7554/eLife.92562.312Online publication date: 29-Apr-2024
  • (2024)Development of equation of motion deciphering locomotion including omega turns of Caenorhabditis eleganseLife10.7554/eLife.9256212Online publication date: 29-Apr-2024
  • (2024)Computational modeling for medical data: From data collection to knowledge discoveryThe Innovation Life10.59717/j.xinn-life.2024.1000792:3(100079)Online publication date: 2024
  • Show More Cited By

Index Terms

  1. Numba: a LLVM-based Python JIT compiler

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    LLVM '15: Proceedings of the Second Workshop on the LLVM Compiler Infrastructure in HPC
    November 2015
    74 pages
    ISBN:9781450340052
    DOI:10.1145/2833157
    • Conference Chair:
    • Hal Finkel
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 15 November 2015

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. LLVM
    2. Python
    3. compiler

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    SC15
    Sponsor:

    Acceptance Rates

    LLVM '15 Paper Acceptance Rate 7 of 12 submissions, 58%;
    Overall Acceptance Rate 16 of 22 submissions, 73%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)1,174
    • Downloads (Last 6 weeks)123
    Reflects downloads up to 29 Oct 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Development of equation of motion deciphering locomotion including omega turns of Caenorhabditis eleganseLife10.7554/eLife.92562.312Online publication date: 29-Apr-2024
    • (2024)Development of equation of motion deciphering locomotion including omega turns of Caenorhabditis eleganseLife10.7554/eLife.9256212Online publication date: 29-Apr-2024
    • (2024)Computational modeling for medical data: From data collection to knowledge discoveryThe Innovation Life10.59717/j.xinn-life.2024.1000792:3(100079)Online publication date: 2024
    • (2024)GeostatsPy: Open-Source Geostatistics in PythonApplied Spatiotemporal Data Analytics and Machine Learning [Working Title]10.5772/intechopen.114981Online publication date: 31-Jul-2024
    • (2024)Phytoplankton retention mechanisms in estuaries: a case study of the Elbe estuaryNonlinear Processes in Geophysics10.5194/npg-31-151-202431:1(151-164)Online publication date: 13-Mar-2024
    • (2024)openAMUNDSEN v1.0: an open-source snow-hydrological model for mountain regionsGeoscientific Model Development10.5194/gmd-17-6775-202417:17(6775-6797)Online publication date: 12-Sep-2024
    • (2024)High Accuracy Photodissociation Rates in VULCAN with MCRTResearch Notes of the AAS10.3847/2515-5172/ad390f8:4(96)Online publication date: 3-Apr-2024
    • (2024)Size–Stellar Mass Relation and Morphology of Quiescent Galaxies at z ≥ 3 in Public JWST FieldsThe Astrophysical Journal10.3847/1538-4357/ad2512964:2(192)Online publication date: 29-Mar-2024
    • (2024)Low-Energy Cosmic Rays and Associated MeV Gamma-Ray Emissions in the Protoplanetary SystemUniverse10.3390/universe1008031010:8(310)Online publication date: 27-Jul-2024
    • (2024)StarDICE II: Calibration of an Uncooled Infrared Thermal Camera for Atmospheric Gray Extinction CharacterizationSensors10.3390/s2414449824:14(4498)Online publication date: 11-Jul-2024
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media