You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add compile and platform yamls to compile model with FRE/2025.01 (#131)
* Add compile and platform yamls, modify experiment yaml to work with them
* Added yaml README and add comments to experiment yaml explaining how to run fre make
* Addressed comments in first review of PR #131, removed commented out code
* fixed format
---------
Co-authored-by: Utheri Wagura <Utheri.Wagura@gaea55.ncrc.gov>
Co-authored-by: Utheri Wagura <Utheri.Wagura@gaea53.ncrc.gov>
Co-authored-by: Yi-Cheng Teng - NOAA GFDL <143743249+yichengt900@users.noreply.github.com>
# 2b.) (OPTIONAL, BUT RECOMMENDED): Create a list of available tar files within your history tar archives to allow fre to catch a wider variety of errors
The latest version of the FMS Runtime Environment uses yamls instead of xmls to execute the FRE workflow. This folder contains experiment, compile, and platform yamls that can be used with the latest version of `fre` to compile and post process the `CEFI_NWA12_Cobalt_V1` experiment. The compiled experiment can then be run in conjuction with `fre/bronx-23` and the existing xmls in the `xml/NWA12` directory.
4
+
5
+
The following sections assume that you are compiling and running experiments on Gaea C5, and then conducting postprocessing on GFDL's PPAN system. The `platforms.yaml` does support compilation on C6, but `bronx-23` does not support containerized runs on C6 - baremetal runs, however, are supported on C6.
6
+
7
+
Full documentation for `Fre/2025.01` is available [here](https://noaa-gfdl.github.io/fre-cli/usage.html)
8
+
9
+
## Compile the Experiment.
10
+
11
+
Begin by loading the appropriate modules on Gaea C5:
12
+
```
13
+
module use -a /ncrc/home2/fms/local/modulefiles
14
+
module load fre/2025.01
15
+
```
16
+
17
+
`fre/2025.01` supports both containerized compilation and bare-metal compilation, with very similar steps for both targets.
18
+
19
+
### Baremetal Compilation
20
+
21
+
Run the following command to create the script that will be used to checkout the model components, and optionally run the script by passing in the --execute flag.
22
+
If you don't provide the --execute flag, be sure to run the script printed at the end of this command manually.
23
+
```
24
+
fre make create-checkout -y CEFI_NWA12_cobalt.yaml -p ncrc5.intel23 -t prod --execute
25
+
```
26
+
27
+
Create the Makefile for the experiment:
28
+
```
29
+
fre make create-makefile -y CEFI_NWA12_cobalt.yaml -p ncrc5.intel23 -t prod
30
+
```
31
+
32
+
Create the script that actually compiles the experiment, and optionally run the script by passing in the --execute flag
33
+
```
34
+
fre make create-compile -y CEFI_NWA12_cobalt.yaml -p ncrc5.intel23 -t prod --execute
35
+
```
36
+
37
+
### Containerized Compilation
38
+
39
+
Compiling the experiment into a container is a similar process. The only changes are 1.) passing in the -npc flag during the checkout step to prevent parallel checkouts, 2.) changing you platform to `hpcme.2023` and 3.) creating a Dockerfile and container creation script instead of a compilation script. Note that the Dockerfile will compile the model within the container as part of the build process.
40
+
41
+
```
42
+
fre make create-checkout -y CEFI_NWA12_cobalt.yaml -p hpcme.2023 -t prod -npc
43
+
fre make create-makefile -y CEFI_NWA12_cobalt.yaml -p hpcme.2023 -t prod
44
+
fre make create-dockerfile -y CEFI_NWA12_cobalt.yaml -p hpcme.2023 -t prod --execute
45
+
```
46
+
47
+
## Running the Experiment
48
+
49
+
`fre/2025.01` does not currently support running experiments with yamls, so in order to run the compiled experiment in fre, you will have to use the existing xmls along with `fre/bronx`. Make sure the `FRE_STEM` set in the xml matches the `FRE_STEM` set in the experiment yaml.
50
+
51
+
**NOTE**: Since capitilized names are not allowed in Dockerfiles, the current compile yaml names the compilation experiment `mom6_sis2_generic_4p_compile_symm_yaml` instead of `MOM6_SIS2_GENERIC_4P_compile_symm_yaml` like the xml. As a result, `fre` will print a warning that it cannot find your executable when you run `frerun`, and will eventually fail if you submit the job.
52
+
53
+
To get around this, change the path set in the `executable` variable within the runscript printed by `frerun` to point to the exectable located in `${FRE_STEM}/mom6_sis2_generic_4p_compile_symm_yaml/exec` instead.
54
+
55
+
### Baremetal Run
56
+
57
+
Baremetal experiments can be run using the same run [instructions](https://github.com/NOAA-GFDL/CEFI-regional-MOM6/tree/main/xmls) available in the xmls directory. Be sure to load the modules described in that page before running `frerun`.
58
+
59
+
### Containerized Run
60
+
Current xmls can be used for containerized runs, as well, so long as the following changes are made:
61
+
62
+
1.) Run `module load fre/bronx-23` and change the `FRE_VERSION` property of the xml to `bronx-23`.
63
+
2.) Right below the `<experiment name="CEFI_NWA12_COBALT_V1" inherit="MOM6_SIS2_GENERIC_4P_compile_symm">` tag, add a tag with a path to your `.sif` singularity image file:
64
+
```
65
+
<containerfile="path/to/container/"/>
66
+
```
67
+
68
+
With these changes, you should be able to run the experiment by calling `frerun` with an extra `--container` flag
0 commit comments