Skip to content

Multi-instance timeseries capability for standalone CUPiD#397

Draft
mollymwieringa wants to merge 5 commits into
NCAR:mainfrom
mollymwieringa:multi-instance
Draft

Multi-instance timeseries capability for standalone CUPiD#397
mollymwieringa wants to merge 5 commits into
NCAR:mainfrom
mollymwieringa:multi-instance

Conversation

@mollymwieringa
Copy link
Copy Markdown

@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
Copy Markdown
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?)

Comment thread cupid/run_timeseries.py Outdated
dir_mode = timeseries_params["dir_mode"]
file_group = timeseries_params["file_group"]
dir_group = timeseries_params["dir_group"]
ninst = timeseries_params["ninst"]
Copy link
Copy Markdown
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.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

Okay, good idea! I've added this into my branch-- it'll come through once everything else is ready for review.

Comment thread Contributors.md
- 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
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

👍

Ensures that when there is no "ninst" value in the CUPiD config file (which would be the default for every other application), the multi-instance capability defaults to the assumption of a single case
@mollymwieringa
Copy link
Copy Markdown
Author

@mnlevy1981 Just a note that the test case I set up definitely shouldn't be processing 21 years-- I think the 3 simulations are each only a month long. I'll double-check, but let me know if that's still too much storage!

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