Skip to content

Commit cf01100

Browse files
author
Vasileios Karakasis
committed
Merge branch 'master' into vasp-eiger
2 parents 8683cad + 09c8bc9 commit cf01100

File tree

5 files changed

+85
-39
lines changed

5 files changed

+85
-39
lines changed

cscs-checks/libraries/io/netcdf_compile_run.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@ def __init__(self, lang, linkage):
2222
self.lang = lang
2323
self.linkage = linkage
2424
self.descr = f'{lang_names[lang]} NetCDF {linkage.capitalize()}'
25-
self.valid_systems = ['daint:gpu', 'daint:mc',
26-
'dom:gpu', 'dom:mc',
27-
'arolla:cn', 'tsa:cn',
28-
'eiger:mc']
25+
self.valid_systems = ['daint:gpu', 'daint:mc', 'dom:gpu', 'dom:mc',
26+
'arolla:cn', 'tsa:cn', 'eiger:mc']
2927
if linkage == 'static':
3028
self.valid_systems.remove('eiger:mc')
3129

@@ -39,6 +37,8 @@ def __init__(self, lang, linkage):
3937
elif self.current_system.name in ['eiger']:
4038
self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-gnu']
4139
self.modules = ['cray-hdf5', 'cray-netcdf']
40+
else:
41+
self.valid_prog_environs = []
4242

4343
self.sourcesdir = os.path.join(self.current_system.resourcesdir,
4444
'netcdf')

cscs-checks/microbenchmarks/cpu/dgemm/dgemm.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,11 @@ def __init__(self):
2121
'arolla:cn', 'arolla:pn', 'tsa:cn', 'tsa:pn']
2222
if self.current_system.name in ['daint', 'dom']:
2323
self.valid_prog_environs = ['PrgEnv-gnu', 'PrgEnv-intel']
24-
if self.current_system.name in ['arolla', 'tsa']:
24+
elif self.current_system.name in ['arolla', 'tsa']:
2525
self.valid_prog_environs = ['PrgEnv-gnu-nompi']
26+
else:
27+
self.valid_prog_environs = []
28+
2629

2730
self.num_tasks = 0
2831
self.use_multithreading = False

cscs-checks/microbenchmarks/gpu/kernel_latency/kernel_latency.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
@rfm.parameterized_test(['sync'], ['async'])
1212
class KernelLatencyTest(rfm.RegressionTest):
1313
def __init__(self, kernel_version):
14-
self.valid_systems = ['daint:gpu', 'dom:gpu',
15-
'arolla:cn', 'tsa:cn',
16-
'ault:amdv100', 'ault:intelv100',
17-
'ault:amda100', 'ault:amdvega']
14+
self.valid_systems = [
15+
'daint:gpu', 'dom:gpu', 'arolla:cn', 'tsa:cn', 'ault:amdv100',
16+
'ault:intelv100', 'ault:amda100', 'ault:amdvega'
17+
]
1818
cs = self.current_system.name
1919
if cs in {'dom', 'daint'}:
2020
self.valid_prog_environs = ['PrgEnv-cray_classic', 'PrgEnv-cray',
@@ -23,6 +23,8 @@ def __init__(self, kernel_version):
2323
self.valid_prog_environs = ['PrgEnv-pgi']
2424
elif cs in {'ault'}:
2525
self.valid_prog_environs = ['PrgEnv-gnu']
26+
else:
27+
self.valid_prog_environs = []
2628

2729
self.num_tasks = 0
2830
self.num_tasks_per_node = 1

cscs-checks/prgenv/environ_check.py

Lines changed: 70 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -13,65 +13,106 @@ class DefaultPrgEnvCheck(rfm.RunOnlyRegressionTest):
1313
def __init__(self):
1414
self.descr = 'Ensure PrgEnv-cray is loaded by default'
1515
self.valid_prog_environs = ['builtin']
16-
self.valid_systems = ['daint:login', 'dom:login']
16+
self.valid_systems = ['daint:login', 'dom:login', 'eiger:login']
1717
self.executable = 'module'
18-
self.executable_opts = ['list', '-t']
1918
self.maintainers = ['TM', 'CB']
2019
self.tags = {'production', 'craype'}
2120
self.sanity_patterns = sn.assert_found(r'^PrgEnv-cray', self.stderr)
2221

22+
if self.current_system.name == 'eiger':
23+
self.executable_opts = ['list']
24+
prgenv_patt = r'1\) cpe-cray'
25+
else:
26+
self.executable_opts = ['list', '-t']
27+
prgenv_patt = r'^PrgEnv-cray'
28+
29+
self.sanity_patterns = sn.assert_found(prgenv_patt, self.stderr)
30+
2331

2432
@rfm.simple_test
2533
class EnvironmentCheck(rfm.RunOnlyRegressionTest):
2634
def __init__(self):
2735
self.descr = 'Ensure programming environment is loaded correctly'
28-
self.valid_systems = ['daint:login', 'dom:login']
29-
self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-gnu',
30-
'PrgEnv-intel', 'PrgEnv-pgi']
31-
36+
self.valid_systems = ['daint:login', 'dom:login', 'eiger:login']
37+
self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-gnu', 'PrgEnv-pgi',
38+
'PrgEnv-intel', 'PrgEnv-aocc']
3239
self.executable = 'module'
33-
self.executable_opts = ['list', '-t']
34-
self.sanity_patterns = sn.assert_found(self.env_module_patt,
35-
self.stderr)
40+
if self.current_system.name == 'eiger':
41+
self.executable_opts = ['list']
42+
else:
43+
self.executable_opts = ['list', '-t']
44+
3645
self.maintainers = ['TM', 'CB']
3746
self.tags = {'production', 'craype'}
3847

39-
@property
40-
@sn.sanity_function
41-
def env_module_patt(self):
42-
return r'^%s' % self.current_environ.name
48+
@rfm.run_before('sanity')
49+
def set_sanity(self):
50+
# NOTE: On eiger, the first module of each programming environment,
51+
# follows the 'cpe-<name>' pattern where <name> corresponds to the
52+
# 'PrgEnv-<name>' used.
53+
if self.current_system.name == 'eiger':
54+
module_patt = rf'1\) cpe-{self.current_environ.name[7:]}'
55+
else:
56+
module_patt = rf'^{self.current_environ.name}'
57+
58+
self.sanity_patterns = sn.assert_found(module_patt, self.stderr)
4359

4460

45-
@rfm.parameterized_test(['cray-fftw'], ['cray-hdf5'], ['cray-hdf5-parallel'],
46-
['cray-libsci'], ['cray-netcdf'],
47-
['cray-netcdf-hdf5parallel'], ['cray-petsc'],
48-
['cray-petsc-64'], ['cray-petsc-complex'],
49-
['cray-petsc-complex-64'], ['cray-python'],
50-
['cray-R'], ['cray-tpsl'], ['cray-tpsl-64'],
51-
['cudatoolkit'], ['gcc'], ['papi'], ['pmi'])
5261
class CrayVariablesCheck(rfm.RunOnlyRegressionTest):
53-
def __init__(self, module_name):
62+
cray_module = parameter()
63+
64+
def __init__(self):
5465
self.descr = 'Check for standard Cray variables'
55-
self.valid_systems = ['daint:login', 'dom:login']
5666
self.valid_prog_environs = ['builtin']
5767
self.executable = 'module'
58-
self.executable_opts = ['show', module_name]
59-
envvar_prefix = module_name.upper().replace('-', '_')
68+
self.executable_opts = ['show', self.cray_module]
69+
envvar_prefix = self.cray_module.upper().replace('-', '_')
6070
self.sanity_patterns = sn.all([
6171
sn.assert_found(f'{envvar_prefix}_PREFIX', self.stderr),
6272
sn.assert_found(f'{envvar_prefix}_VERSION', self.stderr)
6373
])
74+
self.tags = {'production', 'craype'}
75+
self.maintainers = ['EK', 'TM']
76+
77+
78+
@rfm.simple_test
79+
class CrayVariablesCheckDaint(CrayVariablesCheck):
80+
cray_module = parameter([
81+
'cray-fftw', 'cray-hdf5', 'cray-hdf5-parallel', 'cray-libsci',
82+
'cray-mpich', 'cray-netcdf', 'cray-netcdf-hdf5parallel', 'cray-petsc',
83+
'cray-petsc-complex-64', 'cray-python', 'cray-R', 'cray-tpsl',
84+
'cray-tpsl-64', 'cudatoolkit', 'gcc', 'papi', 'pmi'
85+
])
86+
87+
def __init__(self):
88+
super().__init__()
89+
self.valid_systems = ['daint:login', 'dom:login']
6490

6591
# FIXME: These modules should be fixed in later releases,
6692
# while gcc was fixed in 20.11
6793

6894
cdt = osext.cray_cdt_version()
6995
if ((cdt and cdt <= '20.11' and
70-
module_name in ['cray-petsc-complex',
71-
'cray-petsc-complex-64',
72-
'cudatoolkit']) or
96+
self.cray_module in ['cray-petsc-complex',
97+
'cray-petsc-complex-64',
98+
'cudatoolkit']) or
7399
(cdt and cdt < '20.11' and module_name == 'gcc')):
74100
self.valid_systems = []
75101

76-
self.maintainers = ['EK', 'VH']
77-
self.tags = {'production', 'craype'}
102+
103+
@rfm.simple_test
104+
class CrayVariablesCheckEiger(CrayVariablesCheck):
105+
cray_module = parameter([
106+
'cray-fftw', 'cray-hdf5', 'cray-hdf5-parallel', 'cray-libsci',
107+
'cray-mpich', 'cray-openshmemx', 'cray-parallel-netcdf', 'cray-pmi',
108+
'cray-python', 'cray-R', 'gcc', 'papi'
109+
])
110+
111+
def __init__(self):
112+
super().__init__()
113+
self.valid_systems = ['eiger:login']
114+
115+
# FIXME: These modules should be fixed in later releases
116+
117+
if self.cray_module in {'cray-fftw', 'cray-python', 'cray-mpich'}:
118+
self.valid_systems = []

reframe/frontend/executors/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,7 @@ def runall(self, testcases, restored_cases=None):
415415
# Print the summary line
416416
num_failures = len(self._stats.failed())
417417
num_completed = len(self._stats.completed())
418-
if num_failures:
418+
if num_failures > 0 or num_completed < len(testcases):
419419
status = 'FAILED'
420420
else:
421421
status = 'PASSED'

0 commit comments

Comments
 (0)