Conversation
MatthewHambley
left a comment
There was a problem hiding this comment.
Presumed code owner review: The "allow everything" argument is a bit over broad but for a demo application and until we can work out how we actually want to handle the issue of "sleep", I am content.
andrewcoughtrie
left a comment
There was a problem hiding this comment.
This all looks fine to me. As mentioned in person could you open an issue to create a sleep function that wraps around C usleep or similar.
Done - #241 |
|
I've just added 2 more commits which just change some of the rose-stem infrastructure around the tests:
I don't think these changes should require further science review, so I'll pass over to @mo-lucy-gordon for CR |
james-bruten-mo
left a comment
There was a problem hiding this comment.
Weird indenting, but otherwise rose-stem is all fine
| 'test -f $CYLC_TASK_WORK_DIR/timer.txt && '~ | ||
| 'cp $CYLC_TASK_WORK_DIR/timer.txt $TASK_OUTPUT_DIR || true' | ||
| 'cp $CYLC_TASK_WORK_DIR/timer.txt $TASK_OUTPUT_DIR || true', | ||
| 'test -f $CYLC_TASK_WORK_DIR/vernier-output* && '~ |
There was a problem hiding this comment.
Some weird indenting
There was a problem hiding this comment.
It looks better in the full file, promise! Also follows the pattern from the other parts of the file
applications/io_demo/source/driver/io_benchmark/io_benchmark_setup_mod.f90
Outdated
Show resolved
Hide resolved
applications/io_demo/source/driver/io_benchmark/io_benchmark_setup_mod.f90
Outdated
Show resolved
Hide resolved
applications/io_demo/source/driver/io_benchmark/io_benchmark_setup_mod.f90
Show resolved
Hide resolved
applications/io_demo/source/driver/io_benchmark/io_benchmark_setup_mod.f90
Show resolved
Hide resolved
| type(namelist_type), pointer :: io_nml | ||
|
|
||
| io_nml => modeldb%configuration%get_namelist('io') | ||
| call io_nml%get_value('diagnostic_frequency', diagnostic_frequency) |
There was a problem hiding this comment.
| type(namelist_type), pointer :: io_nml | |
| io_nml => modeldb%configuration%get_namelist('io') | |
| call io_nml%get_value('diagnostic_frequency', diagnostic_frequency) | |
| diagnostic_frequency = modeldb%config%io%diagnostic_frequency() |
applications/io_demo/source/driver/io_benchmark/io_benchmark_setup_mod.f90
Outdated
Show resolved
Hide resolved
applications/io_demo/source/driver/io_benchmark/io_benchmark_step_mod.x90
Outdated
Show resolved
Hide resolved
applications/io_demo/source/driver/io_benchmark/io_benchmark_step_mod.x90
Outdated
Show resolved
Hide resolved
applications/io_demo/source/driver/io_benchmark/io_benchmark_step_mod.x90
Outdated
Show resolved
Hide resolved
|
New |
6205f6e to
2974558
Compare
|
I've addressed all your comments @mo-rickywong, and rebased the branch up the head of main |
|
One other, thing, does this need an upgrade-macro? @james-bruten-mo |
| !======================================================================= | ||
| if (multifile_io) then | ||
| files_init_ptr => null() | ||
| if(multifile_io) then |
There was a problem hiding this comment.
| if(multifile_io) then | |
| if (multifile_io) then |
Thanks Ricky - I think I've discussed this one with Ed before. Technically it should have an upgrade macro, but as it's only in io_demo, then it's probably ok - I imagine no one is making a standalone io_demo suite! |
PR Summary
Sci/Tech Reviewer: @andrewcoughtrie
Code Reviewer: @mo-lucy-gordon
This change introduces a flexible benchmarking configuration for the IO_Demo app. The new functionality enables a user to specify a number of fields to write, along with a number of seconds to wait during a step to mimic simulation time. This simple configuration should enable us to exercise the LFRic I/O capability for a number of different use-cases, including writing data at scale.
The changes include:
io_demoto enable new benchmark capabilitysleep()intrinsic for all compilersio_demometadata which allow the app to be controlled a bit more intuitivelyio_demoalgorithm layer to enable it to be stable at scalelaunch-exeto enable running with XIOS servers in the lfric_core rose-stemio_demo_benchmarkgroup which runs at large-ish scale (C224)Code Quality Checklist
(Some checks are automatically carried out via the CI pipeline)
style guidelines
readability of the code
Testing
using this branch
acceptable (e.g. kgo changes)
tests, unit tests, etc.)
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_core - lfric_core-216-iodemo-bench-vernier/run7
Suite Information
Task Information
✅ succeeded tasks - 377
Test Suite Results - lfric_core - lfric_core-216-iodemo-bench-vernier/run6
Suite Information
Task Information
✅ succeeded tasks - 10
Security Considerations
Performance Impact
performance measurements have been conducted
AI Assistance and Attribution
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
confirmed that it builds correctly
PSyclone Approval
interface, optimisation scripts, LFRic data structure code) then please
contact the
tooscollabdevteam@metoffice.gov.uk
Sci/Tech Review
Please alert the code reviewer via a tag when you have approved the SR
Code Review