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

Convert blocked data structures in FV3atm to contiguous arrays #2294

Closed
climbfuji opened this issue May 22, 2024 · 0 comments · Fixed by #2183
Closed

Convert blocked data structures in FV3atm to contiguous arrays #2294

climbfuji opened this issue May 22, 2024 · 0 comments · Fixed by #2183
Labels
enhancement New feature or request

Comments

@climbfuji
Copy link
Collaborator

Description

In preparation for the transition to the next-generation CCPP framework code generatore capgen, we should try to convert the blocked GFS DDTs used in FV3atm and any code related to it to contiguous arrays. For the purpose of threading, we can use new CCPP framework capabilities in ccpp_prebuild that send chunks of the contiguous arrays to the physics during the time integration (run) phase for OpenMP parallel processing.

Most NWP models have moved to contiguous arrays + chunking as described above, because performance comparisons (for example at UCAR/CISL) showed better performance. In addition, the code is less complicated.

Solution

  1. Implement the above solution. Ideally, the regression tests all pass with b4b identical results. This means making fewer changes than potentially possible to achieve b4b.
  2. Compare performance of the new code against the existing code

This will open the possibilities to further optimize the code in a follow-up PR.

Alternatives

Implement blocked data structures in the next generation CCPP framework code generator.

Related to

NCAR/ccpp-framework#314

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
1 participant