Dear Chris,

I made a mistake in the old benchmarks - updated ones are now better. 
Knowing how to make function in-place would be great though!

Best
Simon

On Thursday, July 28, 2016 at 11:20:58 AM UTC+1, Simon Frost wrote:
>
> Dear Chris,
>
> I've managed to get a little better performance by adding a loop and 
> avoiding some type conversions.
>
> https://gist.github.com/sdwfrost/8a0e926a5e16d7d104bd2bc1a5f9ed0b
>
> I'm still getting about a 7-fold slowdown from using the function call (as 
> an immutable object). How would one make my function F in-place, still 
> using a similar generic API?
>
> Best
> Simon 
>
> On Thursday, July 21, 2016 at 4:35:56 PM UTC+1, Chris Rackauckas wrote:
>>
>> You can change line 70 to be in place with a loop:
>>
>> for i in 1:length(x)
>>   x[i] = x[i] + deltax[i]
>> end
>>
>> I don't think you can do
>>
>> x[:] =x .+deltax
>>
>> as fancy syntax here since the x is part of the statement though (you can 
>> check). This should cut out an allocation here and bring down the time. 
>>
>> Do you need to use a WeightVec? If you do (for future things), keep the 
>> WeightVec separate from the Vector so that the types aren't changing. let 
>> wpf always be the WeightVec you make from pf. Otherwise pf isn't type 
>> stable. It would be best if you could make F in-place as well since this is 
>> where your bottleneck is.
>>
>> On Thursday, July 21, 2016 at 7:56:51 AM UTC-7, Simon Frost wrote:
>>>
>>> Dear All,
>>>
>>> I'm having some issues with code speed for some Gillespie type 
>>> simulations. The toy model is described here:
>>>
>>>
>>> http://phylodynamics.blogspot.co.uk/2013/06/comparing-performance-of-r-and-rcpp-for.html
>>> http://phylodynamics.blogspot.co.uk/2013/06/an-sir-model-in-julia.html
>>>
>>> I get good performance with my vanilla Julia code, but a more generic 
>>> implementation is slower:
>>>
>>> http://github.com/sdwfrost/Gillespie.jl
>>>
>>> The gist is here:
>>>
>>> https://gist.github.com/sdwfrost/1b4bce19faf2d7b8624cac048a36f32d
>>>
>>> Lines 57 and 70 appear to be the culprit:
>>>
>>> https://github.com/sdwfrost/Gillespie.jl/blob/master/src/SSA.jl
>>>
>>> I've tried some devectorisation, but in my hackery, I appear to get side 
>>> effects, where the argument x0 passed to the ssa function is modified. Any 
>>> tips?
>>>
>>> Best
>>> Simon
>>>
>>

Reply via email to