Dear Andrew

On 2006 Oct 30, at 15:52, Andrew Miller wrote:

> David Nickerson wrote:
>> Hi all,
>>
>>  From today's meeting minutes the following priorities were set  
>> for the
>> development of pcenv:
>>
>>     1.  Make an official release of what we have now, instead of just
>> snapshot releases.
>>     2. Try to improve integration performance, by using CVODE from  
>> the
>> SUNDIALS project.
>>     3. Investigate the possibility of getting Mac OSX support - Intel
>> only to start with.
>>     4. Get editing support for MathML and the CellML structure  
>> working.
>>     5. Add CellML Metadata support to the backend, and editing  
>> support
>> for this to the UI.
>>
>>
>> I'm just wondering if 2 is more important than 1?
>>
>>  From feedback so far, the performance of pcenv is very poor  
>> compared to
>> other tools. There is currently (to my knowledge) no firm idea if  
>> this
>> is due to the underlying technology being used by pcenv, or simply  
>> due
>> to the numerical integrators being used not being as good as what  
>> most
>> people are currently using.
>>
> Please refer to my messages on the 27th of this month, where I discuss
> the results of profiling it in callgrind.
>
> The major performance bottleneck is the the evaluation of the Jacobian
> function (I use the standard O(n^2) method for generating a dense
> Jacobian in an array, and most of the time is spent evaluating the
> variables). Although COR is closed source and so I cannot see exactly
> what it is doing. Given that COR apparently isn't doing any  
> optimisation
> here, it must be taking a comparable amount of time per Jacobian
> computation, so the difference must be in the number of calls to  
> compute
> the Jacobian.
This would depend on whether you require a full-rank update of the  
Jacobian at every iteration. You may get significant performance  
improvements if you use a low-rank update (e.g. rank-1 update with  
quasi-Newton approaches) with a relatively minor convergence rate  
penalty. For a rank-1 update you only need to evaluate n first  
differences, while with a full-rank update you need to evaluate n*(n 
+1)/2 second differences (where n os the number of dof). Could this  
be the root of the performance hit?
>> Seems it would be good to address this question now, because if using
>> something like CVODE still results in the same poor performance  
>> then I
>> think some serious thinking needs to be done about the underlying
>> technology before an official release of pcenv should be made.
> I understand that you already have CVODE working with CCGS, so perhaps
> you can give some indication of how well CCGS generated code works  
> with
> CVODE?
>
> Best regards,
> Andrew
>
> _______________________________________________
> cellml-discussion mailing list
> [email protected]
> http://www.cellml.org/mailman/listinfo/cellml-discussion

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

Reply via email to