Skip to content

Commit 0718dce

Browse files
authored
Merge branch 'master' into vasp-eiger
2 parents e1ec5f6 + 44e5f29 commit 0718dce

38 files changed

+1398
-531
lines changed

.github/workflows/main.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,18 @@ jobs:
8181
- name: Test Installation
8282
run: |
8383
reframe -V
84+
85+
docvalidation:
86+
runs-on: ubuntu-latest
87+
steps:
88+
- uses: actions/checkout@v2
89+
- name: Setup up Python 3.8
90+
uses: actions/setup-python@v2
91+
with:
92+
python-version: 3.8
93+
- name: Install Doc Requirements
94+
run: |
95+
python -m pip install -r docs/requirements.txt
96+
- name: Build documentation
97+
run: |
98+
make -C docs

cscs-checks/apps/spark/spark_check.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,12 @@ def prepare_run(self):
4343
'SPARK_LOCAL_DIRS': '"/tmp"',
4444
}
4545
self.executable = (
46-
'spark-submit --conf spark.default.parallelism=%s '
47-
'--conf spark.executor.cores=%s --conf spark.executor.memory=15g '
48-
'--master $SPARKURL --class org.apache.spark.examples.SparkPi '
49-
'$EBROOTSPARK/examples/jars/spark-examples_2.11-2.3.1.jar 10000;'
50-
% (num_workers, exec_cores))
46+
f'spark-submit --conf spark.default.parallelism={num_workers} '
47+
f'--conf spark.executor.cores={exec_cores} '
48+
f'--conf spark.executor.memory=15g --master $SPARKURL '
49+
f'--class org.apache.spark.examples.SparkPi '
50+
f'$EBROOTSPARK/examples/jars/spark-examples*.jar 10000;'
51+
)
5152
# The job launcher has to be changed since the `spark-submit`
5253
# script is not used with srun.
5354
self.job.launcher = getlauncher('local')()

cscs-checks/microbenchmarks/cpu/strided_bandwidth/strides.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ class StridedBase(rfm.RegressionTest):
1111
def __init__(self):
1212
self.sourcepath = 'strides.cpp'
1313
self.build_system = 'SingleSource'
14-
self.valid_systems = ['daint:gpu', 'dom:gpu', 'daint:mc', 'dom:mc']
14+
self.valid_systems = ['daint:gpu', 'dom:gpu', 'daint:mc', 'dom:mc',
15+
'eiger:mc']
1516
self.valid_prog_environs = ['PrgEnv-gnu']
1617
self.num_tasks = 1
1718
self.num_tasks_per_node = 1
@@ -31,6 +32,7 @@ def __init__(self):
3132
'daint:gpu': 24,
3233
'dom:mc': 72,
3334
'dom:gpu': 24,
35+
'eiger:mc': 128,
3436
}
3537

3638
self.maintainers = ['SK']
@@ -60,7 +62,10 @@ def __init__(self):
6062
},
6163
'daint:mc': {
6264
'bandwidth': (100, -0.1, 0.1, 'GB/s')
63-
}
65+
},
66+
'eiger:mc': {
67+
'bandwidth': (270, -0.1, 0.1, 'GB/s')
68+
},
6469
}
6570

6671
@rfm.run_before('run')
@@ -89,7 +94,10 @@ def __init__(self):
8994
},
9095
'daint:mc': {
9196
'bandwidth': (12.5, -0.1, 0.2, 'GB/s')
92-
}
97+
},
98+
'eiger:mc': {
99+
'bandwidth': (33, -0.1, 0.2, 'GB/s')
100+
},
93101
}
94102

95103
@rfm.run_before('run')
@@ -118,7 +126,10 @@ def __init__(self):
118126
},
119127
'daint:mc': {
120128
'bandwidth': (9.1, -0.1, 0.2, 'GB/s')
121-
}
129+
},
130+
'eiger:mc': {
131+
'bandwidth': (33, -0.1, 0.2, 'GB/s')
132+
},
122133
}
123134

124135
@rfm.run_before('run')

cscs-checks/microbenchmarks/mpi/osu/osu_tests.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,9 @@ class P2PCPUBandwidthTest(P2PBaseTest):
162162
def __init__(self):
163163
super().__init__()
164164
self.valid_systems = ['daint:gpu', 'daint:mc', 'dom:gpu', 'dom:mc',
165-
'arolla:cn', 'tsa:cn']
165+
'arolla:cn', 'tsa:cn', 'eiger:mc']
166166
self.executable = './p2p_osu_bw'
167167
self.executable_opts = ['-x', '100', '-i', '1000']
168-
169168
self.reference = {
170169
'daint:gpu': {
171170
'bw': (9607.0, -0.10, None, 'MB/s')
@@ -179,6 +178,9 @@ def __init__(self):
179178
'dom:mc': {
180179
'bw': (9528.0, -0.20, None, 'MB/s')
181180
},
181+
'eiger:mc': {
182+
'bw': (12240.0, -0.10, None, 'MB/s')
183+
},
182184
# keeping as reference:
183185
# 'monch:compute': {
184186
# 'bw': (6317.84, -0.15, None, 'MB/s')
@@ -196,7 +198,7 @@ class P2PCPULatencyTest(P2PBaseTest):
196198
def __init__(self):
197199
super().__init__()
198200
self.valid_systems = ['daint:gpu', 'daint:mc', 'dom:gpu', 'dom:mc',
199-
'arolla:cn', 'tsa:cn']
201+
'arolla:cn', 'tsa:cn', 'eiger:mc']
200202
self.executable_opts = ['-x', '100', '-i', '1000']
201203

202204
self.executable = './p2p_osu_latency'
@@ -213,6 +215,9 @@ def __init__(self):
213215
'dom:mc': {
214216
'latency': (1.24, None, 0.15, 'us')
215217
},
218+
'eiger:mc': {
219+
'latency': (2.33, None, 0.15, 'us')
220+
},
216221
# keeping as reference:
217222
# 'monch:compute': {
218223
# 'latency': (1.27, None, 0.1, 'us')

cscs-checks/prgenv/helloworld.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ def __init__(self, variant, lang, linkage):
2525
self.build_system = 'SingleSource'
2626
self.valid_systems = ['daint:gpu', 'daint:mc', 'dom:gpu', 'dom:mc',
2727
'arolla:cn', 'arolla:pn', 'tsa:cn', 'tsa:pn']
28+
if linkage == 'dynamic':
29+
self.valid_systems.append('eiger:mc')
30+
2831
self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-cray_classic',
2932
'PrgEnv-intel', 'PrgEnv-gnu', 'PrgEnv-pgi',
3033
'PrgEnv-gnu-nocuda', 'PrgEnv-pgi-nocuda']
@@ -109,7 +112,6 @@ def compile_timer_end(self):
109112
class HelloWorldTestSerial(HelloWorldBaseTest):
110113
def __init__(self, lang, linkage):
111114
super().__init__('serial', lang, linkage)
112-
self.valid_systems += ['arolla:pn', 'tsa:pn']
113115
self.sourcesdir = 'src/serial'
114116
self.valid_prog_environs += ['PrgEnv-gnu-nompi', 'PrgEnv-pgi-nompi',
115117
'PrgEnv-gnu-nompi-nocuda',
@@ -142,7 +144,6 @@ def __init__(self, lang, linkage):
142144
class HelloWorldTestOpenMP(HelloWorldBaseTest):
143145
def __init__(self, lang, linkage):
144146
super().__init__('openmp', lang, linkage)
145-
self.valid_systems += ['arolla:pn', 'tsa:pn']
146147
self.sourcesdir = 'src/openmp'
147148
self.sourcepath += '_openmp.' + lang
148149
self.descr += ' OpenMP ' + str.capitalize(linkage)

cscs-checks/system/slurm/slurm.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def __init__(self):
1616
'dom:gpu', 'dom:mc',
1717
'arolla:cn', 'arolla:pn',
1818
'tsa:cn', 'tsa:pn',
19-
'daint:xfer']
19+
'daint:xfer', 'eiger:mc']
2020
self.valid_prog_environs = ['PrgEnv-cray']
2121
self.tags = {'slurm', 'maintenance', 'ops',
2222
'production', 'single-node'}
@@ -58,6 +58,7 @@ def __init__(self):
5858
'daint:xfer': r'^datamover\d{2}.cscs.ch$',
5959
'dom:gpu': r'^nid\d{5}$',
6060
'dom:mc': r'^nid\d{5}$',
61+
'eiger:mc': r'^nid\d{6}$',
6162
}
6263

6364
@rfm.run_before('sanity')
@@ -77,7 +78,8 @@ def __init__(self):
7778
self.valid_systems = ['daint:gpu', 'daint:mc',
7879
'dom:gpu', 'dom:mc',
7980
'arolla:cn', 'arolla:pn',
80-
'tsa:cn', 'tsa:pn']
81+
'tsa:cn', 'tsa:pn',
82+
'eiger:mc']
8183
self.executable = '/bin/echo'
8284
self.executable_opts = ['$MY_VAR']
8385
self.variables = {'MY_VAR': 'TEST123456!'}
@@ -179,6 +181,7 @@ class MemoryOverconsumptionCheck(SlurmCompiledBaseCheck):
179181
def __init__(self):
180182
super().__init__()
181183
self.time_limit = '1m'
184+
self.valid_systems += ['eiger:mc']
182185
self.sourcepath = 'eatmemory.c'
183186
self.tags.add('mem')
184187
self.executable_opts = ['4000M']

docs/config_reference.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -708,20 +708,23 @@ All logging handlers share the following set of common attributes:
708708
- ``%(check_perf_upper_thres)s``: The upper threshold of the performance difference from the reference value expressed as a fractional value.
709709
See the :attr:`reframe.core.pipeline.RegressionTest.reference` attribute of regression tests for more details.
710710
- ``%(check_perf_value)s``: The performance value obtained for a certain performance variable.
711-
- ``%(check_perf_var)s``: The name of the `performance variable <tutorial_basic.html#writing-a-performance-test>`__ being logged.
711+
- ``%(check_perf_var)s``: The name of the `performance variable <tutorial_basics.html#writing-a-performance-test>`__ being logged.
712712
- ``%(check_ATTR)s``: This will log the value of the attribute ``ATTR`` of the currently executing regression test.
713713
Dictionaries will be logged in JSON format and all other iterables, except strings, will be logged as comma-separated lists.
714714
If ``ATTR`` is not an attribute of the test, ``%(check_ATTR)s`` will be logged as ``null``.
715715
This allows users to log arbitrary attributes of their tests.
716716
For the complete list of test attributes, please refer to :doc:`regression_test_api`.
717+
- ``%(check_job_ATTR)s``: This will log the value of the attribute ``ATTR`` of the :class:`job <reframe.core.schedulers.Job>` associated to the currently executing regression test.
717718
- ``%(osuser)s``: The name of the OS user running ReFrame.
718719
- ``%(osgroup)s``: The name of the OS group running ReFrame.
719720
- ``%(version)s``: The ReFrame version.
720721

721722

722723
.. versionadded:: 3.3
723-
The ability to log arbitrary test attributes was added.
724+
Allow arbitrary test attributes to be logged.
724725

726+
.. versionadded:: 3.4.2
727+
Allow arbitrary job attributes to be logged.
725728

726729
.. js:attribute:: .logging[].handlers[].datefmt
727730

0 commit comments

Comments
 (0)