I am very new to Julia. I'm working on adding some features to a fairly simple Fortran simulation, and decided to try writing it in Python to make it easier to explore variations. After a lot of optimization work I got it within about 8x slower than the Fortran code. I had read about Julia and had wanted a reason to try it, so I thought I'd see if I could get closer to Fortran speeds in Julia. My initial results were depressingly slow (140x slower than Fortran and 17x slower than Python) and before trying to optimize it I tried some very simple benchmarks to try to understand how to get good performance from Julia. One I tried was two different versions of squaring each element of a 10,000 element array, one vectorized, and one for-loop. I fully expected there to be a large difference in performance of Python between the two, but I didn't expect Julia to be slower than Python in BOTH cases. I also expected the for loop and vectorized versions to be similar, if not the for loop faster given what I'd read about devectjorizing Julia code.
I'm sure I'm doing something wrong, but can someone point out what? Here are the results # Python Version import numpy as np n = 10000 x = np.linspace(0.0,1.0,n) y = np.zeros_like(x) %timeit y = x**2 %timeit y = [xi**2 for xi in x] 100000 loops, best of 3: 5.42 µs per loop 100 loops, best of 3: 3.19 ms per loop # Julia Version using TimeIt n = 10000 x = linspace(0.0,1.0,n) y = zeros(x) @timeit y = x.^2 @timeit y = [xi^2 for xi in x] 1000 loops, best of 3: 433.29 µs per loop 100 loops, best of 3: 8.57 ms per loop Thanks! Dallas Morisette
