Skip to content

Commit 3de0e81

Browse files
committed
Merge remote-tracking branch 'origin/master' into 2757_script_arguments
2 parents d7307f8 + 5287120 commit 3de0e81

8 files changed

Lines changed: 57 additions & 19 deletions

File tree

.github/workflows/lfric_test.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ on:
4242
push
4343

4444
env:
45-
LFRIC_APPS_HASH: 299d4f786dd2d86a59a184c3e53384005a69eded
45+
LFRIC_APPS_HASH: 56054ba955cc97a8529afc3844139ab58bd7d359
4646
PYTHON_VERSION: "3.14"
4747
GNU_TOOLCHAIN: gnu14_openmpi
4848
NVHPC_TOOLCHAIN: nvhpc26_3_openmpi
@@ -116,7 +116,7 @@ jobs:
116116
cp ${PSYCLONE_LFRIC_DIR}/does_nothing.py ${OPT_DIR}/global.py
117117
# Clean previous version and compile again
118118
rm -rf working-gh-passthrough
119-
./build/local_build.py -j ${NUM_PARALLEL} -v -p psyclone-test -w working-gh-passthrough gungho_model
119+
./build/local_build.py -j ${NUM_PARALLEL} -p psyclone-test -w working-gh-passthrough gungho_model
120120
# Run
121121
cd applications/gungho_model/example
122122
rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run
@@ -148,7 +148,7 @@ jobs:
148148
# Clean previous version and compile again
149149
rm -rf working-gh-ompoffload
150150
export BUILD_START="${SECONDS}"
151-
LFRIC_OFFLOAD_DIRECTIVES=omp ./build/local_build.py -v -j ${NUM_PARALLEL} -p psyclone-test \
151+
LFRIC_OFFLOAD_DIRECTIVES=omp ./build/local_build.py -j ${NUM_PARALLEL} -p psyclone-test \
152152
-w working-gh-ompoffload gungho_model |& tee output.txt
153153
# Piping to tee ignores the errcode of the first command, make sure we account for it
154154
if [[ ${PIPESTATUS[0]} -ne 0 ]]; then
@@ -185,7 +185,7 @@ jobs:
185185
cp ${PSYCLONE_LFRIC_DIR}/gpu_offloading.py ${OPT_DIR}/global.py
186186
# Clean previous version and compile again
187187
rm -rf working-gh-accoffload
188-
LFRIC_OFFLOAD_DIRECTIVES=acc ./build/local_build.py -v -j ${NUM_PARALLEL} -p psyclone-test \
188+
LFRIC_OFFLOAD_DIRECTIVES=acc ./build/local_build.py -j ${NUM_PARALLEL} -p psyclone-test \
189189
-w working-gh-accoffload gungho_model
190190
cd applications/gungho_model/example
191191
rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run
@@ -215,7 +215,7 @@ jobs:
215215
cp ${PSYCLONE_LFRIC_DIR}/everything_everywhere_all_at_once.py ${OPT_DIR}/global.py
216216
# Clean previous version and compile again
217217
rm -rf working-gh_alltrans
218-
./build/local_build.py -j ${NUM_PARALLEL} -p psyclone-test -v -w working-gh-alltrans gungho_model
218+
./build/local_build.py -j ${NUM_PARALLEL} -p psyclone-test -w working-gh-alltrans gungho_model
219219
# Run
220220
cd applications/gungho_model/example
221221
rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run
@@ -244,7 +244,7 @@ jobs:
244244
cp ${PSYCLONE_LFRIC_DIR}/tiledcolouring_and_omp.py ${OPT_DIR}/global.py
245245
# Clean previous version and compile again
246246
rm -rf working-gh-omptiling
247-
./build/local_build.py -j ${NUM_PARALLEL} -p psyclone-test -v -w working-gh-omptiling gungho_model
247+
./build/local_build.py -j ${NUM_PARALLEL} -p psyclone-test -w working-gh-omptiling gungho_model
248248
# Run
249249
cd applications/gungho_model/example
250250
rm -f timer.txt gungho_model-checksums.txt # In case there were from a previous run
@@ -269,7 +269,7 @@ jobs:
269269
# Build the 'meto-ex1a' platform, that includes psyclone-transmutation
270270
rm -rf working-atm-transmuted
271271
export BUILD_START="${SECONDS}"
272-
./build/local_build.py -v -p meto-ex1a -j 16 -w working-atm-transmuted lfric_atm
272+
./build/local_build.py -p meto-ex1a -j 16 -w working-atm-transmuted lfric_atm
273273
export BUILD_ELAPSED=$((${SECONDS}-${BUILD_START}))
274274
275275
# Run the app with 8 threads and no MPI
@@ -300,7 +300,7 @@ jobs:
300300
# enabled, but we want to make sure we keep the nvfortran build working.
301301
rm -rf working-atm-gpu
302302
export BUILD_START="${SECONDS}"
303-
./build/local_build.py -v -p meto-ex1a -j 16 -w working-atm-gpu lfric_atm
303+
./build/local_build.py -p meto-ex1a -j 16 -w working-atm-gpu lfric_atm
304304
export BUILD_ELAPSED=$((${SECONDS}-${BUILD_START}))
305305
306306

changelog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
1) PR #3472 for #3471. Let the transformations get_options method
2+
account for sub-transformation options.
3+
4+
Release 3.3.1 7th July 2026
5+
16
5) PR #3431. Adds the force_private option to the OMPParallelTrans.
27

38
4) PR #3441 for #2936, #1220 and #2088. Fixes the doctests and adds

doc/reference_guide/doxygen.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ PROJECT_NAME = "Reference Guide"
4848
# could be handy for archiving the generated documentation or if some version
4949
# control system is used.
5050

51-
PROJECT_NUMBER = 3.3.0
51+
PROJECT_NUMBER = 3.3.1
5252

5353
# Using the PROJECT_BRIEF tag one can provide an optional one line description
5454
# for a project that appears at the top of each page and should give viewers a
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Inner product checksum rho = 405F163A37CF0717
2-
Inner product checksum theta = 41B09B090C8AE887
3-
Inner product checksum u = 44035B926C8572D4
4-
Inner product checksum mr1 = 3F901037544354E5
5-
Inner product checksum mr2 = 3E3CF684EB2B8268
6-
Inner product checksum mr3 = 3DBDE2F11F7F42BD
2+
Inner product checksum theta = 41B09B081D579236
3+
Inner product checksum u = 44035AFB5E390BAB
4+
Inner product checksum mr1 = 3F900FB50435E6CE
5+
Inner product checksum mr2 = 3E3B00EEB3C82F38
6+
Inner product checksum mr3 = 3DC969B45C6D3EC0
77
Inner product checksum mr4 = 0
88
Inner product checksum mr5 = 0
99
Inner product checksum mr6 = 0

examples/lfric/scripts/aggregate_gpu_stats.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,6 @@ count_uniq "Failed to offload"
9595
count_uniq "Added inner loop nested parallelism"
9696
count_uniq "Added OMP threading"
9797

98-
check_above "Module-inline successful" 277
99-
check_above "Offload independent loop" 88
98+
check_above "Module-inline successful" 283
99+
check_above "Offload independent loop" 83
100100
check_above "Offload with cell colouring" 40

src/psyclone/psyGen.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2428,7 +2428,12 @@ def get_option(self, option_name: str, **kwargs) -> Any:
24282428
:raises ValueError: if option_name is not found in the valid options
24292429
for the Transformation.
24302430
'''
2431-
valid_options = type(self).get_valid_options()
2431+
valid_options = {}
2432+
# dict.update keeps the last value if multiple dicts contain the
2433+
# same key, so we do the type(self) update last.
2434+
for subtrans in type(self)._SUB_TRANSFORMATIONS:
2435+
valid_options.update(subtrans.get_valid_options())
2436+
valid_options.update(type(self).get_valid_options())
24322437
if option_name not in valid_options.keys():
24332438
raise ValueError(f"option '{option_name}' is not a valid option "
24342439
f"for '{type(self).__name__}'. Valid options "

src/psyclone/tests/psyGen_test.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,34 @@ def apply(self, node, valid: bool = True):
206206
assert ("option 'invalid' is not a valid option for 'TestTrans'. "
207207
"Valid options are '['valid']." in str(excinfo.value))
208208

209+
# Test that we allow _SUB_TRANSFORMATIONS_OPTIONS
210+
211+
class TestTrans2(Transformation):
212+
'''Utility transformation to test methods of the abstract
213+
Transformation class with _SUB_TRANSFORMATIONS.'''
214+
_SUB_TRANSFORMATIONS = [TestTrans]
215+
216+
def apply(self, node, **kwargs):
217+
...
218+
219+
trans = TestTrans2()
220+
# Check that we allow the fetching of the TestTrans option.
221+
assert trans.get_option("valid", valid=True)
222+
223+
# Test that we use current transformations default value
224+
# over an inherited value.
225+
class TestTrans3(Transformation):
226+
'''Utility transformation to test methods of the abstract
227+
Transformation class with _SUB_TRANSFORMATIONS.'''
228+
_SUB_TRANSFORMATIONS = [TestTrans]
229+
230+
def apply(self, node, valid=False, **kwargs):
231+
...
232+
opts = {}
233+
trans = TestTrans3()
234+
# Check that we get the default False for the valid option.
235+
assert not trans.get_option("valid", **opts)
236+
209237

210238
def test_transformation_split_kwargs():
211239
''' Test that the kwargs can be split when they can be propagated to

src/psyclone/version.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@
4343

4444
__MAJOR__ = 3
4545
__MINOR__ = 3
46-
__MICRO__ = 0
46+
__MICRO__ = 1
4747

4848
# Version suffix e.g. "-rc1", "-dev" or "" (for a full release)
49-
_VERSION_SUFFIX = "-dev"
49+
_VERSION_SUFFIX = ""
5050

5151
__SHORT_VERSION__ = f"{__MAJOR__:d}.{__MINOR__:d}{_VERSION_SUFFIX}"
5252
__VERSION__ = f"{__MAJOR__:d}.{__MINOR__:d}.{__MICRO__:d}{_VERSION_SUFFIX}"

0 commit comments

Comments
 (0)