Add a testing framework for blocked data structures in ccpp-prebuild, and run ccpp-prebuild tests in CI
The purpose of this PR is to prepare for upcoming changes to ccpp-prebuild to facilitate the transition to capgen. In a nutshell, we are going to add support for chunked data arrays and the use of horizontal_loop_begin / horizontal_loop_end to ccpp-prebuild. With that, we can switch the UFS and other models that use blocked data structures (SCM, NEPTUNE) over to contiguous arrays that get chunked up for parallel processing using OpenMP threading.
The expectation is that we'll be able to demonstrate similar or better performance and that we'll be able to remove support for blocked data structures afterwards (and in doing so won't have to add it to capgen).
This PR will be followed by a PR that adds ccpp-prebuild capabilities for contiguous data arrays, together with a test for the new functionality. After that, we can start working on the ufs-weather-model/SCM/NEPTUNE interface.
Testing:
test removed: n/a
tests added: ccpp-prebuild test for blocked data structures, added all ccpp-prebuild tests to CI
unit tests: n/a
system tests: n/a
manual testing: Ran existing and new ccpp-prebuild tests locally on my macOS
Add a testing framework for blocked data structures in ccpp-prebuild, and run ccpp-prebuild tests in CI
The purpose of this PR is to prepare for upcoming changes to
ccpp-prebuild
to facilitate the transition tocapgen
. In a nutshell, we are going to add support for chunked data arrays and the use ofhorizontal_loop_begin
/horizontal_loop_end
toccpp-prebuild
. With that, we can switch the UFS and other models that use blocked data structures (SCM, NEPTUNE) over to contiguous arrays that get chunked up for parallel processing using OpenMP threading.The expectation is that we'll be able to demonstrate similar or better performance and that we'll be able to remove support for blocked data structures afterwards (and in doing so won't have to add it to
capgen
).This PR will be followed by a PR that adds
ccpp-prebuild
capabilities for contiguous data arrays, together with a test for the new functionality. After that, we can start working on the ufs-weather-model/SCM/NEPTUNE interface.User interface changes?: No
Fixes https://github.com/NCAR/ccpp-framework/issues/500
Testing: test removed: n/a tests added:
ccpp-prebuild
test for blocked data structures, added allccpp-prebuild
tests to CI unit tests: n/a system tests: n/a manual testing: Ran existing and newccpp-prebuild
tests locally on my macOS