I can get a further speedup by eliminating the x_n temporary variable, and
just using x[k,n] instead of x_n[k].  I did this because using Julia's
profiler <http://julia.readthedocs.org/en/latest/stdlib/profile/> showed
the x_n = x[:,n] line as one of the most computationally expensive.  This
brings my runtime down to .5 seconds.


On Sat, Apr 26, 2014 at 11:33 PM, Freddy Chua <[email protected]> wrote:

> I just hope that Julia can be faster than Java someday...
>
>
> On Sunday, April 27, 2014 2:03:28 PM UTC+8, Freddy Chua wrote:
>>
>> This code takes 60+ secs to execute on my machine. The Java equivalent
>> takes only 0.2 secs!!! Please tell me how to optimise the following
>> code.begin
>>
>> begin
>>   N = 10000
>>   K = 100
>>   rate = 1e-2
>>   ITERATIONS = 1
>>
>>   # generate y
>>   y = rand(N)
>>
>>   # generate x
>>   x = rand(K, N)
>>
>>   # generate w
>>   w = zeros(Float64, K)
>>
>>   tic()
>>   for i=1:ITERATIONS
>>     for n=1:N
>>       y_hat = 0.0
>>       for k=1:K
>>         y_hat += w[k] * x[k,n]
>>       end
>>
>>       for k=1:K
>>         w[k] += rate * (y[n] - y_hat) * x[k,n]
>>       end
>>     end
>>   end
>>   toc()
>> end
>>
>> Sorry for repeated posting, I did so to properly indent the code..
>>
>

Reply via email to