You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/configure.md
+38-8Lines changed: 38 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,7 @@ The following example shows a minimal configuration for the [Piz Daint](http://w
21
21
'daint': {
22
22
'descr': 'Piz Daint',
23
23
'hostnames': ['daint'],
24
+
'modules_system': 'tmod',
24
25
'partitions': {
25
26
'login': {
26
27
'scheduler': 'local',
@@ -88,6 +89,8 @@ The valid attributes of a system are the following:
88
89
89
90
*`descr`: A detailed description of the system (default is the system name).
90
91
*`hostnames`: This is a list of hostname patterns that will be used by ReFrame when it tries to [auto-detect](#system-auto-detection) the current system (default `[]`).
92
+
*`modules_system`: _(New in version 2.8)_ The modules system that should be used for loading environment modules on this system.
93
+
The only available modules system backend is currently `tmod`, which corresponds to the [TCL implementation](http://modules.sourceforge.net/) of the environment modules (default `None`).
91
94
*`prefix`: Default regression prefix for this system (default `.`).
92
95
*`stagedir`: Default stage directory for this system (default `None`).
93
96
*`outputdir`: Default output directory for this system (default `None`).
@@ -109,16 +112,33 @@ The partitions of a system are defined similarly to systems as a set of key/valu
109
112
The available partition attributes are the following:
110
113
111
114
*`descr`: A detailed description of the partition (default is the partition name).
112
-
*`scheduler`: The job scheduler to use for launching jobs on this partition.
113
-
Available values are the following:
114
-
*`local` (**default**): Jobs on this partition will be launched locally as OS processes.
115
-
When a job is launched with this scheduler, ReFrame will create a wrapper shell script for running the check on the local machine.
116
-
*`nativeslurm`: Jobs on this partition will be launched using Slurm and the `srun` command for creating MPI processes.
117
-
*`slurm+alps`: Jobs on this partition will be launched using Slurm and the `aprun` command for creating MPI processes.
115
+
116
+
*`scheduler`: _(Changed in version 2.8)_ The job scheduler and parallel program launcher combination that is used on this partition to launch jobs.
117
+
The syntax of this attribute is `<scheduler>+<launcher>`.
118
+
The available values for the job scheduler are the following:
119
+
- `slurm`: Jobs on this partition will be launched using [Slurm](https://www.schedmd.com/).
120
+
- `local`: Jobs on this partition will be launched locally as OS processes.
121
+
122
+
The available values for the parallel program launchers are the following:
123
+
-`srun`: Programs on this partition will be launched using a bare `srun` command *without* any job allocation options passed to it.
124
+
This launcher may only be used with the `slurm` scheduler.
125
+
-`srunalloc`: Programs on this partition will be launched using the `srun` command *with* job allocation options passed automatically to it.
126
+
This launcher may also be used with the `local` scheduler.
127
+
-`alps`: Programs on this partition will be launched using the `aprun` command.
128
+
-`mpirun`: Programs on this partition will be launched using the `mpirun` command.
129
+
-`mpiexec`: Programs on this partition will be launched using the `mpiexec` command.
130
+
-`local`: Programs on this partition will be launched as-is without using any parallel program launcher.
131
+
132
+
There exist also the following aliases for specific combinations of job schedulers and parallel program launchers:
133
+
-`nativeslurm`: This is equivalent to `slurm+srun`.
134
+
-`local`: This is equivalent to `local+local`.
135
+
118
136
*`access`: A list of scheduler options that will be passed to the generated job script for gaining access to that logical partition (default `[]`).
137
+
119
138
*`environs`: A list of environments, with which ReFrame will try to run any regression tests written for this partition (default `[]`).
120
139
The environment names must be resolved inside the `environments` section of the `_site_configuration` dictionary (see [Environments Configuration](#environments-configuration) for more information).
121
140
*`modules`: A list of modules to be loaded before running a regression test on that partition (default `[]`).
141
+
122
142
*`variables`: A set of environment variables to be set before running a regression test on that partition (default `{}`).
123
143
Environment variables can be set as follows (notice that both the variable name and its value are strings):
124
144
@@ -128,9 +148,11 @@ The available partition attributes are the following:
128
148
'OTHER': 'foo'
129
149
}
130
150
```
151
+
131
152
*`max_jobs`: The maximum number of concurrent regression tests that may be active (not completed) on this partition.
132
153
This option is relevant only when Reframe executes with the [asynchronous execution policy](running.html#asynchronous-execution-of-regression-checks).
133
-
*`resources`: A set of custom resource specifications and how these can be requested from the partition's scheduler (default `{}`).
154
+
155
+
*`resources`: _(Changed in version 2.8)_ A set of custom resource specifications and how these can be requested from the partition's scheduler (default `{}`).
134
156
This variable is a set of key/value pairs with the key being the resource name and the value being a list of options to be passed to the partition's job scheduler.
135
157
The option strings can contain "references" to the resource being required using the syntax `{resource_name}`.
136
158
In such cases, the `{resource_name}` will be replaced by the value of that resource defined in the regression test that is being run.
@@ -144,11 +166,19 @@ The available partition attributes are the following:
144
166
}
145
167
```
146
168
147
-
When ReFrame will run a test that defines `self.num_gpus_per_node = 8`, the generated job script will have the following line in its preamble:
169
+
A regression test then may request this resource as follows:
170
+
171
+
```python
172
+
self.extra_resources = {'num_gpus_per_node': '8'}
173
+
```
174
+
175
+
and the generated job script will have the following line in its preamble:
148
176
```bash
149
177
#SBATCH --gres=gpu:8
150
178
```
151
179
180
+
Refer to the [reference guide](reference.html#reframe.core.pipeline.RegressionTest.extra_resources) for more information on the use of the `extra_resources` regression test attribute.
181
+
152
182
## Environments Configuration
153
183
154
184
The environments available for testing in different systems are defined under the `environments` key of the top-level `_site_configuration` dictionary.
Copy file name to clipboardExpand all lines: docs/index.rst
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ Reframe also offers a high-level and flexible abstraction for writing sanity and
14
14
Writing system regression tests in a high-level modern programming language, like Python, poses a great advantage in organizing and maintaining the tests.
15
15
Users can create their own test hierarchies or test factories for generating multiple tests at the same time and they can also customize them in a simple and expressive way.
16
16
17
-
For versions 2.6.1 and older, please refer to `this documentation <_old/index.html>`__.
17
+
For versions 2.6.1 and older, please refer to `this documentation </_old/index.html>`__.
Copy file name to clipboardExpand all lines: docs/pipeline.md
+2-4Lines changed: 2 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -66,11 +66,9 @@ At this phase, all these directories are created.
66
66
### Prepare a job for the test
67
67
At this point a _job descriptor_ will be created for the test. A job descriptor in ReFrame is an abstraction of the job scheduler's functionality relevant to the regression framework.
68
68
It is responsible for submitting a job in a job queue and waiting for its completion.
69
-
Currently, the ReFrame framework supports three job scheduler backends:
69
+
ReFrame supports two job scheduler backends that can be combined with several different parallel program launchers.
70
+
For a complete list of the job scheduler/parallel launchers combinations, please refer to ["Partition Configuration"](configure.html#partition-configuration).
70
71
71
-
*__local__, which is basically a *pseudo-scheduler* that just spawns local OS processes,
72
-
*__nativeslurm__, which is the native [Slurm](https://slurm.schedmd.com) job scheduler and
73
-
*__slurm+alps__, which uses [Slurm](https://slurm.schedmd.com) for job submission, but uses [Cray's ALPS](http://docs.cray.com/books/S-2529-116//S-2529-116.pdf) for launching MPI processes on the compute nodes.
0 commit comments