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! >
