Retrieving simulator metadata
About to remove num_compartmenrs() on cable_cell as part of the discretization revamp, but we don't have anything roughly equivalent to replace it. It was being used as a proxy for computational work, reported in example and benchmark code.
The best place from which to extract this sort of information is the arb::simulator object — it has access to the cell groups, which in turn have a much more direct view on to their computational load and resource usage. The schema for representing this data must be flexible, in order to accommodate the various cell-kind specific information we could be interested in.
As a first step, I propose an arb::simulation::info() method that returns a dictionary-hierarchy of key-value pairs (keys as strings, values as doubles, say.) We should also provide (programmatically or otherwise) a versioned and documented schema for this information: a new schema can take the Arbor version, but it does not have to be updated every time the version of Arbor is changed.
This sort of interface is not without potential issues: see malloc_info() and malloc_stats() as cautionary examples.
I agree with this reasoning. Compartments are no longer a fundamental property of cable_cells: they are an artifact of the lowered model, and in many cases they are a poor proxy for "computational effort" anyway.