Skip to content

Commit e36c564

Browse files
author
Vasileios Karakasis
authored
Merge branch 'master' into namd_perf_update
2 parents 672c668 + 984d7b7 commit e36c564

File tree

34 files changed

+426
-1387
lines changed

34 files changed

+426
-1387
lines changed

Jenkinsfile

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -120,44 +120,6 @@ stage('Unittest') {
120120
}
121121
}
122122

123-
stage('Public Test') {
124-
if (currentBuild.result != 'SUCCESS') {
125-
println 'Not executing "Public Test" Stage'
126-
return
127-
}
128-
else {
129-
try {
130-
if (!('dom' in machinesToRun)) {
131-
return
132-
}
133-
node('dom') {
134-
def scratch = sh(returnStdout: true,
135-
script: """${loginBash}
136-
echo \$SCRATCH""").trim()
137-
def reframeDir = "${scratch}/${dirPrefix}-dom-${uniqueID}"
138-
dir(reframeDir) {
139-
sh("""${loginBash}
140-
bash ${reframeDir}/$bashScript -f ${reframeDir} -i '' -g""")
141-
}
142-
}
143-
currentBuild.result = "SUCCESS"
144-
} catch(err) {
145-
if (err.toString().contains('exit code 143')) {
146-
currentBuild.result = "ABORTED"
147-
println "The Public Test was cancelled. Aborting....."
148-
}
149-
else if (err.toString().contains('Queue task was cancelled')) {
150-
currentBuild.result = "ABORTED"
151-
println "The Queue task was cancelled. Aborting....."
152-
}
153-
else {
154-
currentBuild.result = "FAILURE"
155-
println "The Public Test failed. Exiting....."
156-
}
157-
}
158-
}
159-
}
160-
161123
builds = [:]
162124
stage('Tutorial Check') {
163125
if (currentBuild.result != 'SUCCESS') {

ci-scripts/ci-runner.bash

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -187,14 +187,15 @@ else
187187

188188
checked_exec ./test_reframe.py --rfm-user-config=config/cscs-ci.py
189189

190-
echo "==================================="
191-
echo "Running unit tests with PBS backend"
192-
echo "==================================="
193-
194190
if [[ $(hostname) =~ dom ]]; then
195191
PATH_save=$PATH
196-
export PATH=/apps/dom/UES/karakasv/slurm-wrappers/bin:$PATH
197-
checked_exec ./test_reframe.py --rfm-user-config=config/cscs-pbs.py
192+
for backend in pbs torque; do
193+
echo "=================================="
194+
echo "Running unit tests with ${backend}"
195+
echo "=================================="
196+
export PATH=/apps/dom/UES/karakasv/slurm-wrappers/bin:$PATH
197+
checked_exec ./test_reframe.py --rfm-user-config=config/cscs-${backend}.py
198+
done
198199
export PATH=$PATH_save
199200
fi
200201

config/cscs-torque.py

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
# Copyright 2016-2020 Swiss National Supercomputing Centre (CSCS/ETH Zurich)
2+
# ReFrame Project Developers. See the top-level LICENSE file for details.
3+
#
4+
# SPDX-License-Identifier: BSD-3-Clause
5+
6+
#
7+
# Minimal CSCS configuration for testing the Torque backend
8+
#
9+
10+
11+
class ReframeSettings:
12+
job_poll_intervals = [1, 2, 3]
13+
job_submit_timeout = 60
14+
checks_path = ['checks/']
15+
checks_path_recurse = True
16+
site_configuration = {
17+
'systems': {
18+
'dom': {
19+
'descr': 'Dom TDS',
20+
'hostnames': ['dom'],
21+
'modules_system': 'tmod',
22+
'resourcesdir': '/apps/common/UES/reframe/resources',
23+
'partitions': {
24+
'login': {
25+
'scheduler': 'local',
26+
'modules': [],
27+
'access': [],
28+
'environs': ['PrgEnv-cray', 'PrgEnv-gnu',
29+
'PrgEnv-intel', 'PrgEnv-pgi'],
30+
'descr': 'Login nodes',
31+
'max_jobs': 4
32+
},
33+
34+
'gpu': {
35+
'scheduler': 'torque+mpiexec',
36+
'modules': ['daint-gpu'],
37+
'access': ['-l proc=gpu'],
38+
'environs': ['PrgEnv-cray', 'PrgEnv-gnu',
39+
'PrgEnv-intel', 'PrgEnv-pgi'],
40+
'descr': 'Hybrid nodes (Haswell/P100)',
41+
'max_jobs': 100,
42+
},
43+
44+
'mc': {
45+
'scheduler': 'torque+mpiexec',
46+
'modules': ['daint-mc'],
47+
'access': ['-l proc=mc'],
48+
'environs': ['PrgEnv-cray', 'PrgEnv-gnu',
49+
'PrgEnv-intel', 'PrgEnv-pgi'],
50+
'descr': 'Multicore nodes (Broadwell)',
51+
'max_jobs': 100,
52+
},
53+
}
54+
},
55+
56+
'generic': {
57+
'descr': 'Generic example system',
58+
'partitions': {
59+
'login': {
60+
'scheduler': 'local',
61+
'modules': [],
62+
'access': [],
63+
'environs': ['builtin-gcc'],
64+
'descr': 'Login nodes'
65+
}
66+
}
67+
}
68+
},
69+
70+
'environments': {
71+
'*': {
72+
'PrgEnv-cray': {
73+
'modules': ['PrgEnv-cray'],
74+
},
75+
76+
'PrgEnv-gnu': {
77+
'modules': ['PrgEnv-gnu'],
78+
},
79+
80+
'PrgEnv-intel': {
81+
'modules': ['PrgEnv-intel'],
82+
},
83+
84+
'PrgEnv-pgi': {
85+
'modules': ['PrgEnv-pgi'],
86+
},
87+
88+
'builtin': {
89+
'cc': 'cc',
90+
'cxx': '',
91+
'ftn': '',
92+
},
93+
94+
'builtin-gcc': {
95+
'cc': 'gcc',
96+
'cxx': 'g++',
97+
'ftn': 'gfortran',
98+
}
99+
}
100+
},
101+
}
102+
103+
logging_config = {
104+
'level': 'DEBUG',
105+
'handlers': [
106+
{
107+
'type': 'file',
108+
'name': 'reframe.log',
109+
'level': 'DEBUG',
110+
'format': '[%(asctime)s] %(levelname)s: '
111+
'%(check_info)s: %(message)s',
112+
'append': False,
113+
},
114+
115+
# Output handling
116+
{
117+
'type': 'stream',
118+
'name': 'stdout',
119+
'level': 'INFO',
120+
'format': '%(message)s'
121+
},
122+
{
123+
'type': 'file',
124+
'name': 'reframe.out',
125+
'level': 'INFO',
126+
'format': '%(message)s',
127+
'append': False,
128+
}
129+
]
130+
}
131+
132+
perf_logging_config = {
133+
'level': 'DEBUG',
134+
'handlers': [
135+
{
136+
'type': 'filelog',
137+
'prefix': '%(check_system)s/%(check_partition)s',
138+
'level': 'INFO',
139+
'format': (
140+
'%(check_job_completion_time)s|reframe %(version)s|'
141+
'%(check_info)s|jobid=%(check_jobid)s|'
142+
'num_tasks=%(check_num_tasks)s|'
143+
'%(check_perf_var)s=%(check_perf_value)s|'
144+
'ref=%(check_perf_ref)s '
145+
'(l=%(check_perf_lower_thres)s, '
146+
'u=%(check_perf_upper_thres)s)'
147+
),
148+
'datefmt': '%FT%T%:z',
149+
'append': True
150+
}
151+
]
152+
}
153+
154+
155+
settings = ReframeSettings()

cscs-checks/apps/cpmd/cpmd_check.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ def __init__(self, scale):
2121
self.valid_systems += ['dom:gpu']
2222
else:
2323
self.num_tasks = 16
24-
self.time_limit = (0, 20, 0)
2524

2625
self.num_tasks_per_node = 1
2726
self.valid_prog_environs = ['PrgEnv-intel']

cscs-checks/apps/paraview/paraview_check.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def __init__(self):
1616
self.num_tasks_per_node = 12
1717
self.modules = ['ParaView']
1818

19-
self.time_limit = (0, 1, 0)
19+
self.time_limit = '1m'
2020
self.executable = 'pvbatch'
2121
self.executable_opts = ['coloredSphere.py']
2222

cscs-checks/cuda/multi_gpu.py

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
# SPDX-License-Identifier: BSD-3-Clause
55

6+
import contextlib
67
import os
78

89
import reframe.utility.sanity as sn
@@ -60,11 +61,6 @@ def __init__(self):
6061
self.perf_patterns = {}
6162
self.reference = {}
6263
self.__bwref = {
63-
# FIXME: reference values for Arolla and Tsa need to be updated
64-
# (sanity check fails if they are not defined)
65-
'arolla:cn:h2d': (7583, -0.1, None, 'MB/s'),
66-
'arolla:cn:d2h': (7584, -0.1, None, 'MB/s'),
67-
'arolla:cn:d2d': (137408, -0.1, None, 'MB/s'),
6864
'daint:gpu:h2d': (11881, -0.1, None, 'MB/s'),
6965
'daint:gpu:d2h': (12571, -0.1, None, 'MB/s'),
7066
'daint:gpu:d2d': (499000, -0.1, None, 'MB/s'),
@@ -74,12 +70,6 @@ def __init__(self):
7470
'kesch:cn:h2d': (7583, -0.1, None, 'MB/s'),
7571
'kesch:cn:d2h': (7584, -0.1, None, 'MB/s'),
7672
'kesch:cn:d2d': (137408, -0.1, None, 'MB/s'),
77-
'tiger:gpu:h2d': (0, None, None, 'MB/s'),
78-
'tiger:gpu:d2h': (0, None, None, 'MB/s'),
79-
'tiger:gpu:d2d': (0, None, None, 'MB/s'),
80-
'tsa:cn:h2d': (7583, -0.1, None, 'MB/s'),
81-
'tsa:cn:d2h': (7584, -0.1, None, 'MB/s'),
82-
'tsa:cn:d2d': (137408, -0.1, None, 'MB/s'),
8373
}
8474
self.tags = {'diagnostic', 'benchmark', 'mch',
8575
'craype', 'external-resources'}
@@ -136,6 +126,7 @@ def do_sanity_check(self):
136126
partname = self.current_partition.fullname
137127
refkey = '%s:%s' % (partname, perfvar)
138128
bwkey = '%s:%s' % (partname, xfer_kind)
139-
self.reference[refkey] = self.__bwref[bwkey]
129+
with contextlib.suppress(KeyError):
130+
self.reference[refkey] = self.__bwref[bwkey]
140131

141132
return True

cscs-checks/libraries/math/trilinos_compile_run.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,17 @@ def __init__(self, linkage):
1515
'tiger:gpu']
1616
# NOTE: PrgEnv-cray in dynamic does not work because of CrayBug/809265
1717
self.valid_prog_environs = ['PrgEnv-gnu', 'PrgEnv-intel']
18+
# NOTE: PrgEnv-cray_classic does not support trilinos
1819
if linkage == 'static':
1920
self.valid_prog_environs += ['PrgEnv-cray']
2021

2122
self.build_system = 'SingleSource'
2223
self.build_system.ldflags = ['-%s' % linkage, '-lparmetis']
2324
self.build_system.cppflags = ['-DHAVE_MPI', '-DEPETRA_MPI']
2425
self.prgenv_flags = {
25-
'PrgEnv-cray': ['-homp', '-hstd=c++11', '-hmsglevel_4'],
26+
'PrgEnv-cray': ['-fopenmp', '-O2', '-ffast-math', '-std=c++11',
27+
'-Wno-everything'],
28+
'PrgEnv-cray_classic': ['-homp', '-hstd=c++11', '-hmsglevel_4'],
2629
'PrgEnv-gnu': ['-fopenmp', '-std=c++11', '-w', '-fpermissive'],
2730
'PrgEnv-intel': ['-qopenmp', '-w', '-std=c++11'],
2831
'PrgEnv-pgi': ['-mp', '-w']

cscs-checks/libraries/petsc/petsc_helloworld.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,18 @@ def __init__(self, linkage):
1515
'(%s linking)') % linkage
1616
self.valid_systems = ['daint:gpu', 'daint:mc',
1717
'dom:gpu', 'dom:mc', 'tiger:gpu']
18-
self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-gnu']
19-
if linkage == 'dynamic':
20-
# FIXME: static compilation yields a link error in case of
21-
# PrgEnv-intel (Cray Bug #255701)
22-
self.valid_prog_environs += ['PrgEnv-intel']
23-
18+
self.valid_prog_environs = ['PrgEnv-cray', 'PrgEnv-gnu',
19+
'PrgEnv-intel']
2420
self.sourcepath = 'poisson2d.c'
2521
self.modules = ['cray-petsc']
2622
self.num_tasks = 16
2723
self.num_tasks_per_node = 8
2824
self.build_system = 'SingleSource'
25+
# FIXME: static compilation yields a link error in case of
26+
# PrgEnv-intel (Cray Bug #255701) workaround use C++ compiler
27+
if linkage == 'static':
28+
self.build_system.cc = 'CC'
29+
2930
self.variables = {'CRAYPE_LINK_TYPE': linkage}
3031
self.executable_opts = ['-da_grid_x 4', '-da_grid_y 4', '-ksp_monitor']
3132

cscs-checks/microbenchmarks/dgemm/dgemm.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ def eval_sanity(self):
9797
num_tested_nodes = len(all_tested_nodes)
9898
failure_msg = ('Requested %s node(s), but found %s node(s)' %
9999
(self.job.num_tasks, num_tested_nodes))
100-
sn.assert_eq(num_tested_nodes, self.job.num_tasks, msg=failure_msg)
100+
sn.evaluate(sn.assert_eq(num_tested_nodes, self.job.num_tasks,
101+
msg=failure_msg))
101102

102103
for hostname in all_tested_nodes:
103104
partition_name = self.current_partition.fullname

cscs-checks/microbenchmarks/hpcg/hpcg_benchmark.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ def __init__(self):
2323
self.build_system.options = ['arch=MPI_GCC_OMP']
2424
self.sourcesdir = 'https://github.com/hpcg-benchmark/hpcg.git'
2525

26+
# FIXME: Remove this after the OpenMP pragma gets fixed in hpcg master
27+
self.prebuild_cmd = ['git checkout 9484cd7f2c4744c783abbdcfd4f5cc34807b42b1']
28+
2629
self.executable = 'bin/xhpcg'
2730
self.executable_opts = ['--nx=104', '--ny=104', '--nz=104', '-t2']
2831
# use glob to catch the output file suffix dependent on execution time

0 commit comments

Comments
 (0)