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

ccpp_prebuild.py: add capability to use chunks of contiguous arrays in the run phase #520

Closed
climbfuji opened this issue Dec 28, 2023 · 0 comments · Fixed by #519
Closed
Assignees
Labels
capgen-unification Issues/PRs necessary for capgen/prebuild unification ccpp_prebuild bugs, requests, etc. that involve ccpp_prebuild enhancement

Comments

@climbfuji
Copy link
Collaborator

Description

As part of the "master plan" to transition all users of CCPP to the next-generation framework capgen, we want to add the capability to ccpp_prebuild to use contiguous arrays in the init, timestep_init, timestep_finalize, and finalize phases, while sending chunks of these arrays to the physics in the run phase for parallel processing (via OpenMP etc.).

We have good reasons to believe that this is faster than using blocked data structures as it is currently the case for the UFS Weather Model (and the SCM, although it doesn't matter here since it only uses one block).

If we can demonstrate that contiguous arrays are faster and easier to implement and manage, then we can transition the UFS Weather Model and other models to those arrays, remove support for blocked data structures, and remove the need to add support for blocked data structures to capgen.

Solution

Add capability to ccpp_prebuild to use contiguous arrays / chunks of contiguous arrays, similar to how it is done in capgen.

Alternatives (optional)

Add support for blocked data structures to capgen.

Related to (optional)

n/a

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
capgen-unification Issues/PRs necessary for capgen/prebuild unification ccpp_prebuild bugs, requests, etc. that involve ccpp_prebuild enhancement
Projects
Status: main (Done)
Development

Successfully merging a pull request may close this issue.

1 participant