-
Notifications
You must be signed in to change notification settings - Fork 361
Installing CUPID
This page follows the CUPiD Installation Documentation, with some tweaks specific to the NCAR super computer.
cd /glade/work/$USER
mkdir ctsm_cupid_2026
cd ctsm_cupid_2026
git clone --origin escomp -b CUPiD https://github.com/ESCOMP/CTSM.git
cd CTSM
./bin/git-fleximod updateYou will see something like this:
rtm up to date.
mosart up to date.
cism up to date.
Recursively checking out submodules of cism
ccs_config up to date.
mpi-serial up to date.
share up to date.
cdeps up to date.
Recursively checking out submodules of cdeps
cmeps up to date.
cupid updated to 6b12f0b093e2f9f0d91061960975270b63cfad5a
Recursively checking out submodules of cupid
mizuRoute up to date.
Recursively checking out submodules of mizuRoute
parallelio up to date.
fates up to date.
Recursively checking out submodules of fates
cime up to date.
Recursively checking out submodules of cime
CUPiD is available from the NCAR organization on github.com. And comes with the version of CTSM that you checked out above (in the tools/CUPiD subdirectory). It requires conda to manage a few different python environments. The NCAR system administrators provide conda through a module, which you can access by running
module load conda
The rest of this tutorial will refer to the location with CUPiD in the CTSM checkout as ${CUPID_ROOT}. To be able to copy and paste blocks of commands directly, we need to add the variable to your environment.
This tutorial assumes you're using a bash shell, which most of you are using by default Linux and Unix computers. We'll the environment variable CUPID_ROOT
cd tools/CUPiD
export CUPID_ROOT=`pwd -P`Note: This environment variable only exists in this specific terminal. It will need to exported again if you open a separate terminal, unless you modify your start files (see the NCAR documentation for this process for more information).
At this point you should have an open terminal on casper and the current working directory should be your ctsm_cupid_2026 workshop directory.
CUPiD needs a python environment with specific packages installed to run the CUPiD tools, while the diagnostic notebooks provided with CUPiD need a different set of packages.
To run CUPiD itself we use the (cupid-infrastructure) environment, then CUPiD runs the diagnostics notebooks with (cupid-analysis). We will use mamba to install these environments and the --yes option to avoid mamba waiting for approval before continuing with the install:
cd ${CUPID_ROOT}
mamba env create -f environments/cupid-infrastructure.yml --yes && \
mamba env create -f environments/cupid-analysis.yml --yes
BE PATIENT Managing these python environments is kind of slow and may take 10-15 minutes. The last line printed to the screen will say something about doing a pip install on some of the external packages we'll use (e.g. ILAMB). This also takes a bit of time. Your command line will return after it's finished. While this is running, you can keep reading this page and learning more about CUPiD.
Notes:
In the command above you're executing two separate commands separated by &&; the second command (installing (cupid-analysis)) will only run if the first command (installing (cupid-infrastructure) finishes successfully). Also, the \ is a line continuation operator - without it, the command would be on a single line and very long.
If you remove the --yes flag, mamba will ask you to confirm the installation after it determines what packages will be installed.
mamba activate cupid-infrastructureIf you get an error that looks something like "critical libmamba Shell not initialized", you'll need to install mamba for bash.
mamba shell init --shell bashYou've cloned CTSM enabled with CUPiD and created the conda environments and made sure you can use them. Let's learn a bit about CUPID before you start your analyses!
Next to the CUPiD overview page
Back to the Main LMWG-CUPiD Tutorial Page
-
General
-
Documents
-
Bugs/Issues
-
Tutorials
-
Development guides
CTSM Users:
CTSM Developer Team
-
Meetings
-
Notes