Skip to content

Socretes kernels extended - #723

Open
Benjamin Went (MetBenjaminWent) wants to merge 9 commits into
MetOffice:mainfrom
MetBenjaminWent:socretes_kernels_extended
Open

Benjamin Went (MetBenjaminWent) wants to merge 9 commits into
MetOffice:mainfrom
MetBenjaminWent:socretes_kernels_extended

Conversation

@MetBenjaminWent

@MetBenjaminWent Benjamin Went (MetBenjaminWent) commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

PR Summary

Extent Source changes and Transmute scrits to other Socrates Domain kernels:
lw_inc_kernel_mod
sw_inc_kernel_mod

These schemes are run by the RAL jobs, which get run with ukv jobs.

I've tested some smaller jobs which show the OMP gains at the smaller res for lw_inc, but still need some better results for sw_inc as it's currently too small to tell. However given both work like the existing functional schemes, these should be good.

run_lfric_atm_ral3-**_n_**T-seuk_MG_ex1a_cce_production-32bit

Before/After Caliper Min Mean Max
extended_-2T_run14.txt: lw_inc_tik 0.0736 0.09737 0.11913
extended-4T_run14.txt: lw_inc_tik 0.06682 0.0913 0.1062
_extended__run14.txt: lw_inc_tik 0.03907 0.06824 0.08544
pre-2T_run1.txt: lw_inc_tik 0.07135 0.14736 0.20237
pre-4T_run1.txt: lw_inc_tik 0.16679 0.23745 0.31136
_pre__run1.txt: lw_inc_tik 0.03586 0.10787 0.15177
extended_-2T_run14.txt: sw_inc_tik 0.00221 0.00244 0.00268
extended_-4T_ run14.txt: sw_inc_tik 0.00268 0.003 0.00312
extended_ _run14.txt: sw_inc_tik 0.00108 0.00118 0.00131
pre-2T_run1.txt: sw_inc_tik 0.00148 0.00177 0.00195
pre-4T_run1.txt: sw_inc_tik 0.00258 0.00291 0.00311
_pre__run1.txt: sw_inc_tik 0.00081 0.00125 0.00256

This is without the segment size tuning for these jobs, which is currently tied to the existing LW/SW segmentation sizes.
This might be okay, longer term, or given the differing configs which control these schemes, could not be.
However these should be tuned with further performance testing.

Sci/Tech Reviewer:
Code Reviewer: Matthew Walker (@mattatmet)

Issue: #619
Umbrella: #424

Code Quality Checklist

  • I have performed a self-review of my own code
  • My code follows the project's style guidelines
  • Comments have been included that aid understanding and enhance the readability of the code
  • My changes generate no new warnings
  • All automated checks in the CI pipeline have completed successfully

Testing

  • I have tested this change locally, using the LFRic Apps rose-stem suite
  • If any tests fail (rose-stem or CI) the reason is understood and acceptable (e.g. kgo changes)
  • I have added tests to cover new functionality as appropriate (e.g. system tests, unit tests, etc.)
  • Any new tests have been assigned an appropriate amount of compute resource and have been allocated to an appropriate testing group (i.e. the developer tests are for jobs which use a small amount of compute resource and complete in a matter of minutes)

trac.log

Test Suite Results - lfric_apps - socretes_kernels_extended/run14

Suite Information

Item Value
Suite Name socretes_kernels_extended/run14
Suite User benjamin.went
Workflow Start 2026-09-14T14:50:48
Groups Run ex1a_omp_seuk_prod
Dependency Reference Main Like
casim MetOffice/casim@2026.07.1 True
jules MetOffice/jules@c22aeea True
lfric_apps MetBenjaminWent/lfric_apps@socretes_kernels_extended False
lfric_core MetOffice/lfric_core@3e965e8 True
moci MetOffice/moci@2026.07.1 True
SimSys_Scripts MetOffice/SimSys_Scripts@77a5166 True
socrates MetOffice/socrates@2026.07.1 True
socrates-spectral MetOffice/socrates-spectral@2026.07.1 True
ukca MetOffice/ukca@9fc2b6d True

Task Information

✅ succeeded tasks - 13

Test Suite Results - lfric_apps - socretes_kernels_extended/run16

Suite Information

Item Value
Suite Name socretes_kernels_extended/run16
Suite User benjamin.went
Workflow Start 2026-09-15T10:47:19
Groups Run all
Dependency Reference Main Like
casim MetOffice/casim@2026.07.1 True
jules MetOffice/jules@c22aeea True
lfric_apps MetBenjaminWent/lfric_apps@socretes_kernels_extended False
lfric_core MetOffice/lfric_core@3e965e8 True
moci MetOffice/moci@2026.07.1 True
SimSys_Scripts MetOffice/SimSys_Scripts@77a5166 True
socrates MetOffice/socrates@2026.07.1 True
socrates-spectral MetOffice/socrates-spectral@2026.07.1 True
ukca MetOffice/ukca@9fc2b6d True

Task Information

❌ failed tasks - 36
Task State
build_adjoint_tests_azspice_gnu_fast-debug-64bit-rsolver64 failed
build_adjoint_tests_azspice_gnu_full-debug-64bit-rsolver64 failed
build_adjoint_unit_tests_azspice_gnu_64bit failed
build_gravity_wave_unit_tests_azspice_gnu_64bit failed
build_gungho_integration_tests_azspice_gnu_64bit failed
build_gungho_model_azspice_gnu_fast-debug-32bit failed
build_gungho_model_azspice_gnu_fast-debug-64bit failed
build_gungho_model_azspice_gnu_fast-debug-64bit-rtran32 failed
build_gungho_unit_tests_azspice_gnu_64bit failed
build_jedi_lfric_interface_integration_tests_azspice_gnu_64bit failed
build_jedi_lfric_interface_unit_tests_azspice_gnu_64bit failed
build_jedi_lfric_tests_azspice_gnu_fast-debug-64bit-rsolver64 failed
build_jedi_lfric_tests_azspice_gnu_full-debug-64bit failed
build_jules_azspice_gnu_fast-debug-64bit failed
build_lfric2lfric_azspice_gnu_fast-debug-64bit failed
build_lfric_atm_azspice_gnu_fast-debug-32bit failed
build_lfric_atm_azspice_gnu_fast-debug-64bit failed
build_lfric_atm_azspice_gnu_production-32bit failed
build_lfricinputs_lfric2um_azspice_gnu_fast-debug-64bit failed
build_lfricinputs_scintelapi_azspice_gnu_fast-debug-64bit failed
build_lfricinputs_scintelapi_azspice_gnu_full-debug-64bit failed
build_lfricinputs_um2lfric_azspice_gnu_fast-debug-64bit failed
build_linear_model_azspice_gnu_production-32bit failed
build_name_transport_azspice_gnu_fast-debug-64bit failed
build_name_transport_unit_tests_azspice_gnu_64bit failed
build_science_shared_unit_tests_azspice_gnu_64bit failed
build_shallow_water_azspice_gnu_fast-debug-64bit failed
build_shallow_water_unit_tests_azspice_gnu_64bit failed
build_socrates_interface_unit_tests_azspice_gnu_64bit failed
build_solver_azspice_gnu_fast-debug-64bit failed
build_transport_azspice_gnu_fast-debug-32bit failed
build_transport_azspice_gnu_fast-debug-64bit failed
build_transport_azspice_gnu_full-debug-64bit failed
build_transport_unit_tests_azspice_gnu_64bit failed
local_build_test failed
run_shallow_water_galewsky_vi_mono-C96_ex1a_gnu_fast-debug-64bit failed
✅ succeeded tasks - 1037
⌛ waiting tasks - 19
Task State
run_lfric2lfric_oasis_clim_gal9-C24_C12_1cpu_azspice_gnu_fast-debug-64bit waiting
run_lfric2lfric_oasis_clim_gal9-C24_C12_6cpu_azspice_gnu_fast-debug-64bit waiting
run_lfric2lfric_oasis_clim_gal9_C12-ral_seuk_C16_lam-lbc_1cpu_azspice_gnu_fast-debug-64bit waiting
run_lfric2lfric_oasis_clim_gal9_C12-ral_seuk_C16_lam-lbc_4cpu_azspice_gnu_fast-debug-64bit waiting
run_lfric2lfric_oasis_clim_gal9_C12-ral_seuk_C16_lam_1cpu_azspice_gnu_fast-debug-64bit waiting
run_lfric2lfric_oasis_clim_gal9_C12-ral_seuk_C16_lam_4cpu_azspice_gnu_fast-debug-64bit waiting
run_lfric2lfric_oasis_ral_seuk-C32_lam_MG_1cpu_azspice_gnu_fast-debug-64bit waiting
run_lfric2lfric_oasis_ral_seuk-C32_lam_MG_4cpu_azspice_gnu_fast-debug-64bit waiting
run_lfricinputs_lfric2um-aquaplanet-C48L38_N48L38_azspice_gnu_fast-debug-64bit waiting
run_lfricinputs_lfric2um-umlam-C48L70_N512L70_azspice_gnu_fast-debug-64bit waiting
run_lfricinputs_um2lfric-aquaplanet-N48L38_C48L38_azspice_gnu_fast-debug-64bit waiting
run_lfricinputs_um2lfric-aquaplanet_lam_azspice_gnu_fast-debug-64bit waiting
run_lfricinputs_um2lfric-aquaplanet_lbc_azspice_gnu_fast-debug-64bit waiting
run_lfricinputs_um2lfric-basicgal-N96L70_C12L70_azspice_gnu_fast-debug-64bit waiting
run_lfricinputs_um2lfric-falklands_lam_azspice_gnu_fast-debug-64bit waiting
run_lfricinputs_um2lfric-nwp_gal9-N320L70_C12L70_azspice_gnu_fast-debug-64bit waiting
run_lfricinputs_um2lfric-nwp_gal9-N320L70_C48L70_azspice_gnu_fast-debug-64bit waiting
run_lfricinputs_um2lfric-protogal-N320L70_C12L70_azspice_gnu_fast-debug-64bit waiting
run_lfricinputs_um2lfric-protogal_chem-N48L70_C12L70_azspice_gnu_fast-debug-64bit waiting

Security Considerations

  • I have reviewed my changes for potential security issues
  • Sensitive data is properly handled (if applicable)
  • Authentication and authorisation are properly implemented (if applicable)

Performance Impact

  • Performance of the code has been considered and, if applicable, suitable performance measurements have been conducted

AI Assistance and Attribution

  • Some of the content of this change has been produced with the assistance of Generative AI tool name (e.g., Met Office Github Copilot Enterprise, Github Copilot Personal, ChatGPT GPT-4, etc) and I have followed the Simulation Systems AI policy (including attribution labels)

Documentation

  • Where appropriate I have updated documentation related to this change and confirmed that it builds correctly

PSyclone Approval

  • If you have edited any PSyclone-related code (e.g. PSyKAl-lite, Kernel interface, optimisation scripts, LFRic data structure code) then please contact the TCD Team

Sci/Tech Review

  • I understand this area of code and the changes being added
  • The proposed changes correspond to the pull request description
  • Documentation is sufficient (do documentation papers need updating)
  • Sufficient testing has been completed

(Please alert the code reviewer via a tag when you have approved the SR)

Code Review

  • All dependencies have been resolved
  • Related Issues have been properly linked and addressed
  • CLA compliance has been confirmed
  • Code quality standards have been met
  • Tests are adequate and have passed
  • Documentation is complete and accurate
  • Security considerations have been addressed
  • Performance impact is acceptable

@github-actions github-actions Bot added the cla-modified The CLA has been modified as part of this PR - added by GA label Aug 19, 2026
@github-actions github-actions Bot removed the cla-modified The CLA has been modified as part of this PR - added by GA label Aug 19, 2026
@MetBenjaminWent

Copy link
Copy Markdown
Contributor Author

PR and issue on pause due to lack of testing methods currently

@MetBenjaminWent

Copy link
Copy Markdown
Contributor Author

Tthese are used in the regional model so it would be good to put some OMP in there.
There's an lfric_apps rose-stem test that uses this: rose-stem/app/lfric_atm/opt/rose-app-ral3.conf

@MetBenjaminWent

Benjamin Went (MetBenjaminWent) commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author
  • We need to KGO test - In progress
  • We need to performance test and setup the segment size - Can argue existing method was good - see if appears at low res - otherwise there are some larger tests we can run

"plot_str": "plot_map.py -ral $NODAL_DATA_DIR/lfric_diagnostics.nc $PLOT_DIR",
}) %}

{% elif task_ns.conf_name == "ral3-2T-seuk_MG" %}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Just note here that care will need taking when merging with #764 to ensure names etc are correctly changed from ral3 to ral4

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is fine by me. Note the segment size tuning may be different for these increment calls than for the full SW/LW calls as these have far fewer bands, so less work to do per profile.

@MetBenjaminWent

Copy link
Copy Markdown
Contributor Author

This is fine by me. Note the segment size tuning may be different for these increment calls than for the full SW/LW calls as these have far fewer bands, so less work to do per profile.

James Manners (@mo-jmanners), roger that, thanks, that's good to know. I can change this now given we know they'll be different, get ahead for future tuning? Or wait till then?

As CO which would be preferable for you?

@mo-jmanners

Copy link
Copy Markdown
Member

This is fine by me. Note the segment size tuning may be different for these increment calls than for the full SW/LW calls as these have far fewer bands, so less work to do per profile.

James Manners (James Manners (@mo-jmanners)), roger that, thanks, that's good to know. I can change this now given we know they'll be different, get ahead for future tuning? Or wait till then?

As CO which would be preferable for you?

Do you mean have a sw_inc_seg_limit_size separate from sw_seg_limit_size (and lw)? Yes - probably good to add in now.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code owner (build system) review: Lists additions in line with current usage.

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.

5 participants