-
Notifications
You must be signed in to change notification settings - Fork 283
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow cubes/coords/etc to share data #3172
Comments
Some key points from my prior thought on this ...
|
Iris 3.2 and the unstructured data modelSince v3.2 / unstructured, we do finally get cubes which share some components : that is, any cube.mesh Summary of some relevant facts about new datamodel objectsBasic relevant facts + ideas
Mesh
MeshcoordsAre a sort of "convenience" component ..
Mesh location coordinates and Connectivites
Sharing of dimensional components (potentially big arrays)This is a relevant issue, simply because unstructured data comes with a lot of associated mesh information : large coordinate + connectivity arrays Mesh Coordinates and Connectivities are effectively shared between cubes, since they belong to the Mesh, which also is. Any related AuxCoord/CellMeasure/Ancil on the unstructured dimension can not be shared
|
Discussed briefly offline with @hdyson, since he and IIRC @cpelley were the original users most concerned about the inefficiency of this. His recollection of what "the problem" to be addressed was, was somewhat different ... The thing is, sharing of partial data arrays by multiple cubes is already possible
|
In the course of the above discussion, I rather revised my thoughts. My understanding is that the major opportunity for inefficiency is where multiple cubes contain identical components, such as aux-coords, ancillary-variables or cell measures. If all those cube-components' data may be realised, then there is an obvious inefficiency. So, in the lazy case, it is quite possible that some cube operations might load all that data, or at least transiently fetch it multiple times (e.g. within computation of a lazy result, or a save). In short, we may need to focus more carefully on what the common problems cases actually are, since I think there has been some confusion here in the past, and all the solutions so far proposed may have potential drawbacks. |
In some cases it is highly advantageous for cubes to be able to share a data object, which Iris currently cannot handle. This means Iris can in some cases produce views of data and not copies.
Here's @pp-mo's take on this topic:
There is some prior on this topic, including #2261, #2549 and #2584, #2681 and #2691 . These reflect the importance of this topic. However, given the potential for unexpected behaviour that this change will bring, further thought is still required.
The text was updated successfully, but these errors were encountered: