Skip to content

Commit ce34aea

Browse files
author
Vasileios Karakasis
authored
Merge branch 'master' into sanity_check_parallel_io
2 parents 6243e64 + 3623af2 commit ce34aea

File tree

120 files changed

+4493
-1044
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+4493
-1044
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/reframe-hpc)<br/>
1313
[![Slack](https://reframe-slack.herokuapp.com/badge.svg)](https://reframe-slack.herokuapp.com/)<br/>
1414
[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
15-
[![DOI](https://zenodo.org/badge/89384186.svg)](https://zenodo.org/badge/latestdoi/89384186)
15+
[![DOI](https://zenodo.org/badge/89384186.svg)](https://zenodo.org/badge/latestdoi/89384186)<br/>
16+
![Twitter Follow](https://img.shields.io/twitter/follow/ReFrameHPC?style=social)
1617

1718
# ReFrame in a Nutshell
1819

config/cscs-ci.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
{
2525
'name': 'gpu',
2626
'scheduler': 'slurm',
27+
'time_limit': '10m',
2728
'access': [
2829
'--constraint=gpu',
2930
'--partition=cscsci',
@@ -58,6 +59,7 @@
5859
{
5960
'name': 'slurm',
6061
'scheduler': 'slurm',
62+
'time_limit': '10m',
6163
'access': [
6264
'--constraint=gpu',
6365
f'--account={osext.osgroup()}'
@@ -80,6 +82,7 @@
8082
{
8183
'name': 'pbs',
8284
'scheduler': 'pbs',
85+
'time_limit': '10m',
8386
'access': [
8487
'proc=gpu',
8588
f'-A {osext.osgroup()}'
@@ -94,6 +97,7 @@
9497
{
9598
'name': 'torque',
9699
'scheduler': 'torque',
100+
'time_limit': '10m',
97101
'access': [
98102
'-l proc=gpu',
99103
f'-A {osext.osgroup()}'

config/cscs.py

Lines changed: 70 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@
182182
},
183183
{
184184
'name': 'gpu',
185+
'time_limit': '10m',
185186
'scheduler': 'slurm',
186187
'container_platforms': [
187188
{
@@ -230,6 +231,7 @@
230231
{
231232
'name': 'mc',
232233
'scheduler': 'slurm',
234+
'time_limit': '10m',
233235
'container_platforms': [
234236
{
235237
'type': 'Sarus',
@@ -348,6 +350,7 @@
348350
{
349351
'name': 'gpu',
350352
'scheduler': 'slurm',
353+
'time_limit': '10m',
351354
'container_platforms': [
352355
{
353356
'type': 'Sarus',
@@ -389,6 +392,7 @@
389392
{
390393
'name': 'mc',
391394
'scheduler': 'slurm',
395+
'time_limit': '10m',
392396
'container_platforms': [
393397
{
394398
'type': 'Sarus',
@@ -660,10 +664,10 @@
660664
]
661665
},
662666
{
663-
'name': 'pilatus',
664-
'descr': 'Alps Cray EX Supercomputer (TDS)',
667+
'name': 'eiger',
668+
'descr': 'Alps Cray EX Supercomputer',
665669
'hostnames': [
666-
'pilatus'
670+
'eiger'
667671
],
668672
'modules_system': 'lmod',
669673
'resourcesdir': '/apps/common/UES/reframe/resources',
@@ -711,10 +715,10 @@
711715
]
712716
},
713717
{
714-
'name': 'eiger',
715-
'descr': 'Alps Cray EX Supercomputer',
718+
'name': 'pilatus',
719+
'descr': 'Alps Cray EX Supercomputer TDS',
716720
'hostnames': [
717-
'eiger'
721+
'pilatus'
718722
],
719723
'modules_system': 'lmod',
720724
'resourcesdir': '/apps/common/UES/reframe/resources',
@@ -724,9 +728,14 @@
724728
'scheduler': 'local',
725729
'environs': [
726730
'builtin',
731+
'PrgEnv-aocc',
727732
'PrgEnv-cray',
728733
'PrgEnv-gnu',
729-
'PrgEnv-aocc'
734+
'PrgEnv-intel',
735+
'cpeAMD',
736+
'cpeCray',
737+
'cpeGNU',
738+
'cpeIntel'
730739
],
731740
'descr': 'Login nodes',
732741
'max_jobs': 4,
@@ -738,9 +747,14 @@
738747
'scheduler': 'slurm',
739748
'environs': [
740749
'builtin',
750+
'PrgEnv-aocc',
741751
'PrgEnv-cray',
742752
'PrgEnv-gnu',
743-
'PrgEnv-aocc'
753+
'PrgEnv-intel',
754+
'cpeAMD',
755+
'cpeCray',
756+
'cpeGNU',
757+
'cpeIntel'
744758
],
745759
'max_jobs': 100,
746760
'resources': [
@@ -905,6 +919,15 @@
905919
'cxx': 'g++',
906920
'ftn': 'gfortran'
907921
},
922+
{
923+
'name': 'PrgEnv-aocc',
924+
'target_systems': [
925+
'eiger', 'pilatus'
926+
],
927+
'modules': [
928+
{'name': 'PrgEnv-aocc', 'collection': True}
929+
]
930+
},
908931
{
909932
'name': 'PrgEnv-cray',
910933
'target_systems': [
@@ -924,14 +947,50 @@
924947
]
925948
},
926949
{
927-
'name': 'PrgEnv-aocc',
950+
'name': 'PrgEnv-intel',
928951
'target_systems': [
929-
'eiger', 'pilatus'
952+
'pilatus'
930953
],
931954
'modules': [
932-
{'name': 'PrgEnv-aocc', 'collection': True}
955+
{'name': 'PrgEnv-intel', 'collection': True}
933956
]
934957
},
958+
{
959+
'name': 'cpeAMD',
960+
'target_systems': [
961+
'eiger', 'pilatus'
962+
],
963+
'modules': [
964+
'cpeAMD'
965+
],
966+
},
967+
{
968+
'name': 'cpeCray',
969+
'target_systems': [
970+
'eiger', 'pilatus'
971+
],
972+
'modules': [
973+
'cpeCray'
974+
],
975+
},
976+
{
977+
'name': 'cpeGNU',
978+
'target_systems': [
979+
'eiger', 'pilatus'
980+
],
981+
'modules': [
982+
'cpeGNU'
983+
],
984+
},
985+
{
986+
'name': 'cpeIntel',
987+
'target_systems': [
988+
'pilatus'
989+
],
990+
'modules': [
991+
'cpeIntel'
992+
],
993+
},
935994
{
936995
'name': 'PrgEnv-cray',
937996
'modules': [

cscs-checks/apps/amber/amber_check.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ def __init__(self, input_file, output_file):
4343
self.tags = {'scs', 'external-resources'}
4444

4545

46-
@rfm.required_version('>=2.16')
4746
@rfm.parameterized_test(*(
4847
[variant, arch, scale]
4948
for variant in ['prod', 'maint']

cscs-checks/apps/cp2k/cp2k_check.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99

1010
class Cp2kCheck(rfm.RunOnlyRegressionTest):
1111
def __init__(self):
12-
self.valid_prog_environs = ['builtin']
12+
if self.current_system.name == 'pilatus':
13+
self.valid_prog_environs = ['cpeGNU']
14+
else:
15+
self.valid_prog_environs = ['builtin']
16+
1317
self.modules = ['CP2K']
1418
self.executable = 'cp2k.psmp'
1519
self.executable_opts = ['H2O-256.inp']
@@ -51,13 +55,13 @@ class Cp2kCpuCheck(Cp2kCheck):
5155
def __init__(self, scale, variant):
5256
super().__init__()
5357
self.descr = 'CP2K CPU check (version: %s, %s)' % (scale, variant)
54-
self.valid_systems = ['daint:mc', 'eiger:mc']
58+
self.valid_systems = ['daint:mc', 'eiger:mc', 'pilatus:mc']
5559
if scale == 'small':
5660
self.valid_systems += ['dom:mc']
5761
if self.current_system.name in ['daint', 'dom']:
5862
self.num_tasks = 216
5963
self.num_tasks_per_node = 36
60-
elif self.current_system.name == 'eiger':
64+
elif self.current_system.name in ['eiger', 'pilatus']:
6165
self.num_tasks = 96
6266
self.num_tasks_per_node = 16
6367
self.num_cpus_per_task = 16
@@ -74,7 +78,7 @@ def __init__(self, scale, variant):
7478
if self.current_system.name in ['daint', 'dom']:
7579
self.num_tasks = 576
7680
self.num_tasks_per_node = 36
77-
elif self.current_system.name in ['eiger']:
81+
elif self.current_system.name in ['eiger', 'pilatus']:
7882
self.num_tasks = 256
7983
self.num_tasks_per_node = 16
8084
self.num_cpus_per_task = 16
@@ -92,22 +96,26 @@ def __init__(self, scale, variant):
9296
'small': {
9397
'dom:mc': {'time': (202.2, None, 0.05, 's')},
9498
'daint:mc': {'time': (180.9, None, 0.08, 's')},
95-
'eiger:mc': {'time': (70.0, None, 0.08, 's')}
99+
'eiger:mc': {'time': (70.0, None, 0.08, 's')},
100+
'pilatus:mc': {'time': (70.0, None, 0.08, 's')}
96101
},
97102
'large': {
98103
'daint:mc': {'time': (141.0, None, 0.05, 's')},
99-
'eiger:mc': {'time': (46.0, None, 0.05, 's')}
104+
'eiger:mc': {'time': (46.0, None, 0.05, 's')},
105+
'pilatus:mc': {'time': (46.0, None, 0.05, 's')}
100106
}
101107
},
102108
'prod': {
103109
'small': {
104110
'dom:mc': {'time': (202.2, None, 0.05, 's')},
105111
'daint:mc': {'time': (180.9, None, 0.08, 's')},
106-
'eiger:mc': {'time': (70.0, None, 0.08, 's')}
112+
'eiger:mc': {'time': (70.0, None, 0.08, 's')},
113+
'pilatus:mc': {'time': (70.0, None, 0.08, 's')}
107114
},
108115
'large': {
109116
'daint:mc': {'time': (113.0, None, 0.05, 's')},
110-
'eiger:mc': {'time': (46.0, None, 0.05, 's')}
117+
'eiger:mc': {'time': (46.0, None, 0.05, 's')},
118+
'pilatus:mc': {'time': (46.0, None, 0.05, 's')}
111119
}
112120
}
113121
}
@@ -118,11 +126,12 @@ def __init__(self, scale, variant):
118126
@rfm.run_before('run')
119127
def set_task_distribution(self):
120128
self.job.options = ['--distribution=block:block']
121-
129+
122130
@rfm.run_before('run')
123131
def set_cpu_binding(self):
124132
self.job.launcher.options = ['--cpu-bind=cores']
125133

134+
126135
@rfm.parameterized_test(*([s, v]
127136
for s in ['small', 'large']
128137
for v in ['maint', 'prod']))

cscs-checks/apps/cpmd/cpmd_check.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import reframe.utility.sanity as sn
88

99

10-
@rfm.required_version('>=2.16')
1110
@rfm.parameterized_test(['small'], ['large'])
1211
class CPMDCheck(rfm.RunOnlyRegressionTest):
1312
def __init__(self, scale):

cscs-checks/apps/greasy/greasy_check.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ def to_seconds(str):
1616
datetime.strptime('00:00:00', '%H:%M:%S')).total_seconds()
1717

1818

19-
@rfm.required_version('>=2.19')
2019
@rfm.parameterized_test(
2120
['serial', 'gpu', 24, 12, 1, 1],
2221
['serial', 'mc', 72, 36, 1, 1],
@@ -39,7 +38,7 @@ def __init__(self, variant, partition, num_greasy_tasks, nworkes_per_node,
3938
# sleep enough time to distinguish if the files are running in parallel
4039
# or not
4140
self.sleep_time = 60
42-
self.build_system.cflags = ['-DSLEEP_TIME=%d' % self.sleep_time]
41+
self.build_system.cflags = [f'-DSLEEP_TIME={self.sleep_time:d}']
4342
self.variant = variant
4443
if variant == 'openmp':
4544
self.build_system.cflags += ['-fopenmp']

cscs-checks/apps/gromacs/gromacs_check.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212

1313
class GromacsBaseCheck(rfm.RunOnlyRegressionTest):
1414
def __init__(self, output_file):
15-
self.valid_prog_environs = ['builtin']
15+
if self.current_system.name == 'pilatus':
16+
self.valid_prog_environs = ['cpeGNU']
17+
else:
18+
self.valid_prog_environs = ['builtin']
19+
1620
self.executable = 'gmx_mpi'
1721

1822
# Reset sources dir relative to the SCS apps prefix
@@ -49,7 +53,6 @@ def __init__(self, output_file):
4953
self.tags = {'scs', 'external-resources'}
5054

5155

52-
@rfm.required_version('>=2.19')
5356
@rfm.parameterized_test(*([s, v]
5457
for s in ['small', 'large']
5558
for v in ['prod', 'maint']))
@@ -92,14 +95,13 @@ def __init__(self, scale, variant):
9295
self.tags |= {'maintenance' if variant == 'maint' else 'production'}
9396

9497

95-
@rfm.required_version('>=2.19')
9698
@rfm.parameterized_test(*([s, v]
9799
for s in ['small', 'large']
98100
for v in ['prod']))
99101
class GromacsCPUCheck(GromacsBaseCheck):
100102
def __init__(self, scale, variant):
101103
super().__init__('md.log')
102-
self.valid_systems = ['daint:mc', 'eiger:mc']
104+
self.valid_systems = ['daint:mc', 'eiger:mc', 'pilatus:mc']
103105
self.descr = 'GROMACS CPU check'
104106
self.executable_opts = ['mdrun', '-dlb yes', '-ntomp 1', '-npme -1',
105107
'-nb cpu', '-s herflat.tpr']
@@ -109,14 +111,14 @@ def __init__(self, scale, variant):
109111
if (self.current_system.name in ['daint', 'dom']):
110112
self.num_tasks = 216
111113
self.num_tasks_per_node = 36
112-
elif (self.current_system.name in ['eiger']):
114+
elif (self.current_system.name in ['eiger', 'pilatus']):
113115
self.num_tasks = 768
114116
self.num_tasks_per_node = 128
115117
else:
116118
if (self.current_system.name in ['daint', 'dom']):
117119
self.num_tasks = 576
118120
self.num_tasks_per_node = 36
119-
elif (self.current_system.name in ['eiger']):
121+
elif (self.current_system.name in ['eiger', 'pilatus']):
120122
self.num_tasks = 2048
121123
self.num_tasks_per_node = 128
122124

@@ -125,11 +127,13 @@ def __init__(self, scale, variant):
125127
'small': {
126128
'dom:mc': {'perf': (40.0, -0.05, None, 'ns/day')},
127129
'daint:mc': {'perf': (38.8, -0.10, None, 'ns/day')},
128-
'eiger:mc': {'perf': (103.00, -0.10, None, 'ns/day')}
130+
'eiger:mc': {'perf': (103.00, -0.10, None, 'ns/day')},
131+
'pilatus:mc': {'perf': (103.00, -0.10, None, 'ns/day')}
129132
},
130133
'large': {
131134
'daint:mc': {'perf': (68.0, -0.20, None, 'ns/day')},
132-
'eiger:mc': {'perf': (146.00, -0.20, None, 'ns/day')}
135+
'eiger:mc': {'perf': (146.00, -0.20, None, 'ns/day')},
136+
'pilatus:mc': {'perf': (146.00, -0.20, None, 'ns/day')}
133137
}
134138
},
135139
}

0 commit comments

Comments
 (0)