Skip to content

Commit d6629e6

Browse files
authored
Merge branch 'master' into checks/namd-perf
2 parents 0041723 + e3f918c commit d6629e6

File tree

9 files changed

+131
-89
lines changed

9 files changed

+131
-89
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ Users can create their own test hierarchies, create test factories for generatin
1919
The official documentation is maintained [here](https://eth-cscs.github.io/reframe/index.html).
2020
It corresponds to the [latest](https://github.com/eth-cscs/reframe/releases/latest) stable release and not to the current status of the `master`.
2121

22+
* SC18 presentation [[pdf](https://drive.google.com/file/d/1sIecW59E-AvhD-vl6c6QGXM14UKNzgo_/view?usp=sharing)]
23+
* SC18 Demo [[link](https://asciinema.org/a/6SQJTaRe2zrMInV92X0yb2gTh)]
24+
2225
### Building the documentation from master
2326

2427
You may build the documentation of the master either with Python 2 or Python 3 (<= 3.5).
Lines changed: 52 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import os
2-
2+
import reframe as rfm
33
import reframe.utility.sanity as sn
4-
from reframe.core.pipeline import RunOnlyRegressionTest
54

65

7-
class Cp2kCheck(RunOnlyRegressionTest):
8-
def __init__(self, check_name, check_descr, **kwargs):
9-
super().__init__(check_name, os.path.dirname(__file__), **kwargs)
6+
class Cp2kCheck(rfm.RunOnlyRegressionTest):
7+
def __init__(self, check_name, check_descr):
8+
super().__init__(check_name, os.path.dirname(__file__))
109
self.descr = check_descr
1110
self.valid_prog_environs = ['PrgEnv-gnu']
1211

@@ -42,9 +41,11 @@ def __init__(self, check_name, check_descr, **kwargs):
4241
}
4342

4443

44+
@rfm.parameterized_test(['prod'], ['maint'])
4545
class Cp2kCpuCheck(Cp2kCheck):
46-
def __init__(self, **kwargs):
47-
super().__init__('cp2k_cpu_check', 'CP2K check CPU', **kwargs)
46+
def __init__(self, variant):
47+
super().__init__('cp2k_cpu_%s_check' % variant,
48+
'CP2K check CPU')
4849
self.valid_systems = ['daint:mc', 'dom:mc']
4950
self.num_gpus_per_node = 0
5051
if self.current_system.name == 'dom':
@@ -53,21 +54,34 @@ def __init__(self, **kwargs):
5354
self.num_tasks = 576
5455

5556
self.num_tasks_per_node = 36
56-
self.reference = {
57-
'dom:mc': {
58-
'perf': (174.5, None, 0.05)
59-
},
60-
'daint:mc': {
61-
'perf': (113.0, None, 0.25)
62-
},
63-
}
64-
self.tags |= {'maintenance', 'production'}
57+
58+
if variant == 'maint':
59+
self.tags |= {'maintenance'}
60+
self.reference = {
61+
'dom:mc': {
62+
'perf': (182.6, None, 0.05)
63+
},
64+
'daint:mc': {
65+
'perf': (106.8, None, 0.10)
66+
},
67+
}
68+
else:
69+
self.tags |= {'production'}
70+
self.reference = {
71+
'dom:mc': {
72+
'perf': (174.5, None, 0.05)
73+
},
74+
'daint:mc': {
75+
'perf': (113.0, None, 0.25)
76+
},
77+
}
6578

6679

80+
@rfm.parameterized_test(['prod'], ['maint'])
6781
class Cp2kGpuCheck(Cp2kCheck):
68-
def __init__(self, variant, **kwargs):
82+
def __init__(self, variant):
6983
super().__init__('cp2k_gpu_%s_check' % variant,
70-
'CP2K check GPU', **kwargs)
84+
'CP2K check GPU')
7185
self.valid_systems = ['daint:gpu', 'dom:gpu']
7286
self.variables = {'CRAY_CUDA_MPS': '1'}
7387
self.modules = ['CP2K']
@@ -79,36 +93,23 @@ def __init__(self, variant, **kwargs):
7993

8094
self.num_tasks_per_node = 12
8195

82-
83-
class Cp2kGpuMaintCheck(Cp2kGpuCheck):
84-
def __init__(self, **kwargs):
85-
super().__init__('maint', **kwargs)
86-
self.tags |= {'maintenance'}
87-
self.reference = {
88-
'dom:gpu': {
89-
'perf': (258.0, None, 0.15)
90-
},
91-
'daint:gpu': {
92-
'perf': (139.0, None, 0.10)
93-
},
94-
}
95-
96-
97-
class Cp2kGpuProdCheck(Cp2kGpuCheck):
98-
def __init__(self, **kwargs):
99-
super().__init__('prod', **kwargs)
100-
self.tags |= {'production'}
101-
self.reference = {
102-
'dom:gpu': {
103-
'perf': (240.0, None, 0.05)
104-
},
105-
'daint:gpu': {
106-
'perf': (195.0, None, 0.10)
107-
},
108-
}
109-
110-
111-
def _get_checks(**kwargs):
112-
return [Cp2kCpuCheck(**kwargs),
113-
Cp2kGpuMaintCheck(**kwargs),
114-
Cp2kGpuProdCheck(**kwargs)]
96+
if variant == 'maint':
97+
self.tags |= {'maintenance'}
98+
self.reference = {
99+
'dom:gpu': {
100+
'perf': (251.8, None, 0.15)
101+
},
102+
'daint:gpu': {
103+
'perf': (182.3, None, 0.10)
104+
},
105+
}
106+
else:
107+
self.tags |= {'production'}
108+
self.reference = {
109+
'dom:gpu': {
110+
'perf': (240.0, None, 0.05)
111+
},
112+
'daint:gpu': {
113+
'perf': (195.0, None, 0.10)
114+
},
115+
}

cscs-checks/apps/gromacs/gromacs_check.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def __init__(self):
8888
self.tags |= {'production'}
8989
self.reference = {
9090
'dom:gpu': {
91-
'perf': (37.5, -0.05, None)
91+
'perf': (29.3, -0.05, None)
9292
},
9393
'daint:gpu': {
9494
'perf': (42.0, -0.20, None)
Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,27 @@
11
import os
22

3+
import reframe as rfm
34
import reframe.utility.sanity as sn
4-
from reframe.core.pipeline import RunOnlyRegressionTest
55

66

7-
class LibSciAccSymLinkTest(RunOnlyRegressionTest):
8-
def __init__(self, lib_name, **kwargs):
9-
super().__init__(lib_name.replace('.so', '_symlink_check'),
10-
os.path.dirname(__file__), **kwargs)
11-
7+
@rfm.parameterized_test(['libsci_acc_gnu_49_nv20'],
8+
['libsci_acc_gnu_49_nv35'],
9+
['libsci_acc_gnu_49_nv60'],
10+
['libsci_acc_cray_nv20_openacc'],
11+
['libsci_acc_cray_nv35_openacc'],
12+
['libsci_acc_cray_nv60_openacc'])
13+
class LibSciAccSymLinkTest(rfm.RunOnlyRegressionTest):
14+
def __init__(self, lib_name):
15+
super().__init__()
1216
self.descr = 'LibSciAcc symlink check of %s' % lib_name
13-
self.valid_systems = ['daint:login', 'dom:login']
17+
self.valid_systems = ['daint:login', 'daint:gpu',
18+
'dom:login', 'dom:gpu']
1419

1520
# The prgenv is irrelevant for this case, so just chose one
1621
self.valid_prog_environs = ['PrgEnv-cray']
17-
1822
self.executable = 'ls'
19-
self.executable_opts = '-al /opt/cray/pe/lib64/libsci_a*'.split()
20-
self.sanity_patterns = sn.assert_found(lib_name, self.stdout)
23+
self.executable_opts = ['-al', '/opt/cray/pe/lib64/libsci_a*']
24+
self.sanity_patterns = sn.assert_found(lib_name + '.so', self.stdout)
25+
2126
self.maintainers = ['AJ']
2227
self.tags = {'production'}
23-
24-
25-
def _get_checks(**kwargs):
26-
27-
ret = []
28-
for lib_name in [r'libsci_acc_gnu_49_nv20.so',
29-
r'libsci_acc_gnu_49_nv35.so',
30-
r'libsci_acc_gnu_49_nv60.so',
31-
r'libsci_acc_cray_nv20_openacc.so',
32-
r'libsci_acc_cray_nv35_openacc.so',
33-
r'libsci_acc_cray_nv60_openacc.so']:
34-
ret.append(LibSciAccSymLinkTest(lib_name, **kwargs))
35-
36-
return ret

cscs-checks/compile/libsci_resolve.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ def __init__(self):
77
super().__init__()
88
self.sourcesdir = 'src/libsci_resolve'
99
self.sourcepath = 'libsci_resolve.f90'
10-
self.valid_systems = ['daint:login', 'dom:login']
10+
self.valid_systems = ['daint:login', 'daint:gpu',
11+
'dom:login', 'dom:gpu']
1112
self.modules = ['craype-haswell']
1213
self.maintainers = ['AJ']
1314
self.tags = {'production'}

cscs-checks/libraries/magma/magma_checks.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,27 +76,27 @@ def __init__(self, name, libversion, variant):
7676
if variant == 'prod':
7777
self.reference = {
7878
'daint:gpu': {
79-
'magma': (2151.0, None, 0.2),
80-
'cublas': (2411.0, None, 0.45),
81-
'cpu': (44.1, None, 0.1),
79+
'magma': (3357.0, None, 0.2),
80+
'cublas': (3775.0, None, 0.45),
81+
'cpu': (47.01, None, 0.1),
8282
},
8383
'dom:gpu': {
84-
'magma': (2532.0, None, 0.1),
85-
'cublas': (3391.0, None, 0.05),
86-
'cpu': (43.9, None, 0.05),
84+
'magma': (3330.0, None, 0.1),
85+
'cublas': (3774.0, None, 0.05),
86+
'cpu': (47.32, None, 0.05),
8787
},
8888
}
8989
elif variant == 'maint':
9090
self.reference = {
9191
'daint:gpu': {
92-
'magma': (2151.0, None, 0.2),
93-
'cublas': (2411.0, None, 0.45),
94-
'cpu': (44.1, None, 0.1),
92+
'magma': (3357.0, None, 0.2),
93+
'cublas': (3775.0, None, 0.45),
94+
'cpu': (47.01, None, 0.1),
9595
},
9696
'dom:gpu': {
97-
'magma': (2532.0, None, 0.1),
98-
'cublas': (3391.0, None, 0.05),
99-
'cpu': (43.9, None, 0.05),
97+
'magma': (3330.0, None, 0.1),
98+
'cublas': (3774.0, None, 0.05),
99+
'cpu': (47.32, None, 0.05),
100100
},
101101
}
102102
elif name == 'zsymmetrize':

cscs-checks/mch/check_ruby.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import reframe as rfm
2+
import reframe.utility.sanity as sn
3+
4+
5+
@rfm.simple_test
6+
class RubyNArray(rfm.RunOnlyRegressionTest):
7+
def __init__(self):
8+
super().__init__()
9+
self.descr = ('Check NArray for Ruby version 2.2.2')
10+
self.valid_systems = ['kesch:cn']
11+
self.valid_prog_environs = ['PrgEnv-gnu-nompi']
12+
self.modules = ['ruby/2.2.2-gmvolf-17.02']
13+
self.executable = 'ruby'
14+
self.executable_opts = ['NArray.rb']
15+
self.sanity_patterns = sn.assert_found(r'NArray\.float\(4\):\s*'
16+
r'\[ 1.0, 2.0, 3.0, 4.0 \]',
17+
self.stdout)
18+
self.maintainers = ['MKr']
19+
self.tags = {'production'}

cscs-checks/mch/src/NArray.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/usr/bin/env ruby
2+
3+
require "rubygems"
4+
require 'gsl'
5+
6+
g1 = GSL::Vector.alloc(1,2,3,4)
7+
a1 = g1.to_na
8+
9+
p a1
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import reframe as rfm
2+
import reframe.utility.sanity as sn
3+
4+
5+
@rfm.simple_test
6+
class CrayCPUTargetTest(rfm.RunOnlyRegressionTest):
7+
def __init__(self):
8+
super().__init__()
9+
self.descr = 'Checks whether CRAY_CPU_TARGET is set'
10+
self.valid_systems = ['daint:login', 'dom:login']
11+
self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-gnu',
12+
'PrgEnv-intel', 'PrgEnv-pgi']
13+
self.executable = 'echo CRAY_CPU_TARGET=$CRAY_CPU_TARGET'
14+
self.sanity_patterns = sn.assert_found(r'CRAY_CPU_TARGET=\S+',
15+
self.stdout)
16+
17+
self.maintainers = ['TM']
18+
self.tags = {'production', 'maintenance'}

0 commit comments

Comments
 (0)