Skip to content

Commit

Permalink
Merge branch 'develop' into release/MAPL-v3
Browse files Browse the repository at this point in the history
# Conflicts:
#	components.yaml
  • Loading branch information
mathomp4 committed Dec 4, 2023
2 parents 308ecef + 5669de0 commit 6b6a54d
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 20 deletions.
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: 2.1

# Anchor to prevent forgetting to update a version
baselibs_version: &baselibs_version v7.13.0
baselibs_version: &baselibs_version v7.16.0

orbs:
ci: geos-esm/circleci-tools@1
Expand Down
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This document explains how to build, set up, and run the GEOS land modeling and

## How to Build GEOSldas

### Step 1: Load the Build Modules
### Step 1: Load the Build Modules

Load the `GEOSenv` module provided by the GMAO Software Infrastructure team. It contains the latest `git`, `CMake`, and `mepo` modules and must be loaded in any interactive window that is used to check out and build the model.

Expand All @@ -13,7 +13,7 @@ module use -a (path)
module load GEOSenv
```

where `(path)` depends on the computer and operating system:
where `(path)` depends on the computer and operating system:

| System | Path |
| ------------- |---------------------------------------------------|
Expand All @@ -28,7 +28,7 @@ For development work, clone the _entire_ repository and use the `develop` branch
```
git clone -b develop git@github.com:GEOS-ESM/GEOSldas.git
```
For science runs, you can also obtain a specific tag or branch _only_ (as opposed to the _entire_ repository), e.g.:
For science runs, you can also obtain a specific tag or branch _only_ (as opposed to the _entire_ repository), e.g.:
```
git clone -b v17.9.1 --single-branch git@github.com:GEOS-ESM/GEOSldas.git
```
Expand All @@ -40,10 +40,10 @@ To build the model in a single step, do the following:
```
cd ./GEOSldas
parallel_build.csh
```
from a head node. Doing so will check out all the external repositories of the model (albeit only on the first run, [see subsection on mepo below](#mepo)!) and build the model. When done, the resulting model build will be found in `build/` and the installation will be found in `install/`, with setup scripts like `ldas_setup` in `install/bin`.
```
from a head node. Doing so will check out all the external repositories of the model (albeit only on the first run, [see subsection on mepo below](#mepo)!) and build the model. When done, the resulting model build will be found in `build-SLES12/` and the installation will be found in `install-SLES12/`, with setup scripts like `ldas_setup` in `install-SLES12/bin`.

To obtain a build that is suitable for debugging, use `parallel_build.csh -debug`, which will build in `build-Debug/` and install in `install-Debug/`. There is also an option for aggressive optimization. For details, see [GEOSldas Wiki](https://github.com/GEOS-ESM/GEOSldas/wiki).
To obtain a build that is suitable for debugging, use `parallel_build.csh -debug`, which will build in `build-Debug-SLES12/` and install in `install-Debug-SLES12/`. There is also an option for aggressive optimization. For details, see [GEOSldas Wiki](https://github.com/GEOS-ESM/GEOSldas/wiki).

See below for how to build the model in multiple steps.

Expand All @@ -57,7 +57,7 @@ a) Set up the job as follows:
cd (build_path)/GEOSldas/install/bin
source g5_modules [for bash or zsh: source g5_modules.[z]sh]
./ldas_setup setup [-v] (exp_path) ("exe"_input_filename) ("bat"_input_filename)
```
```

where

Expand All @@ -70,14 +70,14 @@ where

The three arguments for `ldas_setup` are positional and must be ordered as indicated above.

The latter two files contain essential information about the experiment setup.
The latter two files contain essential information about the experiment setup.
Sample files can be generated as follows:
```
```
ldas_setup sample --exeinp > YOUR_exeinp.txt
ldas_setup sample --batinp > YOUR_batinp.txt
```

Edit these sample files following the examples and comments within the sample files.
Edit these sample files following the examples and comments within the sample files.

The ldas_setup script creates a run directory and other directories at:
`[exp_path]/[exp_name]`
Expand Down Expand Up @@ -156,7 +156,7 @@ and CMake will install there.
```
make -j6 install
```
If you are at NCCS, you **should** run `make -j6 install` on an interactive _compute_ node.
If you are at NCCS, you **should** run `make -j6 install` on an interactive _compute_ node.


## Contributing
Expand Down
6 changes: 3 additions & 3 deletions components.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ GEOSldas:
env:
local: ./@env
remote: ../ESMA_env.git
tag: v4.17.0
tag: v4.23.0
develop: main

cmake:
local: ./@cmake
remote: ../ESMA_cmake.git
tag: v3.30.0
tag: v3.36.0
develop: develop

ecbuild:
Expand All @@ -22,7 +22,7 @@ ecbuild:
GMAO_Shared:
local: ./src/Shared/@GMAO_Shared
remote: ../GMAO_Shared.git
tag: v1.9.1
tag: v1.9.6
sparse: ./config/GMAO_Shared.sparse
develop: main

Expand Down
8 changes: 3 additions & 5 deletions src/Applications/LDAS_App/ldas_setup
Original file line number Diff line number Diff line change
Expand Up @@ -1335,8 +1335,6 @@ class LDASsetup:
fout.write(line_.replace('MY_NTASKS_PER_NODE',str(self.rqdRmInp['ntasks-per-node'])))
if int(self.rqdRmInp['ntasks-per-node']) > 40:
fout.write("#SBATCH --constraint=cas\n")
if (28 < int(self.rqdRmInp['ntasks-per-node']) and int(self.rqdRmInp['ntasks-per-node']) <= 40) :
fout.write("#SBATCH --constraint=sky\n")
elif 'MY_OSERVER_NODES' in line :
fout.write(line.replace('MY_OSERVER_NODES',str(self.optRmInp['oserver_nodes'])))
elif 'MY_WRITERS_NPES' in line :
Expand Down Expand Up @@ -1609,9 +1607,9 @@ def _printRmInputKeys(rqdRmInpKeys, optRmInpKeys):
print ('# [At NCCS: Use command "getsponsor" to see available account number(s).]' )
print ('# - walltime = walltime requested; format is HH:MM:SS (hours/minutes/seconds)')
print ('# - ntasks_model = number of processors requested for the model (typically 112; output server is not included)')
print ('# - ntasks-per-node = number of tasks per node (typically 46 for cascade lake*, 40 for skylake, and 28 for haswell nodes)')
print ('# [If >40, cascade lake nodes will be allocated, if >28, cascade or skylake, else cascade, skylake or haswell.]')
print ('# [*NCCS recommends <=46 cores per node on SCU16 (cascade lake) due to OS issues (as of 6 Oct 2021).]')
print ('# - ntasks-per-node = number of tasks per node (typically 46 for cascade* and 40 for skylake nodes)')
print ('# [If >40, cascade nodes will be allocated, else cascade or skylake.]')
print ('# [*NCCS recommends <=46 cores per node on SCU16 (cascade) due to OS issues (as of 6 Oct 2021).]')
print ('#')
for key in rqdRmInpKeys:
print (key + ':')
Expand Down

0 comments on commit 6b6a54d

Please sign in to comment.