Thanks for the comments! Daniel and Kristoffer, I ran each of your code on my machine. Daniel's ran in 2.0 seconds on my laptop (~26% of time in gc); Kristoffer's ran in about 7 seconds on my laptop (~21% of time in gc). I'm not sure why Kristoffer's took so much longer to run for me than it did for him-- perhaps his machine is significantly better. Or maybe it's because I'm running in Juno and not from the command line?
As it stands, I can get the code to perform nearly as well as Matlab with Daniel's code and my latest version: https://gist.github.com/anonymous/cee196ee43cb9bf1c8b6 (note, when running I fixed the omission of "Prob_o" as an argument for "update_w", which is the right thing to do but saw no speed improvement). I think the primary difference is that Daniel defines types to store the parameters etc. (which more closely matches my original code), while my latest version passes all function arguments directly. On my laptop, these run in the neighborhood of 2-3 seconds (vs. 1.4 seconds for the Matlab code). Any thoughts on how I can beat the Matlab code? I would prefer to not (yet) get into possibilities like parallelization of the "i" for loop in "simulation.jl", since while I'm sure any parallelization would speed up the code, my impression is that Julia should be able to trump Matlab even before getting into anything like that. P.S.- In my latest version of the code (again, here: https://gist.github.com/anonymous/cee196ee43cb9bf1c8b6), in line 44 of run_sim() I have: #return s_array, w_array, b_array when I uncomment that line and run the code, I receive an error saying s_array doesn't exit. Can someone tell me why? I checked, and the "simulation" function indeed creates s_array as output, so I'm not sure why "run_sim" won't return it. On Sunday, September 20, 2015 at 10:49:06 AM UTC-5, Daniel Carrera wrote: > > > On 20 September 2015 at 17:39, STAR0SS <yu...@altern.org <javascript:>> > wrote: > >> The biggest problem right now is that Prob_o is global in calc_net. You >> need to pass it as an argument too. It's one of the drawback of having >> everything global by default, this kind of mistakes are sometimes hard to >> spot. >> > > But... calc_net does not use Prob_o ... ? > > > >> >> Otherwise the # get things in right dimensions for calculation below at >> line 55 is not necessary anymore. >> >> In these zeros(numO, 1) you don't need to put a 1, zeros(numO) gives you >> a vector of length numO, unlike in matlab where is gives you a matrix. >> >> > > I cleaned up the code and updated Github. No speed difference though. > > Cheers, > Daniel. > > >