Skip to content

The C ESM EP in a nutshell

Stéphane Sénési edited this page Dec 18, 2024 · 35 revisions

On this page you will find the basic steps to run the C-ESM-EP on Spirit or Irene for the first time. This also applies for running it at CNRM, except for a few specifics described at Running C-ESM-EP at CNRM

Get the C-ESM-EP

Start by copying the sources on your /home:

On Spirit: you can simply copy the reference directory on Spirit, which is generally the most up-to-date:

cd <some directory>
mkdir C-ESM-EP
cp -r /net/nfs/tools/Users/SU/jservon/cesmep_installs/cesmep_for_libIGCM C-ESM-EP

You may also clone the git repo, which version may be slightly behind the one above

git clone https://github.com/jservonnat/C-ESM-EP.git

On Irene, you just copy the sources:

mkdir C-ESM-EP
cp -r /ccc/cont003/home/igcmg/igcmg/Tools/cesmep C-ESM-EP

Set your e-mail in run_C-ESM-EP.py

In the script run_C-ESM-EP.py you will find a variable 'email' that you should set to:

  • your e-mail if you want to receive a notification at the end of each job
  • None if you want to deactivate it

Run the standard_comparison

Then run the standard_comparison comparison (provided as an example):

cd C-ESM-EP
source setenv_C-ESM-EP.sh
python run_C-ESM-EP.py standard_comparison

This will submit one job per available component/atlas in the standard_comparison directory. Note: standard_comparison contains a subset of the available atlases that is suitable for a coupled model. There are more atlases available in share/optional_atlas

The script will return the url of the C-ESM-EP html frontpage:

[...]
component =  Monsoons
2246587
/home/fabric/users/jservon/C-ESM-EP

-- The CliMAF ESM Evaluation Platform will be available here:
--
--   https://vesg.ipsl.upmc.fr/thredds/fileServer/IPSLFS/fabric/C-ESM-EP/standard_comparison_jservon/C-ESM-EP_standard_comparison.html
--
--
-- html file can be seen here:
-- /prodigfs/ipslfs/dods/fabric/C-ESM-EP/standard_comparison_jservon/C-ESM-EP_standard_comparison.html
fabric@ciclad-ng:~/users/jservon/C-ESM-EP>

Just get the url

Note: if you just want to get the url of a comparison without running the atlases, add url at the end of the command line and the script will simply return the url of the frontpage:

python run_C-ESM-EP.py standard_comparison url

Running the C-ESM-EP interactively

Running the C-ESM-EP interactively is really interesting if you are debugging, or making tests. We recommend to restrict interactive use of the C-ESM-EP only for tests and small atlases (not convenient for long jobs anyway).

First, submit an interactive session like this:

=> On Spirit:

srun --pty --mem-per-cpu=16G  --time=60

(set the memory according to your needs)

=> at TGCC:

ccc_mprun -p skylake -T 3600 -s

Check the online documentation of ccc_mprun at TGCC by passing the empty command:

ccc_mprun

to see all the available options (number of cores, memory limit).

=> at CNRM: nothing special to do

Then, go back to your comparison directory:

cd C-ESM-EP/my_comparison

You can then run your component interactively like this:

../job_C-ESM-EP.sh my_component

with my_component being the name of the component you are interested (could be AtlasExplorer, Atmosphere_Surface, NEMO_main, ORCHIDEE...)

Update your C-ESM-EP

If you got your C-ESM-EP code from github (or with a git clone of the Ciclad repo), get the last version of the C-ESM-EP doing:

git pull

in your working directory. If you copied your sources from the directory on Irene, do:

cp -r [path_to_home_drf]/p86jser/C-ESM-EP/src/* .

from your working directory.

Warning: if there are modifications on the params_*.py files in standard_comparison, re-start a new comparison from standard_comparison and not from one of your existing comparisons to benefit from the new features (and potentially avoid errors).

Run sets of atlases: LMDZ, NEMO, ORCHIDEE...

But there are also some pre-defined sets of atlases that you can run with the following arguments:

python run_C-ESM-EP.py my_comparison OA

=> 'Atmosphere_Surface', 'Atmosphere_zonmean', 'NEMO_main', 'NEMO_zonmean', 'NEMO_depthlevels', 'Atlantic_Atmosphere_Surface', 'ENSO', 'PISCES’

python run_C-ESM-EP.py my_comparison LMDZ

=> 'Atmosphere_Surface', 'Atmosphere_zonmean', 'Atmosphere_StdPressLevs’

python run_C-ESM-EP.py my_comparison LMDZOR

=> 'Atmosphere_Surface', 'Atmosphere_zonmean', 'Atmosphere_StdPressLevs', 'ORCHIDEE’

python run_C-ESM-EP.py my_comparison NEMO

=> 'NEMO_main', 'NEMO_zonmean', 'NEMO_depthlevels’, ‘PISCES’

Feel free to specify yours in run_C-ESM-EP.py (follow the examples in run_C-ESM-EP.py)

Debugging and handling errors

You will find detailed documentation about errors and how to track and correct them on this page

clean_out_error.sh, a script to clean the outputs

The C-ESM-EP can produce a large volume of output/error/log files. You can easily clean those files use the clean_out_error.sh script:

bash clean_out_error.sh

Move on to Building my comparison part 1 if you have successfully done all the steps!

And also have a look at how to use set_available_period_ts_clim.py to take advantage of a faster C-ESM-EP.