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

Investigate switching allocation of data used by physics to contiguous arrays #748

Open
climbfuji opened this issue Dec 28, 2023 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@climbfuji
Copy link
Collaborator

Description

See the PR description NCAR/ccpp-framework#519 (comment) for a detailed explanation on why we want to investigate switching the allocation of data used by physics to contiguous arrays (and then send chunks of these contiguous arrays to the time integration for OpenMP-parallel processing).

This is part of a bigger project to transition all models using CCPP to the next-generation code generator (capgen instead of ccpp_prebuild).

Solution

This involves multiple steps:

  1. Add capability to use contiguous arrays and passing chunks of them to the time integration phase to the CCPP framework (ccpp_prebuild)
  2. Address the known issues with how we handle potentially inactive (unallocated) data that gets sent to the physics. The currently supported method will not work with contiguous arrays, causes a lot of problems, and is not acceptable for operational implementation.
  3. Convert physics data types in fv3atm to contiguous and make any necessary changes that go along with it.
  4. Perform performance comparisons to check that contiguous arrays are at least as performant as the currently used blocked data structures.

Alternatives

Do nothing. This will delay the transition to capgen and will leave problems with inactive data unresolved.

Testing:

Full testing (b4b, performance, ...) will be done at each step of the process, as applicable.

Dependent PRs:

n/a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant