## The Julia Language hits a new speed milestone

I first mentioned Julia, a new language for high performance scientific computing, back in the February edition of a Month of Math software and it certainly hasn’t stood still since then. A WalkingRandomly reader, Ohad, recently contacted me to tell me about a forum post announcing some Julia speed improvements.

Julia has a set of micro-benchmarks and the **slowest of them is now only two times slower than the equivalent in C**. That’s compiled language performance with an easy to use scripting language. Astonishingly, Julia is faster than gfortran in a couple of instances. Nice work!

Comparison times between Julia and other scientific scripting languages (MATLAB, Python and R for instance) for these micro-benchmarks are posted on Julia’s website. The Julia team have included the full benchmark source code used for all languages so if you are an expert in one of them, why not take a look at how they have represented your language and see what you think?

Let me know if you’ve used Julia at all, I’m interested in what people think of it.

I did use Julia for some use-and-throw functions and utilities. It was quite fast, reminds me of Matlab very much. I’m in a wait-n-see mode for the next 6 months or so, until the language becomes more stable. I’m wanting to use it !

This is teh first i’m hearing of this. But based on the benchmarks i’m shocked about the performance of javascript. had no idea it has gotton this good.

Have you seen the following for doing numerics with Javascript? http://www.numericjs.com/

My impressions regarding Julia: today I wrote my first Julia program. It involves the simulation of a diffusion process requiring the generation of quantiles from a Gaussian mixture, which is a nonlinear optimization problem (there are no closed form formulae for quantiles generation from mixture distributions).

Given this preamble, consider that I frist wrote a very efficient Matlab program (pure Matlab, no mex): it has been tested, profiled and optimised thoroughly for weeks, so I can say it’s not a naive implementation. Well, my Julia version consists in simply taking the Matlab files, make some obvious substitutions (e.g. a[i] in place of a(i) for array indexing), rewrite in Julia the ‘fzero’ function shipped with Octave, and that’s basically it…I haven’t used any of the tools that would push Julia even further (e.g. type delaration, de-vectorisation,…). I have been extremely “lazy”…and still, I got a 35x acceleration with respect to the Matlab version!

With more effort a Julia expert could gain even more out of this.

Impressive!

I think the key thing here is still Javascript’s speed. For a ubiquitous language you can run on anything, and which has immense corporate investment behind it continually making if faster I think JS really is the future.

If only we had a nice JS dataframe class.

@Umberto

Which Matlab version? R2012a 64bit?

Julia is still not matured tool. I do not believe that during this year will be. Just try to reproduce micro-benchmark results!?

@poi

I used Matlab R2011a 64 bit for Windows

I’m slightly suspicious of their benchmarks, given that they compiled their C++ versions with Clang. I’d have to see some benchmarks relative to GCC for their claims to be more impressive. It’s not surprising that Julia and C++ are close if under the hood both are using LLVM.

It will be interesting to see how Octave does once their JIT engine is completed.

Really interesting benchmark comparison and I’ve never heard of Julia before so thanks for sharing…

I’ve been using julia for a few months. It’s still evolving (a kind way of saying it’s immature), the docs are great but don’t mention all available functionality, you really have to keep up with github commits, etc….

Despite all this, I’ll never willingly write matlab or octave code again — I’m 100% sold on julia’s elegance, conciseness, and (yes) speed.