Skip to content

AK K64G Example Ensemble Simulation

Shawn P. Serbin edited this page Oct 5, 2022 · 36 revisions

Run an ELM ensemble simulation using OLMT at the AK K64G (Kougarok) study site

This demo illustrates how to execute a single-pixel ELM v2 simulation at an NGEE-Arctic study site (i.e. Utqiagvik, Council, Kougarok, Teller). This example illustrates how to configure, run, edit then re-run ELM ensemble simulations. We will start with the Kougarok site but the same approach can be used at any of the four main sites (i.e. Utqiagvik, Council, Kougarok, Teller). The initial demo will demonstrate how to run a shorted ensemble experiment as well as how to setup a proper ensemble simulation that you can run at a later time. As usual, the simulations are controlled by a wrapper script that utilizes the Offline Land Model Testbed, developed and maintained by Dan Ricciuto (ricciutodm@ornl.gov). OLMT controls the creation, configuration, and execution of each ensemble simulation. At the completion of each simulation, the wrapper calls the "ncrcat" command to concatenate all transient simulation years and model variables into a new output file called "ELM_output.nc" within each ensemble member directory. Once complete, the ensemble output will be analyzed in a Jupyter notebook using the provided Jupyter-Lab container environment.

Part 1: Running a short ensemble simulation to demonstrate setting up, running, and viewing ensemble output

  • First, you will need to download the ELM container designed to run ensembles. You can copy and paste the following code in your terminal window
docker pull fasstsimulation/elm-builds:elm_v2-for-ngee-serial_multiarch
  • To perform a quick ensemble, you can copy and paste the following code in your terminal window
docker run -t -i --hostname=docker --user modeluser -v elmdata:/inputdata -v elmoutput:/output fasstsimulation/elm-builds:elm_v2-for-ngee-serial_multiarch /scripts/OLMT_ens_docker_example.sh --site_name=kougarok --ad_spinup_years=10 --final_spinup_years=20 --transient_years=5 --num_ens=6 --num_groups=3

This will execute an ensemble with the following options:
case_prefix=OLM_ens (default, can be changed. We will explore changing this below) site_name=kougarok
ad_spinup_years=10
final_spinup_years=20
transient_years=5
num_ens=6
num_groups=2

This translates to 10 years of accelerated decomposition spinup, 20 years of standard spinup, and a 5 (1850-1855) year transient simulation per ensemble member. The additional options are the number of parameter ensembles (6) and the number of MPI groups (2) to run these cases.

  • The default file to control parameter options (param_list_example_kougarok) is located in the /scripts folder in the ELM container. We can view this later, for now here is a copy of what that file contains
flnr 11 0.07 0.145
flnr 12 0.07 0.145
vcmaxha 11 50000 75000
vcmaxha 12 50000 75000
jmaxha 11 35000 55000
jmaxha 12 35000 55000
roota_par 11 4.0 10
roota_par 12 6 15
mbbopt 11 2 13
mbbopt 12 2 13
slatop 11 0.009 0.045
slatop 12 0.009 0.045

* Once you start the ensemble simulations and after the model builds and the cases start executing, you will see a new "UQ" folder show up in your "elmoutput" docker volume. Inside you will see the three core case groups show up as the execute, AD spinup, spinup and transient

Screen Shot 2022-10-05 at 9 40 05 AM


  • When the simulation completes you will see a message similar to this show up in your terminal screen
Screen Shot 2022-10-05 at 9 43 07 AM
  • You will also see that the transient directory in your elmoutput/UQ folder will contain 6 ensemble members, as well as a copy of the file that controlled the parameter perturbation experiment used in this short demo

Screen Shot 2022-10-05 at 9 40 35 AM


Part 2: Viewing the ensemble output from the short demo

  • If you have not already done so, create a new docker volume called "elmwork" either in the Docker Desktop app or by typing docker volume create elmwork in your open terminal