CellML Discussion List

Text archives Help


[cellml-discussion] Binary and source snapshots for PCEnvonWin32and Linux


Chronological Thread 
  • From: alan.garny at physiol.ox.ac.uk (Alan Garny)
  • Subject: [cellml-discussion] Binary and source snapshots for PCEnvonWin32and Linux
  • Date: Wed, 25 Oct 2006 06:42:35 +0100

Hi Andrew,

> -----Original Message-----
> From: cellml-discussion-bounces at cellml.org
> [mailto:cellml-discussion-bounces at cellml.org] On Behalf Of
> Andrew Miller
> Sent: 25 October 2006 00:17
> To: For those interested in contributing to the development of CellML.
> Subject: Re: [cellml-discussion] Binary and source snapshots
> for PCEnvonWin32and Linux
> Alan Garny wrote:
> > Please find attached a ZIP file that contains my model.
> Otherwise, the
> > process that was taking 100% of the CPU was cellml_corba_server.
> > Regarding Linux, I got exactly the same behaviour, but as I said I
> > only tried with one integrator (Implicit Gear (M=1)).
> A few questions about your code, since profiling reveals
> where my code is spending its time, and I am surprised that
> your code does not need to spend similar time in the same places:
>
> 1) 74% of the model evaluation time is spent computing
> exponentials and powers. Are you using the standard library
> functions from Delphi for this, or did you implement some
> sort of interpolated lookup table or similar? Do you pull out
> fragments of equations which can be computed early? (my code
> could do better if I added support for this).

COR converts the model into machine code, including exponential and power,
so could consider that as being more or less Delphi code. We don't use any
lookup table, execute some code earlier or anything, not for single cell
modelling.

> 2) 62% of model evaluation time is spent computing Jacobians
> (this is an overlapping set with the above time, since I
> compute Jacobians numerically, which requires that I
> recompute the other variables after I perturb the rate
> variables, so I can compute the correct rates). Do you
> compute your Jacobians analytically or numerically? Do you
> keep a Jacobian cache, and try to predict when you can reuse
> a Jacobian? Do you unroll your Jacobian function across
> variables, and then do some logic so you only have to
> recompute the variables needed to work out the rate?
> Any similar optimisations like this?

I don't do anything special here to be honest. I compute the Jacobians
numerically whenever the integrator I chose requires me to do so. I don't
use any cache or anything.

Alan.





Archive powered by MHonArc 2.6.18.

Top of page