-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merging main into osu with latest commits.
Merge branch 'main' into osu
- Loading branch information
Showing
20 changed files
with
371 additions
and
487 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,108 +1,13 @@ | ||
# test-suite | ||
A portable test suite for software installations, using ReFrame | ||
|
||
## Getting started | ||
A portable test suite for software installations, using ReFrame. | ||
|
||
- install ReFrame >=4.0 | ||
## Documentation | ||
|
||
- install the test suite using | ||
For documentation on installing, configuring, and using the EESSI test suite, see https://eessi.io/docs/test-suite/. | ||
|
||
```bash | ||
pip install git+https://github.com/EESSI/test-suite.git | ||
``` | ||
|
||
Alternatively, you can clone the repository | ||
|
||
```bash | ||
git clone [email protected]:EESSI/test-suite.git | ||
``` | ||
|
||
- add the path of the `test-suite` directory to your ``$PYTHONPATH`` | ||
|
||
- create a site configuration file | ||
|
||
- should look similar to `test-suite/config/settings_example.py` | ||
|
||
- 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, using 1 full node (`--tag 1_node`, see `SCALES` | ||
in `constants.py`). This example assumes that you have cloned the | ||
repository at `/path/to/EESSI/test-suite`. | ||
|
||
``` | ||
cd /path/to/EESSI/test-suite | ||
module load ReFrame/4.2.0 | ||
export PYTHONPATH=$PWD:$PYTHONPATH | ||
reframe \ | ||
--config-file <path_to_site_config_file> \ | ||
--checkpath eessi/testsuite/tests/apps \ | ||
--tag CI --tag 1_node \ | ||
--run --performance-report | ||
``` | ||
## Development | ||
|
||
## Configuring GPU/non-GPU partitions in your site config file: | ||
|
||
- running GPU jobs in GPU nodes | ||
- add `'features': [FEATURES[GPU]]` to the GPU partitions | ||
- add `'extras': {GPU_VENDOR: GPU_VENDORS[NVIDIA]}` to the GPU partitions (or | ||
`INTEL` or `AMD`, see `GPU_VENDORS` in `constants.py`) | ||
|
||
- running non-GPU jobs in non-GPU nodes | ||
- add `'features': [FEATURES[CPU]]` to the non-GPU partitions | ||
|
||
- running both GPU jobs and non-GPU jobs in GPU nodes | ||
- add `'features': [FEATURES[CPU], FEATURES[GPU]]` to the GPU partitions | ||
|
||
- setting the number of GPUS per node <x> for a partition: | ||
``` | ||
'access': ['-p <partition_name>'], | ||
'devices': [ | ||
{'type': DEVICE_TYPES[GPU], 'num_devices': <x>} | ||
], | ||
``` | ||
- requesting GPUs per node for a partition: | ||
``` | ||
'resources': [ | ||
{ | ||
'name': '_rfm_gpu', | ||
'options': ['--gpus-per-node={num_gpus_per_node}'], | ||
} | ||
], | ||
``` | ||
## Changing the default test behavior on the cmd line | ||
- specifying modules | ||
- `--setvar modules=<modulename>` | ||
- specifying valid systems:partitions | ||
- `--setvar valid_systems=<comma-separated-list>` | ||
Note that setting `valid_systems` on the cmd line disables filtering of | ||
valid systems:partitions in the hooks, so you have to do the filtering | ||
yourself. | ||
- 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>` | ||
Note that these override the variables for _all_ tests in the test suite that | ||
respect those variables. To override a variable only for specific tests, one | ||
can use the `TEST.VAR` syntax. For example, to run the `GROMACS_EESSI` test with the | ||
module `GROMACS/2021.6-foss-2022a`: | ||
- `--setvar GROMACS_EESSI.modules=GROMACS/2021.6-foss-2022a` | ||
## Developers | ||
If you want to install the EESSI test suite from a branch, you can either | ||
install the feature branch with `pip`, or clone the Github repository and check | ||
out the feature branch. | ||
|
@@ -123,8 +28,9 @@ pip install git+https://github.com/<someuser>/test-suite.git@branchname | |
``` | ||
|
||
### Check out a feature branch from a fork | ||
We'll assume you already have a local clone of the official test-suite | ||
repository, called 'origin'. In that case, executing `git remote -v`, you | ||
|
||
We'll assume you already have a local clone of the official `test-suite` | ||
repository, called '`origin`'. In that case, executing `git remote -v`, you | ||
should see: | ||
|
||
```bash | ||
|
@@ -146,10 +52,10 @@ With `git remote -v` you should now see the new remote: | |
|
||
```bash | ||
$ git remote -v | ||
origin [email protected]:EESSI/test-suite.git (fetch) | ||
origin [email protected]:EESSI/test-suite.git (push) | ||
casparvl [email protected]:casparvl/test-suite.git (fetch) | ||
casparvl [email protected]:casparvl/test-suite.git (push) | ||
origin [email protected]:EESSI/test-suite.git (fetch) | ||
origin [email protected]:EESSI/test-suite.git (push) | ||
casparvl [email protected]:casparvl/test-suite.git (fetch) | ||
casparvl [email protected]:casparvl/test-suite.git (push) | ||
``` | ||
|
||
Next, we'll fetch the branches that `casparvl` has in his fork: | ||
|
@@ -161,10 +67,8 @@ $ git fetch casparvl | |
We can check the remote branches using | ||
```bash | ||
$ git branch --list --remotes | ||
casparvl/gromacs_cscs | ||
casparvl/example_branch | ||
casparvl/main | ||
casparvl/setuppy | ||
casparvl/updated_defaults_pr11 | ||
origin/HEAD -> origin/main | ||
origin/main | ||
``` | ||
|
@@ -173,14 +77,15 @@ $ git branch --list --remotes | |
this command). | ||
|
||
Finally, we can create a new local branch (`-c`) and checkout one of these | ||
feature branches (e.g. `setuppy` from the remote `casparvl`). Here, we've | ||
picked `local_setuppy_branch` as the local branch name: | ||
feature branches (e.g. `example_branch` from the remote `casparvl`). Here, we've | ||
picked `my_own_example_branch` as the local branch name: | ||
```bash | ||
$ git switch -c local_setuppy_branch casparvl/setuppy | ||
$ git switch -c my_own_example_branch casparvl/example_branch | ||
``` | ||
|
||
While the initial setup is a bit more involved, the advantage of this approach | ||
is that it is easy to pull in updates from a feature branch using `git pull`. | ||
|
||
You can also push back changes to the feature branch directly, but note that | ||
you are pushing to the Github fork of another Github user, so _make sure they | ||
are ok with that_ before doing so! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
This file contains a description of the major changes to the EESSI test suite. | ||
For more detailed information, please see the git log. | ||
|
||
v0.1.0 (5 October 2023) | ||
----------------------- | ||
|
||
This is the first release of the EESSI test suite. | ||
|
||
It includes: | ||
|
||
* A well-structured `eessi.testsuite` Python package that provides constants, utilities, hooks, and tests, which can be installed with "`pip install`". | ||
* Tests for GROMACS and TensorFlow in `eessi.testsuite.tests.apps` that leverage the functionality provided by `eessi.testsuite.*`. | ||
* Examples of ReFrame configuration files for various systems in the `config` subdirectory. | ||
* A `common_logging_config()` function to facilitate the ReFrame logging configuration. | ||
* A set of standard device types and features that can be used in the partitions section of the ReFrame configuration file. | ||
* A set of tags (CI + scale) that can be used to filter checks. | ||
* Scripts that show how to run the test suite. | ||
|
||
For documentation, see https://eessi.io/docs/test-suite . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.