You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a discussion of @jlippuner 's sparse walkthrough #586
Wishlist:
Can we have packs that only pull in allocated variables on the host side?
Currently comm buffers are all pre-allocated whether or not the variable is. This is something that we may want to change, depending on "runtime experience". There are trade-offs between computation and memory here.
For Jonas's sparse advection example, numbers are:
With sparse/fake sparse: ~38s
Compile-time disabled sparse: ~34s
Implies about a 20% overhead for the sparse machinery. However this example is very artificial and essentially a worst-case scenario as far as sparse overhead imposed on the run time. Real examples probably have even less overhead
Of the things above, my biggest concerns from a practical perspective are (in order) the pre-allocation of the communications buffers and the possibility that individual components could be falling out of sync.
The pre-allocation issue is important for components which are localized within a large simulation (especially in 3D). That can be a huge amount of memory, and it would not seem to be a huge issue to only allocate buffers where the neighbors have allocated data on the mesh proper.
The sync issue is perhaps more complicated. Certainly some quantities need to be in sync, even if some components are zero everywhere (near the boundary at least). Most quantities like that (tied to a material) need to be able to be allocated to be filled in as a source term if nothing else. There are likely other use cases that I'm not considering where different components assigned to the same sparse index need not all be allocated, but that seems like a later improvement to the infrastructure than the more relevant "allocate all of the quantities associated with index n now" path.
This is a discussion of @jlippuner 's sparse walkthrough #586
Wishlist:
Miscelany
The text was updated successfully, but these errors were encountered: