IO_demo checkpointing#304
Conversation
Andrew Coughtrie (andrewcoughtrie)
left a comment
There was a problem hiding this comment.
Looks good and neat overall, my only question is whether the checkpointing in io_demo should be made flexible to allow (and demonstrate) how to checkpoint at multiple points in the run. This may be better off in a separate issue but I think it's important to have in there.
Yeah I was planning to implement flexible checkpointing in a separate issue, but I can have a look to see how much extra work it would be to implement here, it might make more sense to do it now |
|
I've added flexible checkpointing and a test which includes it, everything works as expected! |
PR Summary
Sci/Tech Reviewer:
Code Reviewer: Andrew Coughtrie (@andrewcoughtrie)
This PR enables the IO_demo app to checkpoint itself. This is achieved by the addition of a small new module (~100 lines of code) which creates a new checkpointing context, creates the definitions for the relevant checkpoint/restart files and adds the context to the clock event loop.
Where possible, this should be the template used to set up checkpointing for all LFRic applications.
I have also added some nrun-vs-crun tests to the IO_demo rose-stem developer tests which pass, demonstrating the new functionality.
I also moved some things around in the
lfric_xios_context_mod, namely the callipers which were confusingly outside of the if statement that controlled whether the measured code would be run.Code Quality Checklist
Testing
trac.log
Test Suite Results - lfric_core - lfric_core-287-io_demo-cruns/run9
Suite Information
Task Information
✅ succeeded tasks - 73
Security Considerations
Performance Impact
AI Assistance and Attribution
Documentation
PSyclone Approval
Sci/Tech Review
(Please alert the code reviewer via a tag when you have approved the SR)
Code Review