Skip to content

Commit d7ff0df

Browse files
authored
Merge branch 'develop' into docu_breaking_changes
2 parents 449220e + f9bb58e commit d7ff0df

File tree

8 files changed

+43
-34
lines changed

8 files changed

+43
-34
lines changed

.github/PULL_REQUEST_TEMPLATE/release.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,5 @@ What to do after a release:
2525
- [ ] merge `main` down into `develop` to ensure `setuptools_scm` finds the latest release tag
2626
- [ ] update the pace PR from the pre-commit checklist to include the released version of NDSL and merge it.
2727
- [ ] merge breaking changes in NDSL (e.g. search for deprecation warnings)
28+
- [ ] update the pinned version of [pyFV3](https://github.com/NOAA-GFDL/PyFV3/) to the new release-tag
29+
- [ ] update the pinned version of [pySHiELD](https://github.com/NOAA-GFDL/pySHiELD) to the new release-tag

.github/workflows/fv3_translate_tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010

1111
jobs:
1212
fv3_translate_tests:
13-
uses: twicki/pyFV3/.github/workflows/translate.yaml@update/numpy_2x
13+
uses: NOAA-GFDL/pyFV3/.github/workflows/translate.yaml@develop
1414
with:
1515
component_trigger: true
1616
component_name: NDSL

.github/workflows/pace_tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010

1111
jobs:
1212
pace_main_tests:
13-
uses: floriandeconinck/pace/.github/workflows/main_unit_tests.yaml@update/numpy_2x
13+
uses: NOAA-GFDL/pace/.github/workflows/main_unit_tests.yaml@develop
1414
with:
1515
component_trigger: true
1616
component_name: NDSL

.github/workflows/shield_tests.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010

1111
jobs:
1212
shield_translate_tests:
13-
uses: floriandeconinck/pySHiELD/.github/workflows/translate.yaml@update/numpy_2x
13+
uses: NOAA-GFDL/pySHiELD/.github/workflows/translate.yaml@develop
1414
with:
1515
component_trigger: true
1616
component_name: NDSL

external/gt4py

ndsl/debug/config.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
Configuration is a yaml file of the shape
88
```yaml
99
stencils_or_class:
10-
- copy_corners_x_nord
11-
- copy_corners_y_nord
12-
- DGridShallowWaterLagrangianDynamics.__call__
10+
- copy_corners_x_nord
11+
- copy_corners_y_nord
12+
- DGridShallowWaterLagrangianDynamics.__call__
1313
track_parameter_by_name:
14-
- fy
14+
- fy
1515
```
1616
1717
Global variable:
@@ -28,24 +28,22 @@
2828
from ndsl.logging import ndsl_log
2929

3030

31-
ndsl_debugger = None
32-
33-
34-
def _set_debugger() -> None:
31+
def _set_debugger() -> Debugger | None:
3532
config = os.getenv("NDSL_DEBUG_CONFIG", "")
3633
if not os.path.exists(config):
3734
if config != "":
3835
ndsl_log.warning(
3936
f"NDSL_DEBUG_CONFIG set but path {config} does not exists."
4037
)
4138
else:
42-
return
39+
return None
4340
with open(config) as file:
4441
config_dict = yaml.load(file.read(), Loader=yaml.SafeLoader)
45-
global ndsl_debugger
46-
ndsl_debugger = Debugger(rank=MPIComm().Get_rank(), **config_dict)
42+
debugger = Debugger(rank=MPIComm().Get_rank(), **config_dict)
4743
ndsl_log.info("[NDSL Debugger] On")
4844
ndsl_log.debug(f"[NDSL Debugger] Config:\n{config_dict}")
45+
return debugger
4946

5047

51-
_set_debugger()
48+
ndsl_debugger = _set_debugger()
49+
"""Global NDSL debugger, set to None if NDSL_DEBUG_CONFIG is unset"""

ndsl/dsl/dace/dace_config.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -298,11 +298,16 @@ def __init__(
298298
"dont_fuse_callbacks",
299299
value=True,
300300
)
301-
# Unroll all loop - outer loop should be exempted with dace.nounroll
301+
# Unroll no loop.
302+
# Dev NOTE: while unrolling small loop could have an impact on speed
303+
# espcially small loop, the cost of potential increase in
304+
# build time is too high. The user needs to use `nounroll`
305+
# on it's own code, shifting an optimization responsability
306+
# away from the DSL. We opt for the default - no unrolling.
302307
dace.config.Config.set(
303308
"frontend",
304309
"unroll_threshold",
305-
value=False,
310+
value=-1,
306311
)
307312
# Allow for a longer stack dump when parsing fails
308313
dace.config.Config.set(

ndsl/stencils/column_operations.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,16 @@ def column_max(field, start_index, end_index):
1717
Returns: [max value, index of max value]
1818
"""
1919
max_index = start_index
20+
max_value = field.at(K=max_index)
2021
level = start_index
2122
while level <= end_index:
22-
new = field.at(K=level)
23-
old = field.at(K=max_index)
24-
if new > old:
23+
value = field.at(K=level)
24+
if value > max_value:
25+
max_value = value
2526
max_index = level
2627
level += 1
2728

28-
return field.at(K=max_index), max_index
29+
return max_value, max_index
2930

3031

3132
@typing.no_type_check
@@ -42,15 +43,16 @@ def column_max_ddim(field, ddim, start_index, end_index):
4243
Returns: [max value, index of max value]
4344
"""
4445
max_index = start_index
46+
max_value = field.at(K=max_index, ddim=[ddim])
4547
level = start_index
4648
while level <= end_index:
47-
new = field.at(K=level, ddim=[ddim])
48-
old = field.at(K=max_index, ddim=[ddim])
49-
if new > old:
49+
value = field.at(K=level, ddim=[ddim])
50+
if value > max_value:
51+
max_value = value
5052
max_index = level
5153
level += 1
5254

53-
return field.at(K=max_index, ddim=[ddim]), max_index
55+
return max_value, max_index
5456

5557

5658
@typing.no_type_check
@@ -67,15 +69,16 @@ def column_min(field, start_index, end_index):
6769
Returns: [min value, index of min value]
6870
"""
6971
min_index = start_index
72+
min_value = field.at(K=min_index)
7073
level = start_index
7174
while level <= end_index:
72-
new = field.at(K=level)
73-
old = field.at(K=min_index)
74-
if new < old:
75+
value = field.at(K=level)
76+
if value < min_value:
77+
min_value = value
7578
min_index = level
7679
level += 1
7780

78-
return field.at(K=min_index), min_index
81+
return min_value, min_index
7982

8083

8184
@typing.no_type_check
@@ -92,12 +95,13 @@ def column_min_ddim(field, ddim, start_index, end_index):
9295
Returns: [min value, index of min value]
9396
"""
9497
min_index = start_index
98+
min_value = field.at(K=min_index, ddim=[ddim])
9599
level = start_index
96100
while level <= end_index:
97-
new = field.at(K=level, ddim=[ddim])
98-
old = field.at(K=min_index, ddim=[ddim])
99-
if new < old:
101+
value = field.at(K=level, ddim=[ddim])
102+
if value < min_value:
103+
min_value = value
100104
min_index = level
101105
level += 1
102106

103-
return field.at(K=min_index, ddim=[ddim]), min_index
107+
return min_value, min_index

0 commit comments

Comments
 (0)