Andrew Miller wrote:
> David Nickerson wrote:
>   
>> Initial thoughts on 0.1rc1:
>>
>> Much improved integration performance, but have no time to fully test it ;-)
>>
>> It is painfully and prohibitively slow to load a model or to swap 
>> between models. Similarly for cloning a model. This seems true for both 
>> simple models with very few variables (i.e. 1952 Hodgkin & Huxley) and 
>> more complex models with many variables.
>>   
>>     
> A big chunk of the problem was due to the time taken for the code 
> generation (the remaining issue is the time taken to fetch and translate 
> the data into the RDF used at the Mozilla-side to describe the tree 
> control contents). For the Zhang SAN model from Alan Garny (which was 
> one of the slower models for code generation), callgrind reported that 
> code generation took 1,947,794,509 CPU operations to generate the code 
> prior to revision 585. With only the revision 585 memoisation patch, 
> that is down to 1,376,183,895 ops. With the revision 586 patch (which 
> finds source variables for all variables at the beginning, using a 
> disjoint sets data-structure, instead of individually finding source 
> variables using the CellML API), the time was further reduced to 
> 890,363,772 ops.
>   
Actually, the final performance is even better (I have been running them 
three times, but I forgot to divide the final figure by 3)...

Pre 585: 1,947,794,509
585 only: 1,376,183,895
585 + 586:  296,787,924


i.e. a 656% speedup from revisions 585 and 586 (for that particular 
model). That said, the CCGS is still only a small part of the CellML 
API, so it is still not clear that this should go on the branch.

Best regards,
Andrew

_______________________________________________
cellml-discussion mailing list
[email protected]
http://www.cellml.org/mailman/listinfo/cellml-discussion

Reply via email to