Skip to content

GEOSgcm on SLES15 at NCCS

Matthew Thompson edited this page Jul 30, 2024 · 9 revisions

This page will outline how to get GEOSgcm tags that build on SLES15.

NOTE: In all cases, you must build on SLES15 to run on SLES15. The OSs have library differences that prevent code built on SLES12 from running on SLES15 and vice versa. The usual sign of trying to run across the OSs is a libssl error.

Prerequisites

All the instructions below assume you have the GEOSenv module loaded, or at least have a modern CMake, Git and mepo in your path. The recommended NCCS shell configurations should do this automatically for you, though of course a module purge will remove GEOSenv from your environment.

Python Note

Note that on SLES15 Python2 DOES NOT EXIST. As such, any Python2 scripts in the codebase will not work. This is most likely to be seen in the f2py scripts which when building on SLES15 will be disabled. This is a known issue and is being worked on.

GEOSgcm v11

Any GEOSgcm v11 tag from v11.3.1 should build and run on SLES15. As usual we recommend the latest GEOSgcm v11 tag (v11.6.0 as of writing).

Compiling for SLES15

parallel_build.csh

To build for SLES15 using parallel_build.csh you must run with the -mil option (along with any other options you use), e.g.:

./parallel_build.csh -mil (... any extra options ...)

The -mil option tells parallel_build.csh to submit to the Milan nodes which are SLES15. When complete, you should have build-SLES15/ and install-SLES15/ directories.

Building by hand

To compile on SLES15, you will need to build on SLES15. For this, grab a Milan node interactively and use the normal sequence of GEOSgcm build:

source @env/g5_modules.sh
cmake -B build-SLES15 -S . --install-prefix=$(pwd)/install-SLES15 (... any extra CMake options ...)
cmake --build build-SLES15 --target install -j 6

GEOSgcm v10

A SLES15-compatible GEOSgcm v10 tag is v10.26.1

Getting the code

mepo clone -b v10.26.1 [email protected]:GEOS-ESM/GEOSgcm.git

Compiling for SLES15

parallel_build.csh

To build for SLES15 using parallel_build.csh you must run with the -mil option (along with any other options you use), e.g.:

./parallel_build.csh -mil (... any extra options ...)

The -mil option tells parallel_build.csh to submit to the Milan nodes which are SLES15. When complete, you should have build-SLES15/ and install-SLES15/ directories.

Building by hand

To compile on SLES15, you will need to build on SLES15. For this, grab a Milan node interactively and use the normal sequence of GEOSgcm build:

source @env/g5_modules.sh
cmake -B build-SLES15 -S . --install-prefix=$(pwd)/install-SLES15 (... any extra CMake options ...)
cmake --build build-SLES15 --target install -j 6

Differences between SLES12 and SLES15

Unlike GEOSgcm v11, v10 (and older tags) seem to be non-zero-diff between Cascade Lake and Milan. That is, you will not get the same results running on SLES12 and SLES15. We do not know why this is, but it either has to do with newer compiler flags in v11 or some fix in the Physics changes that came in v11.

M21C

The latest M21C testing tag, GEOSadas-5.30.3-M21C-2:

https://github.com/GEOS-ESM/GEOSadas/releases/tag/GEOSadas-5.30.3-M21C-2

should now be able to build for SLES15. Note that since the M21C GCM is based on v10.26, the GCM (aka GEOSgcm.x) should run on SLES15. That said, the M21C code base is most likely not yet fully compatible with SLES15, but the full ADAS system needs updates for Python3 as well as any embedded SLURM references to, say, Cascade Lake, need updating for Milan.

Building for SLES15

As above, after cloning, you can build with parallel_build.csh:

cd GEOSadas
./parallel_build.csh -mil

or by hand following the instructions above.

S2S v3

There is CVS tag of S2S that is under testing now for SLES15 compatibility. This space will be updated when this tag is tested and confirmed as working.

Icarus

A tag based on Icarus-3_4 has been made and shown to build on SLES15. You can get the tag via:

cvs co -r Icarus-3_4-SLES15 Icarus

You can then build on SLES15 with:

cd GEOSagcm/src
./parallel_build.csh -mil

and on SLES12 with:

cd GEOSagcm/src
./parallel_build.csh -cas

(NOTE: If no -cas or -mil is given, the script will default to -mil in this case.)

Python Warning

NOTE: This tag still has many Python2 scripts and all f2py scripts are disabled. There is a hope as f2py scripts in GEOSgcm v11+ are updated to Python3, changed can be backported to Icarus and the tag updated.

Ganymed

There is a CVS tag of Ganymed-4_0 that was shown to build under SLES15. The tag is Ganymed-4_0-SLES15 and can be checked out with:

cvs co -r Ganymed-4_0-SLES15 Ganymed

Python Warning

NOTE: This tag still has many Python2 scripts and all f2py scripts are disabled. There is a hope as f2py scripts in GEOSgcm v11+ are updated to Python3, changed can be backported to Ganymed and the tag updated.