10 comments

[ 3.1 ms ] story [ 34.0 ms ] thread
I just flipped through the docs, and this looks amazing.

It would be nice to see some benchmarks.

If Numba lives up to expectations, Travis Oliphant should be knighted.

What benchmarks would be the most relevant? speed.pypy.org?
I think many people would think that's a good set of benchmarks.

Personally, numerical computing is more important to me. So the 7 benchmarks listed at julialang.org seem great to me.

This is pretty close to what I'm doing for my PhD research-- it's an annoyingly hard problem! Travis will probably make smarter design choices than me, but my project has ended up being of limited use due to the non-obvious subset of Python we are able to accelerate. Advice for anyone else trying to add a JIT on top of an existing language: either craft a DSL with extremely well defined boundaries or support the whole language from the beginning.
From the numpy mailing list (http://mail.scipy.org/pipermail/numpy-discussion/2012-March/...):

(summarizing how Numba differs from Unladen Swallow)

-----

>> what is the difference to http://www.python.org/dev/peps/pep-3146/ ?

To fully expound the difference would take a lot of discussion. But, summarizing:

* Numba is not nearly as ambitious as US (Numba will be fine with some user-directed information and with a subset of the language that gets compiled)

* Numba will focus on compilation rather than JITing --- in other words it won't be trying to detect hot-spots and compile segments (actually LLVM is not a good candidate for that sort of thing as it is not a very fast or memory-efficient compiler for a lot of reasons, I believe this is why PyPy does not use it anymore, for example).

* Numba will be much closer to Cython in spirit than Unladen Swallow (or PyPy) --- people who just use Cython for a loop or two will be able to use Numba instead

* Numba will borrow the idea of call-sites from IronPython wherein a function is replaced by a generic function that dispatches based on input types to either cached compiled code for the types specified or the generic function.

* Numba will be mainly about trying to leverage the code-generation of LLVM which multiple hardware manufacturers are using (Intel's OpenCL support, Nvidia's PTX backend, Apple's CLang, etc.) for NumPy arrays

-Travis

(comment deleted)
Judging my what I heard, Numba was quite the talk of the town at Pycon (though this could be totally biased - I wasn't there so can't comment first hand!)