Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It seems that compile times are due to
Nh
. I would argue that adding a type parameter that has a single value for an entire simulation shouldn't be an issue. However, in the light of JuliaLang/julia#55807, it's possible that this isn't the case. I'd like to make progress on alleviating long compile times--I've observed that a job in ClimaAtmos took about 26 minutes to complete the first timestep, and each subsequent step is on the order of, or less than, one second.This PR adds universal sizes to the spaces. The hope is that we can preserve the performance benefit of knowing static array dimensions (#11) for most broadcast expressions, while reducing compile times. Here are some trade-offs with this PR:
Nh
(andNv
) from the type domain, and instead grab them from the space for broadcast operations for field-style expressionsNh
,Nv
) from, so those kernels will revert to using runtimeNh
/Nv
.Unfortunately, this means that diagnostic edmf, which performs lost of level operations on DataLayouts, will fall back to a somewhat slower kernel (as it was before
Nh
/Nv
was static).