Skip to content

Running GEOSgcm through a Singularity Sandbox

Anik Mumssen edited this page Jul 21, 2023 · 5 revisions

GitLab Setup

Scroll down and follow steps 1-11 in the "How to use NCCS GitLab CI:" section of the NCCS website.
Link: https://www.nccs.nasa.gov/nccs-users/instructional/containers
Once you've completed the steps, you should have a .sif image file in your local directory.

Building the sandbox

0. Official Github Packages

Here's a link to the official GEOSgcm packages: https://github.com/GEOS-ESM/GEOSgcm/pkgs/container/geosgcm
Since this is a work-in-progress (and is not yet really user-friendly), this doesn't quite work yet, but it will eventually.
For more information, contact [email protected]
Proceed with step 1.

1. Navigate to the directory with your .sif file

Module load singularity:

First, use module load singularity
OR
Add module load singularity into your .bashrc hidden file in your home directory. This allows you to not have to type in this command every time you want to run a container.
It should go after "then" in the if [[ $- == *i* ]] then statement. \

Building the sandbox

Although you can use singularity shell $container_name to shell directly into the container, this isn't as useful as creating a sandbox directly.
To create the sandbox, use singularity build --sandbox mycontainer mycontainer.sif
This should take only a couple of seconds.

Building the code

Once you have your sandbox file (whatever you named it -- if you copied the code above, it should be called "mycontainer"), use cd into it.
Use ls and you should notice it looks like another operating system (with directories like "usr" and "sys", etc.).
Use cd GEOSgcm, then cd install/bin
To run the experiment, run gcm_setup with ./gcm_setup
From here, follow the instruction with the following link:
https://github.com/GEOS-ESM/GEOSgcm/wiki/Setting-up-an-AMIP-Experiment