Ho pensato che in Julia (a differenza di R o Matlab) il codice devectorizzato era spesso più veloce del codice vettoriale. Ma non sto trovando questo il caso. Ecco un esempio:Perché questo codice Julia devectorizzato oltre 20 volte è troppo lento?
julia> x = Float64[1:10000000];
julia> y = Array(Float64, length(x));
julia> @time for i = 1:length(x) y[i] = exp(x[i]) end;
elapsed time: 7.014107314 seconds (959983704 bytes allocated, 25.39% gc time)
julia> @time y = exp(x);
elapsed time: 0.364695612 seconds (80000128 bytes allocated)
Perché il codice vettoriale è molto più veloce? Sembra che il codice devectorizzato stia allocando più di 10 volte la memoria. Ma solo pochi byte devono essere allocati per esponenziare qualsiasi numero di float. C'è un modo per scrivere il codice devectorizzato in modo che non assegni così tanta memoria, e quindi funzioni più velocemente del codice vettoriale?
Grazie!
"_Io ho pensato ..._" Dovresti sempre fornire delle prove per supportare affermazioni di questo tipo. – csmckelvey
Certo, ecco un post che dimostra quanto può essere più veloce il codice devectorizzato in Julia: http://www.johnmyleswhite.com/notebook/2013/12/22/the-relationship-between-vectorized-and-devectorized-code/ – Jeff