A portable test suite for software installations, using ReFrame
-
install ReFrame >=4.0
-
install the test suite using
pip install git+https://github.com/EESSI/test-suite.git
Alternatively, you can clone the repository
git clone [email protected]:EESSI/test-suite.git
and set your PYTHONPATH
so that it includes the eessi/reframe
directory from the repository.
-
create a site configuration file
- should look similar to
test-suite/eessi/reframe/config/settings_example.py
- should look similar to
-
run the tests
the example below runs a gromacs simulation using GROMACS modules available in the system, in combination with all available system:partitions as defined in the site config file
module load ReFrame/4.0.1
eessiroot=<path_to_test-suite>
eessihome=$eessiroot/eessi/reframe
PYTHONPATH=$PYTHONPATH:$EBROOTREFRAME:$eessihome reframe \
-C <path_to_site_config_file> \
-c $eessihome/eessi_checks/applications/ \
-t CI -t 1_node \
-r --performance-report
-
running GPU jobs in GPU nodes
- add feature
gpu
to the GPU partitions
- add feature
-
running non-GPU jobs in non-GPU nodes
- add feature
cpu
to the non-GPU partitions
- add feature
-
running GPU jobs and non-GPU jobs on gpu nodes
- add both features
cpu
andgpu
to the GPU partitions
'features': ['cpu', 'gpu'],
- add both features
-
setting the number of GPUS per node for a partition:
'access': ['-p <partition_name>'], 'devices': [ {'type': 'gpu', 'num_devices': <x>} ],
-
requesting GPUs per node for a partition:
'resources': [ { 'name': '_rfm_gpu', 'options': ['--gpus-per-node={num_gpus_per_node}'], } ],
-
specifying modules
--setvar modules=<modulename>
-
specifying systems:partitions
--setvar valid_systems=<comma-separated-list>
-
overriding tasks, cpus, gpus
--setvar num_tasks_per_node=<x>
--setvar num_cpus_per_task=<y>
--setvar num_gpus_per_node=<x>
-
setting additional environment variables
--setvar env_vars=<envar>:<value>
If you want to install the EESSI test suite from a branch, you can use
pip install git+https://github.com/EESSI/test-suite.git@branchname
This also works on forked repositories, e.g.
pip install git+https://github.com/<someuser>/test-suite.git@branchname
making it an easy way of testing PRs.