<p>See <a href="http://arxiv.org/abs/1312.1431" rel="noreferrer">here</a> (section 4) for some peer-reviewed benchmarks which I personally worked on. The comparison was between Julia and PyPy.</p>
Julia performance compared to Python+Numba LLVM/JIT-compiled code
<p>The performance benchmarks for Julia I have seen so far, such as at <a href="http://julialang.org/" rel="nofollow noreferrer">http://julialang.org/</a>, compare Julia to pure Python or Python+NumPy.  Unlike NumPy, SciPy uses the BLAS and LAPACK libraries, where we get an optimum multi-threaded SIMD implementation.  If we assume that Julia and Python performance are the same when calling BLAS and LAPACK functions (under the hood), how does Julia performance compare to CPython when using Numba or NumbaPro for code that doesn't call BLAS or LAPACK functions?</p>

<p>One thing I notice is that Julia is using LLVM v3.3, while Numba uses llvmlite, which is built on LLVM v3.5.  Does Julia's old LLVM prevent an optimum SIMD implementation on newer architectures, such as Intel Haswell (AVX2 instructions)?</p>

<p>I am interested in performance comparisons for both spaghetti code and small DSP loops to handle very large vectors.  The latter is more efficiently handled by the CPU than the GPU for me due to the overhead of moving data in and out of the GPU device memory.  I am only interested in performance on a single Intel Core-i7 CPU, so cluster performance is not important to me.  Of particular interest to me is the ease and success with creating parallelized implementations of DSP functions.</p>

<p>A second part of this question is a comparison of Numba to NumbaPro (ignoring the MKL BLAS).  Is NumbaPro's <code>target="parallel"</code> really needed, given the new <code>nogil</code> argument for the <code>@jit</code> decorator in Numba?</p>