Repository navigation
Umbrella Transmute fixes and OMP kernels #424
Description
Are there any linked Issues or Pull Requests?
Kernel Transmute Scripts:
conv_gr_kernel_mod - #583 - DONE
#361 - CR - Note this has accidentally turned off mphys_kernel_mod as the options sit in global? - DONE
Extend OMP in kernels: #608 - DONE
Further Socretes: #619 - DONE
Nowaits and align parallelism #738 - TBD
Adjacent Transmute fixes:
Transmute not kernels : #630 - DONE
Transmute testing: #755 - DONE
Adjacent PSyclone work
Brief description
A number of Domain kernels still do not have effective OMP coverage, which is affecting performance.
These are low hanging things to help OMP performance.
Some have already been attempted, but do not appear to be giving us the expected performance boost.
We can try them with the new Transmute Local script
This would provide a small uplift in kernel runtime performance with OMP.
Furthermore for PSyclone 3.3.1 fix Transmute issues
Potentially explore further Transmute testing
Further details of the issue.
These are done (Or in progress):
bl_exp_kernel_mod \
bl_imp_kernel_mod \
bl_imp2_kernel_mod \
bm_tau_kernel_mod \
conv_gr_kernel_mod \
jules_exp_kernel_mod \
jules_extra_kernel_mod \
jules_imp_kernel_mod \
lw_kernel_mod \
mphys_kernel_mod \
pc2_initiation_kernel_mod \
pc2_conv_coupling_kernel_mod \
sw_kernel_mod \
sw_rad_tile_kernel_mod \
These are not:
interfaces/jules_interface/source/kernel/lw_rad_tile_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/jules_interface/source/kernel/sw_rad_tile_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/aerosol_ukca_kernel_mod.F90: integer :: operates_on = DOMAIN - LOOPS
interfaces/physics_schemes_interface/source/kernel/bm_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/conv_comorph_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/lsp_prognostic_tnuc_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/mphys_turb_gen_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/photol_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/smith_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/spectral_gwd_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/physics_schemes_interface/source/kernel/tracer_mix_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/socrates_interface/source/kernel/cosp_kernel_mod.f90: integer :: operates_on = DOMAIN
interfaces/socrates_interface/source/kernel/lw_inc_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/socrates_interface/source/kernel/lw_mts_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/socrates_interface/source/kernel/sw_inc_kernel_mod.F90: integer :: operates_on = DOMAIN
interfaces/socrates_interface/source/kernel/sw_mts_kernel_mod.F90: integer :: operates_on = DOMAIN
Activity
MetBenjaminWent commentedon Jul 14, 2026
As a side and related peice of work, we need to fix all of the transmute scripts to correctly pipe in ignore_dependencies_for.
#625
MetBenjaminWent commentedon Aug 3, 2026
Re groups run:
ex1a_omp_developerdeveloperallSo I always run the rose stem cylc tests on HoT trunk with my work.
ex1a_omp_developeris used to test that the OMP tests run to completion, and the KGO (Known good output) hold (which is a useful metric against race conditions).For any performance testing metrics, I make some production (higher optimisation) versions of the existing fast debug C192 runs (which are in the
ex1a_omp_developergroup, and run it with Vernier calipers inserted in each kernel.[-]Turn on OMP for Domain kernels[/-][+]Turn on OMP for Domain kernels (And fix Transmute issues in 3.3.1)[/+]MetBenjaminWent commentedon Aug 21, 2026
Really helpful investigation by EPCC to further inform work:
Mark B's slides they are on the mattermost WP3 Optimisation channel
[-]Turn on OMP for Domain kernels (And fix Transmute issues in 3.3.1)[/-][+]Turn on OMP for Domain kernels (And fix Transmute issues[/+][-]Turn on OMP for Domain kernels (And fix Transmute issues[/-][+]Umbrella Transmute fixes and OMP kernels[/+]