MetOffice / MetOffice/lfric_apps

Performance Monitoring

Open
#415 0 comments 0 reactions 1 assignee View on GitHub

@thomasmelvin is already working on this.

Since Apr 2, 2026.

Discussion
Dominant language
Fortran
Stars
31
Forks
118
Avg merge
2d 4h
Merged PRs (30d)
8

Description

### Are there any linked Issues or Pull Requests?

None

### Brief description

Monitor the performance of the lfric model across global and regional configurations

### Further details of the issue.

There is a branch associated with this issue for developing the performance jobs:
* https://github.com/thomasmelvin/lfric_apps/tree/performance

This is (cut down) timer from the Dec 25 KPI report (C896 in 98 nodes)

| Routine | min time(s) | mean time(s) | max time(s) | No. calls | %time | time per call(s) |
|------------------------------|-------------------|-------------------|-------------------|-------------------|-------------------|-------------------|
| **lfric_atm** | 646.49| **646.57** | 649.51| 1| 100.0000| 646.5723|
| gungho_initialise| 97.57| 97.61| 97.64| 1| 15.0962| 97.6075|
| field.halo_ex_1| 79.80| 100.21| 135.91| 1432959| 15.4982| 0.0001|
| halo_routing_creation| 18.61| 21.46| 23.39| 1471594| 3.3196| 0.0000|
| xios_close_context_definition| 55.08| 55.23| 55.44| 1| 8.5421| 55.2311|
| finalise_xios_context| 18.34| 18.36| 21.36| 2| 2.8395| 9.1798|
| field.read| 9.08| 9.20| 10.35| 66| 1.4230| 0.1394|
| lfric_xios_read_fldg| 9.08| 9.20| 10.35| 66| 1.4230| 0.1394|
| mappings.set_wind| 5.56| 15.50| 45.84| 1441| 2.3970| 0.0108|
| runtime_constants.fem| 0.75| 2.18| 2.67| 31| 0.3367| 0.0702|
| runtime_constants.dycore| 8.79| 9.25| 11.08| 13| 1.4301| 0.7113|
| mass_matrix_solver_alg| 13.56| 15.14| 17.77| 1821| 2.3417| 0.0083|
| mappings.map_physics_fields| 13.04| 13.86| 14.40| 361| 2.1435| 0.0384|
| gungho_diagnostics_driver| 62.38| 63.36| 64.63| 361| 9.7989| 0.1755|
| field.write| 2.93| 3.22| 3.66| 143034| 0.4982| 0.0000|
| lfric_xios_write_fldg| 2.20| 2.49| 2.88| 13287| 0.3857| 0.0002|
| gungho_driver_first_timestep | 22.86| 22.89 | 22.93| 1| 3.5402| 22.8898|
| **gungho_driver_timestep** | 530.24| **530.29** | 530.34| 360| 82.0159| 1.4730|
| semi_implicit_timestep| 466.50| 467.75| 468.67| 360| 72.3434| 1.2993|
| dynamics.compute_si_operators| 10.45| 10.55| 10.64| 26| 1.6316| 0.4058|
| slow_physics| 81.33| 81.67| 82.06| 360| 12.6306| 0.2268|
| dynamics.rhs_alg| 20.65| 22.19| 25.20| 1800| 3.4312| 0.0123|
| dynamics.transport_predictors| 4.22| 4.75| 5.17| 360| 0.7346| 0.0132|
| dynamics.transport| 68.94| 70.81| 72.38| 720| 10.9514| 0.0983|
| dynamics.phys_predictors| 12.20| 13.52| 16.11| 720| 2.0903| 0.0188|
| fast_physics| 93.57| 95.47| 97.69| 720| 14.7659| 0.1326|
| dynamics.solver| 121.64| 122.38| 123.11| 1440| 18.9273| 0.0850|
| cloud| 5.98| 6.43| 7.17| 360| 0.9945| 0.0179|
| ukca| 14.99| 16.24| 17.06| 360| 2.5112| 0.0451|
| diags.pmsl| 58.14| 58.96| 59.99| 360| 9.1187| 0.1638|
| gungho_finalise| 18.38| 18.39| 21.39| 1| 2.8441| 18.3891|

And this version is from main

| Routine | min time(s) | mean time(s) | max time(s) | No. calls | %time | time per call(s) |
|------------------------------|-------------------|-------------------|-------------------|-------------------|-------------------|-------------------|
| **lfric_atm**| 675.49| **675.50**| 679.60| 1| 100.0000| 675.5033|
| __setup__| 161.17| 161.22| 161.26| 1| 23.8672| 161.2240|
| gungho_driver.initialise| 161.17| 161.22| 161.26| 1| 23.8671| 161.2229|
| lfric_xios.init_context| 73.97| 74.64| 74.94| 1| 11.0494| 74.6388|
| field.halo_ex_1| 81.74| 98.42| 120.04| 1432886| 14.5702| 0.0001|
| halo_routing_creation| 18.76| 22.96| 26.14| 1471513| 3.3990| 0.0000|
| xios.close_context_definition| 71.16| 71.30| 71.50| 1| 10.5551| 71.3001|
| lfric_xios.finalise_context| 18.92| 18.93| 23.09| 2| 2.8027| 9.4663|
| field.read| 55.05| 55.22| 55.29| 66| 8.1745| 0.8367|
| lfric_xios.read_fldg| 55.04| 55.22| 55.29| 66| 8.1745| 0.8366|
| mappings.set_wind| 6.76| 11.63| 24.42| 1441| 1.7212| 0.0081|
| runtime_constants.dycore| 1.19| 1.23| 1.36| 13| 0.1821| 0.0946|
| mass_matrix_solver_alg| 13.03| 14.05| 14.97| 1821| 2.0797| 0.0077|
| mappings.map_physics_fields| 12.13| 13.02| 13.45| 361| 1.9279| 0.0361|
| gungho_diagnostics_driver| 62.46| 63.29| 63.91| 361| 9.3689| 0.1753|
| field.write| 2.86| 3.35| 3.99| 140271| 0.4958| 0.0000|
| lfric_xios.write_fldg| 2.22| 2.65| 3.23| 13297| 0.3927| 0.0002|
| gungho_driver.first_timestep| 19.31| 19.34| 19.39| 1| 2.8635| 19.3427|
| gungho_timestep| 432.08| 432.66| 433.49| 360| 64.0506| 1.2018|
| semi_implicit_timestep| 432.06| 432.64| 433.46| 360| 64.0474| 1.2018|
| dynamics.compute_si_operators| 7.38| 7.47| 7.55| 24| 1.1059| 0.3113|
| slow_physics| 80.39| 80.69| 81.00| 360| 11.9452| 0.2241|
| dynamics.rhs_alg| 17.20| 18.43| 20.04| 1800| 2.7279| 0.0102|
| dynamics.transport_predictors| 4.05| 4.55| 5.08| 360| 0.6738| 0.0126|
| dynamics.transport| 74.73| 75.77| 76.95| 720| 11.2174| 0.1052|
| dynamics.phys_predictors| 11.88| 12.67| 13.29| 720| 1.8763| 0.0176|
| fast_physics| 83.08| 83.98| 84.88| 720| 12.4327| 0.1166|
| dynamics.solver| 105.37| 106.19| 106.98| 1440| 15.7202| 0.0737|
| cloud| 6.02| 6.39| 7.30| 360| 0.9464| 0.0178|
| ukca| 12.65| 13.28| 14.06| 360| 1.9665| 0.0369|
| diags.pmsl| 58.27| 58.97| 59.54| 360| 8.7294| 0.1638|
| **gungho_driver.timestep** | 475.67| **475.76** | 475.78| 359| 70.4298| 1.3252|
| gungho_driver.finalise| 18.95| 18.96| 23.12| 1| 2.8070| 18.9611|
| xios.context_finalize| 15.93| 15.93| 15.96| 1| 2.3589| 15.9347|

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.