CellML Discussion List

Text archives Help


[cellml-discussion] pcenv development priorities


Chronological Thread 
  • From: ak.miller at auckland.ac.nz (Andrew Miller)
  • Subject: [cellml-discussion] pcenv development priorities
  • Date: Mon, 30 Oct 2006 16:50:50 +1300

Poul Nielsen wrote:
> 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?
>
When you use CVODE with Newton/BDF method, the CVODE code seems to be
calculating a full dense matrix, so I don't expect this would be causing
the differences between the results achieved by Andre and Alan and what
I am getting in PCEnv. I expect the difference is probably due to a
different number of steps, suggesting that the integrators in CVODE are
converging faster.

That said, CVODE also allows Krylov (iterative) solvers to be used,
which do seem to approximate the Jacobian. We could provide this as an
option to PCEnv users, and if they don't get good convergence, then they
can switch back to a Newton solver.

Best regards,
Andrew





Archive powered by MHonArc 2.6.18.

Top of page