- 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.