Thomas,

I think the medium-long term goal is to bring those 1.5-2 comparisons 
closer to 1-1.2. If you can share some of your own benchmarks, often people 
will be able to point out refactoring tweaks you can make to further 
improve things, especially wrt memory allocation. Beating Fortran in serial 
for pure numerical calculations is challenging. The compilers for Fortran 
(are you using GNU, Intel, something else?) often perform more 
sophisticated optimizations that can't always be matched by LLVM, 
especially not in a JIT setting. It's taken some time even for Clang to get 
close to runtime performance parity with GCC for C/C++. Eventually "static" 
compilation of Julia code will hopefully be possible with a more expensive 
set of LLVM and code generation optimizations enabled for use cases like 
yours.

When you're within a factor of 2 trying to wring that last bit of 
performance out, and your benchmark is Fortran, it's time to start looking 
at SIMD vectorization, parallelism, and what kind of hardware your code is 
running on. AFAIK Fortran compilers are pretty good at auto-vectorizing for 
SSE, AVX, etc but perhaps Julia and LLVM can make these more accessible and 
easier to control. Is your code running in serial, or multithreaded with 
OpenMP, or on a distributed cluster with MPI? I'm not sure what's the 
largest HPC-class system people have run Julia on yet.

-Tony


On Tuesday, June 3, 2014 2:25:19 AM UTC-7, Thomas Moore wrote:
>
> Julia is still a very young language, and it's common to hear people 
> talking of hoped for improvements in the compiler which will further speed 
> up the language. According to the current benchmarks, Julia is consistently 
> (and incredibly!) within a factor 1.5-2 or Fortran's speed, and this is 
> consistent with my observations. I'm wondering if anyone has any idea of 
> how much we can realistically expect this to improve? Are there any 
> fundamental barriers which will prevent Julia catching up or even 
> overtaking Fortran on the raw speed front? 
>
> I ask as I'm currently doing some work in numerical simulations, where we 
> run experiments whose run-time is measured in weeks. For this work, Julia 
> running slower by a factor of 1.5 or 2 is not really tolerable.
>
> Thanks!
>

Reply via email to