CellML Discussion List

Text archives Help


[cellml-discussion] CellML API 1.0rc1 (release candidate for CellMLAPI 1.0) out


Chronological Thread 
  • From: ak.miller at auckland.ac.nz (Andrew Miller)
  • Subject: [cellml-discussion] CellML API 1.0rc1 (release candidate for CellMLAPI 1.0) out
  • Date: Mon, 06 Nov 2006 16:39:50 +1300

David Nickerson wrote:
> Initial thoughts on 0.1rc1:
>
> Much improved integration performance, but have no time to fully test it ;-)
>
> It is painfully and prohibitively slow to load a model or to swap
> between models.
This depends on the complexity of the model you are working with. The
core of the issue is that features like putting the units on the
integration parameters pane are achieved by going through the CCGS (this
requires O(n^2) time for n variables, because we have to iterate until
all equations have an associated procedural evaluation). We could
actually assign units without having to do this, if the interface was
redesigned, but we still couldn't, for example, tell the user if the
model could be integrated (and features like
http://www.cellml.org/tools/pcenv/bugs/20 definitely need this).
> Similarly for cloning a model.
I think it is the automatic selection of the model after it is cloned
which is slow (i.e. the same as above), not the underlying clone operation.
> This seems true for both
> simple models with very few variables (i.e. 1952 Hodgkin & Huxley) and
> more complex models with many variables.
>
> If I have a graph V vs time linked to the selected model, I would expect
> the graph to remain valid when I clone the model and run a simulation.
> Currently the V variable becomes undefined and I have to reselect the
> (same) V variable from the list.
You haven't renamed the variable or the component, I assume? It stores
variables by the index of the import (i.e. the order it started loading,
0 for the main model), the component name, and the variable name. One
possibility is that the import number could be different (perhaps it
started loading later, because the order the importing models finished
loading was different). There is no generic way to tie imports together
between two loads, since they don't need to have any unique name (and
the same model can be imported more than once), so I'm not sure how we
could resolve that issue.
> The time variable remains valid. Once
> simulations have been run I seem to be able to swap between models and
> have the graph remain valid.
>
> I really dislike the idea of using points/graph to discretise my graphs.
> I want to be able to say give me a point every 1 ms or every 10 ms.
>
As a result of discussions on cellml-discussion (of which you were a
part of, and seemed to have agreed with the outcome), it was decided
that the CIS would no longer produce points interpolated onto a regular
grid, but would instead utilise the step size of the integrator to
ensure that more data is provided in regions of the graph where lots of
detail is needed, and less data is shown in relatively linear parts of
the graph. The problem is, if you do this, you get far too many points
if you are doing large runs with small error tolerances. The points /
graph control does not define a regular grid on which points are
gathered, but rather, is used to define a minimum distance between steps
required for the point to be reported.
> I am not convinced that I need to clone my model just to change the
> integration parameters and re-integrate. This is especially painful
> given how slow it is to clone and then select the cloned model. This
> seems like a feature forced upon the user to support the idea of another
> client accessing the same model through the cellml_corba_server.
The freezing of models is not for the benefit of cellml_corba_server,
but rather, to enforce the one-to-one relationship between models and
sets of results. If we didn't enforce this, we could have one model in
the model selector, with more than one associated run, and there would
be no way to know what parameters the data you have came from (unless
you are proposing throwing away the old data).
> Perhaps
> if it wasn't so slow to change models in the GUI then this wouldn't be
> an issue.
>
I can look at ways to improve this, but I think it would require too big
a change to land on the 0.1 branch.
> Standard user interface behaviour suggests that when I right click on
> something but choose nothing from the menu that pops up then either
> nothing is done or the menu remains visible when I release the mouse
> button. This is true for most right-clicks I have tried, but right
> clicking on a model in the model tree will always result in the model
> rename dialog box unless I specifically choose some option or navigate
> the mouse away from the menu. If I hold the button down, it is clear
> that the rename option is not selected, yet as soon as I release the
> mouse button up pops the dialog box.
>
I have been unable to reproduce this. A few questions:
Where was the cursor when you released the right mouse button?
Had you chosen rename earlier but not got the dialog box yet?
Can you reproduce this every time, or is it only an occasional issue?
What platform?
Do you ever see the same issue in Mozilla on your platform?

Best regards,
Andrew





Archive powered by MHonArc 2.6.18.

Top of page