Skip to content

docs[cartesian]: Update ADRs with recent development#2512

Open
romanc wants to merge 5 commits intoGridTools:mainfrom
romanc:romanc/adr-update
Open

docs[cartesian]: Update ADRs with recent development#2512
romanc wants to merge 5 commits intoGridTools:mainfrom
romanc:romanc/adr-update

Conversation

@romanc
Copy link
Contributor

@romanc romanc commented Mar 5, 2026

Description

We have been lagging behind on updating the ADRs. This PR updates a bunch of ADRs to reflect recent development in gt4py.cartesian.

Requirements

  • All fixes and/or new features come with corresponding tests.
    N/A
  • Important design decisions have been documented in the appropriate ADR inside the docs/development/ADRs/ folder.

romanc added 2 commits March 11, 2026 10:33
We have been lagging behind on updating the ADRs. This PR updates a
bunch of ADRs to reflect recent development in `gt4py.cartesian`.
@romanc romanc force-pushed the romanc/adr-update branch from f93ce73 to 250d6c4 Compare March 11, 2026 09:56
Power users of GT4Py have now a way to stream memory directly from (and back to) Fortran without a copy.

To help with the growing number of DaCe-based backends, we introduce an automatic match for DaCe-based backends between layout and schedule. This makes the default scheduling always cache-optimal by construction and supersedes a previous rubber band fix introduced with the `dace:cpu_kfirst` backend.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need to talk about the consequence of having another backend and the lack of extra overhead for maintainig this? And can we say that with the new way of describing backends this also does not add significant cognitive load to have to keep more in mind?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Valid points, I've added a paragraph. Let me know what you think.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just in general, GT has a OpenMP requirement: https://github.com/GridTools/gridtools/blob/c5a85af55fd4df8629b8f64c88673261ebcb7624/docs/_sources/introduction/introduction.rst.txt?plain=1#L61

This is not tackled with a slightly more general name GT4PY_CARTESIAN_ENABLE_OPENMP compared to the use that is just to target DaCe backends.

I think all the choices made are very valid, but it still strives us further away from being able to use the GT-backends with coverage. we might need to think about how to handle this drift

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I re-wrote the dace/openmp ADR as general compiler detection ADR given the PRs that merged in the last week. In doing so, I've picked up the GridTools / OpenMP defaults dilemma, elaborated our choices and how to undo them (e.g. what we do in the daily CI with PR #2530). Let me know what you think.

@romanc romanc requested a review from twicki March 13, 2026 10:33
FlorianDeconinck pushed a commit that referenced this pull request Mar 13, 2026
## Description

In the context of extending compiler support, we introduced CXX compiler
detection in PR #2520 with the
goal to add compiler dependent flags. Doing so, we decided to turn off
OpenMP by default on `apple-clang` because `apple-clang` doesn't ship
with OpenMP out of the box. This trips daily CI on the macos runner
because the GridTools-based backends expect OpenMP to be available. This
PR restores OpenMP on macos runners on the daily CI by setting the
environment variable `GT4PY_CARTESIAN_ENABLE_OPENMP=True` to override
the default.

Tested by running daily CI on this PR, see
[here](https://github.com/GridTools/gt4py/actions/runs/23043269746/job/66926225822?pr=2530).

## Requirements

- [x] All fixes and/or new features come with corresponding tests.
  Covered by daily CI
- [ ] Important design decisions have been documented in the appropriate
ADR inside the [docs/development/ADRs/](docs/development/ADRs/README.md)
folder.
An ADR for compiler detection and default flags (for OpenMP) will be
added with #2512.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants