Julia'da (R veya Matlab'dan farklı olarak), devredilen kodun genellikle vektörel koddan daha hızlı olduğunu düşündüm. Ama ben böyle bir durum bulamadım. İşte bir örnek:Neden bu devectorized Julia kodu 20x fazla yavaş?
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)
Vektörel kod neden bu kadar hızlı? Bu, devredilmiş kodun 10 kat fazla bellek ayırdığını gösteriyor. Ancak, sadece birkaç bayt, herhangi bir sayıda floatın katlanması için tahsis edilmelidir. Devredilmiş kodu yazmak için bir yol var mı, böylece çok fazla bellek ayırmıyor ve dolayısıyla vektörel koddan daha hızlı mı çalışıyor?
Teşekkürler!
"_I thought ..._" Bu doğanın iddialarını desteklemek için her zaman bazı kanıtlar sunmalısınız. – csmckelvey
Elbette, Julia'da ne kadar hızlı devredilmiş kodun olabileceğini gösteren bir yayın var: http://www.johnmyleswhite.com/notebook/2013/12/22/the-relationship-between-vectorized-and-devectorized-code/ – Jeff