Skip to content

Multi-instance timeseries capability for standalone CUPiD#397

Draft
mollymwieringa wants to merge 4 commits intoNCAR:mainfrom
mollymwieringa:multi-instance
Draft

Multi-instance timeseries capability for standalone CUPiD#397
mollymwieringa wants to merge 4 commits intoNCAR:mainfrom
mollymwieringa:multi-instance

Conversation

@mollymwieringa
Copy link

@mollymwieringa mollymwieringa commented Mar 6, 2026

Description of changes:

  • Please add an explanation of what your changes do and why you'd like us to include them.

These changes take first steps toward issue #396 by enabling the run_timeseries.py tool to find model history files produced by a multi-instance-enabled case of CESM (e.g. cice_000X.h instead of cice.h). It involves changes to run_timeseries.py and adding a multi-instance example with its own config file to standalone CUPiD.

These changes will help enable efficient postprocessing of many history files for multi-instances cases into more storage-efficient timeseries files, reducing the amount of overhead required by multi-instance simulations. This benefit is particularly relevant to data assimilation experiments, which use multi-instance simulations to run large ensembles that output history files at high temporal frequencies.

Outstanding work on this project during draft PR stage:

  • testing as a part of the CESM workflow (requires updates to my CESM version to include CUPiD in the workflow, needs changes to cesm_postprocessing.sh and maybe generate_cupid_config_for_cesm_case.py)
  • addition of a diagnostic notebook that can plot multi-instance timeseries as an ensemble with an ensemble mean

All PRs Checklist:

  • Have you followed the guidelines in our Contributor's Guide?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?
  • Have you made sure that the pre-commit checks passed (#8 in Adding Notebooks Guide)?
  • Have you successfully tested your changes locally when running standalone CUPiD?
  • Have you tested your changes as part of the CESM workflow?
  • Once you are ready to have your PR reviewed, have you changed it from a Draft PR to an Open PR?

@mnlevy1981 mnlevy1981 self-requested a review March 11, 2026 20:09
Copy link
Collaborator

@mnlevy1981 mnlevy1981 left a comment

Choose a reason for hiding this comment

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

I'll wait for you to mark this as "ready for review" before going through it in detail, but one thing that jumped out is a way to avoid needing to add ninst to every configuration file.

I didn't really look through the new config.yml file, but I noticed it is pointing to output in your scratch space -- I'll make sure you have access to /glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing/ and then you can copy the files you need over (right now it looks like we're testing on 21 years of ensemble output, maybe we could reduce that to just a few years to save disk space?)

dir_mode = timeseries_params["dir_mode"]
file_group = timeseries_params["file_group"]
dir_group = timeseries_params["dir_group"]
ninst = timeseries_params["ninst"]
Copy link
Collaborator

Choose a reason for hiding this comment

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

If you use ninst = timeseries_params.get("ninst", 1) then examples without ninst in the time series block will default a single instance.

- Kate Thayer-Calder (NCAR), [@Katetc](https://github.com/Katetc)
- Jasmine Turner (University of Utah), [@JazSpaz24](https://github.com/JazSpaz24)
- Will Wieder (NCAR), [@wwieder](https://github.com/wwieder)
- Molly Wieringa (NCAR), [@mollymwieringa](https://github.com/mollymwieringa)
Copy link
Collaborator

Choose a reason for hiding this comment

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

👍

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.

2 participants