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
