Whoo hoo! After replacing all the Dict's with appropriate composite types, I got an additional ~4x speed improvement. Combined with my previous work, the code is now 30x faster than the original. So now Julia should at least match Matlab. I uploaded the modified code to GitHub:
https://github.com/dcarrera/sim Cheers, Daniel. On 20 September 2015 at 16:08, Tim Holy <[email protected]> wrote: > String is not a concrete type. Consider ASCIIString or UTF8String. > > But if you don't need the flexibility of a Dict, a composite type will be a > huge improvement. > > --Tim > > On Sunday, September 20, 2015 03:55:43 PM Daniel Carrera wrote: > > Hi Steven, > > > > I am not the OP, I am trying to help the OP with his code. Anyway, the > > first thing I did was replace Dict{Any,Any} by the more explicit > > Dict{String,Float64} but that didn't help. I did not think to try a > > composite type. I might try that later. It would be interesting to figure > > out why the OP's code is so much slower in Julia. > > > > Cheers, > > Daniel. > > > > > > On 20 September 2015 at 15:20, Steven G. Johnson <[email protected]> > > > > wrote: > > > Daniel, you are still using a Dict of params, which kills type > inference. > > > Pass parameters directly or put them in (typed) fields of a composite > > > type. > > > > > > (On the other hand, common misconception: there is no performance need > to > > > declare the types of function arguments.) > >
