Skip to content

Commit 6455631

Browse files
Update env, cmake, GEOS_Util and MAPL releases in components.yaml & update README.md after decommissioning of SLES12 at NCCS (#796)
2 parents ee7daba + e6c3eac commit 6455631

File tree

9 files changed

+109
-42
lines changed

9 files changed

+109
-42
lines changed

.circleci/config.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
version: 2.1
22

33
# Anchors in case we need to override the defaults from the orb
4-
#baselibs_version: &baselibs_version v7.17.0
5-
#bcs_version: &bcs_version v11.4.0
4+
#baselibs_version: &baselibs_version v7.32.0
5+
#bcs_version: &bcs_version v11.6.0
66

77
orbs:
8-
ci: geos-esm/circleci-tools@2
8+
ci: geos-esm/circleci-tools@4
99

1010
workflows:
1111
build-test:

.github/workflows/release-tarball.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,20 @@ jobs:
1414
with:
1515
path: ${{ github.event.repository.name }}-${{ github.event.release.tag_name }}
1616

17-
- name: Checkout mepo
18-
uses: actions/checkout@v4
17+
- name: Setup Python
18+
uses: actions/setup-python@v5
1919
with:
20-
repository: GEOS-ESM/mepo
21-
path: mepo
20+
python-version: '3.11'
21+
22+
- name: Pip install mepo
23+
run: |
24+
python -m pip install --upgrade pip
25+
pip install mepo
2226
2327
- name: Run mepo
2428
run : |
2529
cd ${GITHUB_WORKSPACE}/${{ github.event.repository.name }}-${{ github.event.release.tag_name }}
26-
${GITHUB_WORKSPACE}/mepo/mepo clone
30+
mepo clone
2731
2832
- name: Create tarball
2933
run: |

CMakeLists.txt

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required (VERSION 3.13)
1+
cmake_minimum_required (VERSION 3.24)
22
cmake_policy (SET CMP0053 NEW)
33
cmake_policy (SET CMP0054 NEW)
44

@@ -33,8 +33,55 @@ foreach (dir cmake @cmake cmake@)
3333
set (ESMA_CMAKE_PATH "${CMAKE_CURRENT_LIST_DIR}/${dir}" CACHE PATH "Path to ESMA_cmake code")
3434
endif ()
3535
endforeach ()
36+
37+
# We need to find MPI before we go into esma
38+
# for the MPI stack detection to work
39+
set(MPI_DETERMINE_LIBRARY_VERSION TRUE)
40+
find_package(MPI)
41+
3642
include (esma)
3743

44+
# Add CMake for when not using Baselibs
45+
if (NOT Baselibs_FOUND)
46+
47+
find_package(NetCDF REQUIRED C Fortran)
48+
add_definitions(-DHAS_NETCDF4)
49+
add_definitions(-DHAS_NETCDF3)
50+
add_definitions(-DNETCDF_NEED_NF_MPIIO)
51+
add_definitions(-DHAS_NETCDF3)
52+
53+
find_package(HDF5 REQUIRED)
54+
if(HDF5_IS_PARALLEL)
55+
add_definitions(-DH5_HAVE_PARALLEL)
56+
endif()
57+
58+
if (NOT TARGET ESMF::ESMF)
59+
find_package(ESMF 8.6.1 MODULE REQUIRED)
60+
target_link_libraries(ESMF::ESMF INTERFACE MPI::MPI_Fortran)
61+
62+
# GEOS uses lowercase target due to historical reasons but
63+
# the latest FindESMF.cmake file from ESMF produces an ESMF::ESMF target.
64+
if (NOT TARGET esmf)
65+
add_library(esmf ALIAS ESMF::ESMF)
66+
endif ()
67+
if (NOT TARGET ESMF)
68+
add_library(ESMF ALIAS ESMF::ESMF)
69+
endif ()
70+
endif ()
71+
72+
find_package(GFTL_SHARED REQUIRED)
73+
74+
find_package(ZLIB REQUIRED)
75+
# Another issue with historical reasons, old/wrong zlib target used in GEOS
76+
add_library(ZLIB::zlib ALIAS ZLIB::ZLIB)
77+
78+
find_package(MAPL 2.54 QUIET)
79+
if (MAPL_FOUND)
80+
message(STATUS "Found MAPL: ${MAPL_BASE_DIR} (found version \"${MAPL_VERSION})\"")
81+
endif ()
82+
83+
endif ()
84+
3885
ecbuild_declare_project()
3986

4087
# Generic DFLAGS

CMakePresets.json

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,14 @@
11
{
2-
"version": 3,
2+
"version": 7,
33
"cmakeMinimumRequired": {
44
"major": 3,
5-
"minor": 21,
5+
"minor": 27,
66
"patch": 0
77
},
8+
"include": [
9+
"presets/CMake$penv{CMAKE_PRESET_NAME}Presets.json"
10+
],
811
"configurePresets": [
9-
{
10-
"name": "base-configure",
11-
"hidden": true,
12-
"displayName": "Base Configure Settings",
13-
"description": "Sets build and install directories",
14-
"binaryDir": "${sourceDir}/build-${presetName}",
15-
"cacheVariables": {
16-
"BASEDIR": "$env{BASEDIR}",
17-
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install-${presetName}"
18-
}
19-
},
2012
{
2113
"name": "base-gnu",
2214
"hidden": true,

README.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,11 @@ module use -a (path)
1818
module load GEOSenv
1919
```
2020

21-
where `(path)` depends on the computing system; at NCCS, `(path)` also depends on the operating system (SLES12 on Skylake and Cascade Lake nodes; SLES15 on Milan nodes, as of Jan. 2024):
21+
where `(path)` depends on the computing system:
2222

2323
| System | Path |
2424
| ------------- |---------------------------------------------------|
25-
| NCCS Discover | `/discover/swdev/gmao_SIteam/modulefiles-SLES12` |
26-
| | `/discover/swdev/gmao_SIteam/modulefiles-SLES15` |
25+
| NCCS Discover | `/discover/swdev/gmao_SIteam/modulefiles-SLES15` |
2726
| NAS | `/nobackup/gmao_SIteam/modulefiles` |
2827
| GMAO desktops | `/ford1/share/gmao_SIteam/modulefiles` |
2928

@@ -39,22 +38,24 @@ For science runs, you can also obtain a specific tag or branch _only_ (as oppose
3938
```
4039
git clone -b v17.9.1 --single-branch git@github.com:GEOS-ESM/GEOSldas.git
4140
```
42-
41+
Helpful tip: You can speed up this step by applying the following, one-time `mepo` configuration change:
42+
```
43+
mepo config set clone.partial blobless
44+
```
45+
With this configuration change, the size of the initial clone will be reduced, and additional blobs are fetched later when needed.
4346

4447
### Step 3: Build the Model
4548

4649
To build the model in a single step, do the following from a head node:
4750
```
4851
cd ./GEOSldas
49-
parallel_build.csh
52+
./parallel_build.csh
5053
```
5154
This checks out all the external repositories of the model (albeit only on the first run, [see subsection on mepo below](#mepo)!) and then builds and installs the model.
5255

53-
At **NCCS**, the default is to build GEOSldas on SLES12 (Skylake or Cascade Lake nodes); to build GEOSldas on SLES15 (Milan nodes), use `parallel_build.csh -mil`.
56+
The resulting model build is found in `build/`, and the installation is found in `install/`, with setup scripts like `ldas_setup` in `install/bin/`.
5457

55-
The resulting model build is found in `build[-SLESxx]/`, and the installation is found in `install[-SLESxx]/`, with setup scripts like `ldas_setup` in `install[-SLESxx]/bin`.
56-
57-
To obtain a build that is suitable for debugging, use `parallel_build.csh -debug`, which builds in `build-Debug[-SLESxx]/` and installs in `install-Debug[-SLESxx]/`. There is also an option for aggressive optimization. For details, see the [GEOSldas Wiki](https://github.com/GEOS-ESM/GEOSldas/wiki).
58+
To obtain a build that is suitable for debugging, use `./parallel_build.csh -debug`, which builds in `build-Debug/` and installs in `install-Debug/`. There is also an option for aggressive optimization. For details, see the [GEOSldas Wiki](https://github.com/GEOS-ESM/GEOSldas/wiki).
5859

5960
Instructions for building the model in multiple steps are provided below.
6061

@@ -63,13 +64,11 @@ Instructions for building the model in multiple steps are provided below.
6364
## How to Set Up (Configure) and Run GEOSldas
6465

6566

66-
a) At **NCCS**, GEOSldas must be built, configured, and run on the same operating system. To run GEOSldas on Milan nodes (SLES15), start with `ssh discover-mil`.
67-
68-
b) Set up the job as follows:
67+
Set up the job as follows:
6968

7069
```
71-
cd (build_path)/GEOSldas/install[-SLESxx]/bin
72-
source g5_modules [for bash or zsh: source g5_modules.[z]sh]
70+
cd (build_path)/GEOSldas/install/bin
71+
source g5_modules [for bash or zsh: source g5_modules.[z]sh]
7372
./ldas_setup setup [-v] (exp_path) ("exe"_input_filename) ("bat"_input_filename)
7473
```
7574

components.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ GEOSldas:
55
env:
66
local: ./@env
77
remote: ../ESMA_env.git
8-
tag: v4.29.1
8+
tag: v4.36.0
99
develop: main
1010

1111
cmake:
1212
local: ./@cmake
1313
remote: ../ESMA_cmake.git
14-
tag: v3.52.0
14+
tag: v3.57.0
1515
develop: develop
1616

1717
ecbuild:
@@ -36,7 +36,7 @@ GMAO_Shared:
3636
GEOS_Util:
3737
local: ./src/Shared/@GMAO_Shared/@GEOS_Util
3838
remote: ../GEOS_Util.git
39-
tag: v2.1.3
39+
tag: v2.1.6
4040
sparse: ./config/GEOS_Util.sparse
4141
develop: main
4242

@@ -45,7 +45,7 @@ GEOS_Util:
4545
MAPL:
4646
local: ./src/Shared/@MAPL
4747
remote: ../MAPL.git
48-
tag: v2.50.1
48+
tag: v2.54.2
4949
develop: develop
5050

5151
GEOSldas_GridComp:

parallel_build.csh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@ if (! -d ${ESMADIR}/@env) then
4141
echo " Please run from a head node"
4242
exit 1
4343
else
44-
echo "Running mepo initialization"
45-
mepo init
44+
echo "Running mepo clone"
4645
mepo clone
4746
endif
4847
endif

presets/CMakeDefaultPresets.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"configurePresets": [
3+
{
4+
"name": "base-configure",
5+
"hidden": true,
6+
"displayName": "Base Configure Settings",
7+
"description": "Sets build and install directories",
8+
"binaryDir": "${sourceDir}/build-${presetName}",
9+
"installDir": "${sourceDir}/install-${presetName}"
10+
}
11+
],
12+
"version": 7
13+
}

presets/CMakeNCCSPresets.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"configurePresets": [
3+
{
4+
"name": "base-configure",
5+
"hidden": true,
6+
"displayName": "Base Configure Settings",
7+
"description": "Sets build and install directories",
8+
"binaryDir": "$penv{CMAKE_BUILD_LOCATION}/${sourceDirName}/build-${presetName}",
9+
"installDir": "$penv{CMAKE_INSTALL_LOCATION}/${sourceDirName}/install-${presetName}"
10+
}
11+
],
12+
"version": 7
13+
}

0 commit comments

Comments
 (0)