CellML Discussion List

Text archives Help


[cellml-discussion] pcenv development priorities


Chronological Thread 
  • From: p.nielsen at auckland.ac.nz (Poul Nielsen)
  • Subject: [cellml-discussion] pcenv development priorities
  • Date: Mon, 30 Oct 2006 16:15:26 +1300

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
> cellml-discussion at cellml.org
> http://www.cellml.org/mailman/listinfo/cellml-discussion





Archive powered by MHonArc 2.6.18.

Top of page