-
Notifications
You must be signed in to change notification settings - Fork 0
Running lettuce
This page will describe how to run lettuce to perform a suite of tests within MPAS.
To being with, clone the lettuce testing repository from, https://github.com/douglasjacobsen/mpas-lettuce-testing
In this repository, each core is allowed to have it's own features defined, along with a top level configuration file. An example of the configuration file can be seen from lettuce.ocean
as follows:
[lettuce_actions]
clone=YES
build=YES
run=YES
[building]
compiler = gfortran
core = ocean
flags = MODE=forward
[trusted_repo]
url = [email protected]:MPAS-Dev/MPAS.git
branch = ocean/develop
test_cases_url = http://oceans11.lanl.gov/mpas_data/mpas_ocean/test_cases/release_5.0
[testing_repo]
url = [email protected]:MPAS-Dev/MPAS.git
branch = ocean/develop
test_cases_url = http://oceans11.lanl.gov/mpas_data/mpas_ocean/test_cases/release_5.0
When using lettuce, the [building]
section is used to configure the build you want to use. The compiler should be a build target from the MPAS build system, core can be any core that's available within MPAS, and flags should be additional flags your core requires. An example would be in some versions of the ocean core we'd need MODE=forward
, and some versions of the land ice core need to tell the build system where to get albany.
The [trusted_repo]
section can be used to define the repository and branch / hash / tag that lettuce should use for the trusted version of the model. Additionally, the test_cases_url
can be used to define where to download test cases that can be run with this version of the model.
The [testing_repo]
section is similar to the [trusted_repo]
section, however it is the version of MPAS you want to be testing. It will compare against the trusted version in some test scenarios.
Finally, the [lettuce_actions]
section is useful if you can't perform all actions on the same computer. An example would be if you were using an IC machine at LANL, a compute node can't clone the repository, but a head node shouldn't run the test scenarios.
So, to begin on an IC machine, you would have to run with the following actions section on a head node first:
[lettuce_actions]
clone=YES
build=YES
run=NO
And then run on a compute node with the following actions section. This would typically be done within an interactive session, but that will be discussed later.
[lettuce_actions]
clone=NO
build=NO
run=YES
As mentioned in the previous section, there are special use cases such as the LANL IC Machines.
Before using lettuce, you most load the proper modules. All the same modules need to be loaded as for building MPAS, however you additionally need to module load lettuce
.
To begin with, clone the repository, and configure the appropriate configuration script. Be sure to set the [lettuce_actions]
to the following for use on a head node.
Then run lettuce on the head node for the specific set of features you want. An example for the ocean features would be:
lettuce ocean_features/
After the tests are completed (all of them might fail here, which is fine) get an interactive session.
msub -I -l nodes=1 -l walltime=02:00:00
(Feel free to modify the number of nodes, or the walltime)
Again, the same modules need to be loaded as on the head node. After all of the modules are loaded, the tests can be run using:
lettuce ocean_features/