-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add 1 degree BGC configurations #19
Comments
For the BGC configuration, a few essential executables and input files are required, such as,
As far as I am aware, these files are not located in |
Correct. BGC builds need to be added to the automated deployment. See ACCESS-NRI/spack-packages#71 This is discussed in #16 (comment)
I have copied over what I believe to be the correct versions of these files
but I welcome any checks to ensure those are the correct files. Again, these should be the correct files. They're the same for IAF and RYF it seems, which is logical.
These are coupling fields. The model needs these from start-up. They're the same name as the physics only experiment, they just have more fields in them I assume. The way We won't have to rely on that, as we're linking directly to the full path for input files where possible. |
I am trying to determine what should be in the |
Testing of
|
Testing of
|
* update 1deg_jra55_ryf_bgc for ACCESS-NRI release #19 * add LICENSE * remove exclude paths from sync * remove redundant i2o.nc and o2i.nc ice inputs * update notes field * don't use mppnccombine-fast because it ain't
I think this can now be closed, but I'll leave that to someone else in case there's a reason to leave it open |
Overview
The full ACCESS-OM2 release requires the 1 degree configurations, IAF and RYF atmospheric forcing with bgc.
The goal is to have both COSIMA 1 degree BGC configurations as specially named branches in this repository, versioned (2.0) and tagged:
release-1deg_jra55_ryf_bgc
(repo)release-1deg_jra55_iaf_bgc
(repo)For each configuration this requires the following steps:
dev-*
branchgit checkout
an update branch from thisdev-*
branch, modify it to use input paths fromvk83
, ACCESS-NRI deployed model versions and update some metadata and configuration optionsdev-*
branch created above. Ensure QA checks pass, then mergerelease-*
branch if one doesn't already exist from thedev-*
branch and run a special workflow to add reproducibility checksums, version and tag.The release-1deg_jra55_ryf branch is the template to follow for RYF configurations. Similarly the release-1deg_jra55_iaf branch is the template to follow for IAF configurations.
There is a Contributing Guide which covers in more detail how to add and change configurations, but below are specific instructions for this specific task of porting COSIMA configurations to this repo.
The ACCESS-OM2-BGC spack.location file gives the paths to the BGC installed components (note only the MOM5 build differs from the physics only ACCESS-OM2):
Steps to follow to add a COSIMA configuration to this repo:
gh repo clone ACCESS-NRI/access-om2-configs
gh repo clone COSIMA/1deg_jra55_ryf
cd access-om2-configs
remote add 1deg_jra55_ryf ../1deg_jra55_ryf
git checkout -b dev-1deg_jra55_ryf 1deg_jra55_ryf/master+bgc
Steps to modify a configuration:
Because this is modifying an existing COSIMA configuration we would like to make sure the changes we're making are not introducing any source of error. There is a slow way (test bit reproducibility) or a fast way (use manifest checksums). Both options are outlined below. Choose which you're comfortable using. If you do choose the slow way, it probably isn't necessary to do it for all configurations, as it is possible to compare the branches and use that as a sanity check, as they should differ in small but deterministic ways.
dev-
orrelease-
), e.g.git checkout update-1deg_jra55_ryf
Either Option 1: make changes and rely on manifests for error checking (fast)
config.yaml
input paths to point to the new structure invk83
(see 1 degree config). Note paths toqv56
for IAF configs remains unchanged.payu setup
to generate new input manifests. Rungit diff manifests/input.yaml
and confirm that onlyfullpath
andbinhash
entries modified. Allmd5
hashes should be unchanged. This confirms the inputs are identical to the COSIMA configuration.vk83
(see above for paths, and note there are different CICE executables for the different resolutions)payu setup
to generate new executable manifests. Rungit diff manifests/input.yaml
and confirm thatfullpath
,binhash
andmd5
entries are all modified. Allmd5
hashes should be changed.Or Option 2: make changes and use model runs to check reproducibility (or close to it)
runlog: false
to prevent unnecessary git commits during testingconfig.yaml
input paths to point to the new structure invk83
(see 1 degree config). Note paths toqv56
for IAF configs remains unchanged.vk83
(see above for paths, and note there are different CICE executables for the different resolutions)git mv resub.sh tools/.
. Update config.yaml as required to point to new locations.collate
exe
to point to/g/data/vk83/apps/mppnccombine-fast/0.2/bin/mppnccombine-fast
git push
update branch to repository and create a pull request to thedev-*
branch you created and pushed in first section.2.0
to indicate that this is no longer bit reproducible with the COSIMA (1.0) versions.As a guide this GitHub comparison shows the changes required for the 1 degree RYF configuration.
224b125...3f4cd6e
Bit reproducibility comparisons
We no longer have bit reproducibility with historical (COSIMA) versions of ACCESS-OM2 because we have opted to turn on compile options to ensure we have reproducibility across modified restart boundaries.
However the outputs should remain bit reproducible until the point where executables are modified.
Regardless, even when the executables are modified it is a good idea to run the model to check the differences after a short time are what we'd expect: just some noise in the fields.
For comparing model outputs I recommend a few different tools:
nccmp
(/g/data/hh5/public/apps/miniconda3/envs/analysis3-23.07/bin/nccmp
)nccmp
is silent when files are equivalent, otherwise it will echo to STDERR whether metadata or a specific variable differs. By default, comparing stops after the first difference.ncdiff
(/g/data/hh5/public/apps/miniconda3/envs/analysis3-23.07/bin/ncdiff
)ncdiff
subtracts one netcdf file from anotherncview
(/apps/ncview/2.1.7/bin/ncview
)Simple Xwindows based netCDF file viewer. When subtracting one file from another it is a good idea to make sure the files contain actual data. If they're empty you may get a false negative for bit reproducibility as they will be identical.
6/4: Instructions updated
The text was updated successfully, but these errors were encountered: