Abstraction for configuring kernels #3067
Labels
abstractions 🎨
Whatever that means
cleanup 🧹
Paying off technical debt
distributed 🕸️
Our plan for total cluster domination
Milestone
@simone-silvestri's recent work on scalable performance for the
HydrostaticFreeSurfaceModel
used the concept of "inner" and "boundary" regions to overlap communication and computation.The basic components are:
Point (1) requires us to compute diagnostic variables inside halo regions. This requires both expanded sizes and offsets for each diagnostic variable. Different diagnostic variables have different sizes --- the width of the diagnostics kernels depends on how many points are accessed.
Points (2) and (3) require computations over parts of the grid (reduced size + offset).
These considerations demand a nice abstraction so that the code for launching kernels is readable and understandable (and also concise).
The text was updated successfully, but these errors were encountered: