Skip to content
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

Abstraction for configuring kernels #3067

Closed
glwagner opened this issue Apr 18, 2023 · 1 comment · Fixed by #3125
Closed

Abstraction for configuring kernels #3067

glwagner opened this issue Apr 18, 2023 · 1 comment · Fixed by #3125
Assignees
Labels
abstractions 🎨 Whatever that means cleanup 🧹 Paying off technical debt distributed 🕸️ Our plan for total cluster domination

Comments

@glwagner
Copy link
Member

@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:

  1. Reduce communication as much as possible (for example, compute diagnostic variables wherever needed rather than communicating results)
  2. Compute the "interior" of the tendencies first, which do not require halo regions, while communication is occurring
  3. Once communication is finished, compute the "boundary regions" of the tendency

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).

@glwagner glwagner added cleanup 🧹 Paying off technical debt abstractions 🎨 Whatever that means distributed 🕸️ Our plan for total cluster domination labels Apr 18, 2023
@glwagner
Copy link
Member Author

@simone-silvestri make sure you link to this issue when you open a PR to close it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
abstractions 🎨 Whatever that means cleanup 🧹 Paying off technical debt distributed 🕸️ Our plan for total cluster domination
Projects
None yet
2 participants