From d9516f055a8836fea44e0c50555442464ecfc282 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 11 Mar 2022 19:35:55 +0100 Subject: [PATCH 1/4] Update CPMD check --- cscs-checks/apps/cpmd/cpmd_check.py | 124 +++++++++++++++++----------- 1 file changed, 74 insertions(+), 50 deletions(-) diff --git a/cscs-checks/apps/cpmd/cpmd_check.py b/cscs-checks/apps/cpmd/cpmd_check.py index 9c35e341cc..c38171c96b 100644 --- a/cscs-checks/apps/cpmd/cpmd_check.py +++ b/cscs-checks/apps/cpmd/cpmd_check.py @@ -3,80 +3,104 @@ # # SPDX-License-Identifier: BSD-3-Clause -import contextlib import reframe as rfm import reframe.utility.sanity as sn @rfm.simple_test class CPMDCheck(rfm.RunOnlyRegressionTest): - scale = parameter(['small', 'large']) - descr = 'CPMD check (C4H6 metadynamics)' - maintainers = ['AJ', 'LM'] - tags = {'production'} - valid_systems = ['daint:gpu'] - num_tasks_per_node = 1 - valid_prog_environs = ['builtin'] modules = ['CPMD'] executable = 'cpmd.x' - executable_opts = ['ana_c4h6.in > stdout.txt'] - readonly_files = ['ana_c4h6.in', 'C_MT_BLYP', 'H_MT_BLYP'] - use_multithreading = True - strict_check = False + executable_opts = ['ana_c4h6.in'] extra_resources = { 'switches': { 'num_switches': 1 } } - allref = { - '9': { - 'p100': { - 'time': (284, None, 0.15, 's') + strict_check = False + use_multithreading = False + tags = {'maintenance', 'production'} + maintainers = ['AJ', 'LM'] + + num_nodes = parameter([6, 16], loggable=True) + references = { + 6: { + 'sm_60': { + 'dom:gpu': {'time': (120, None, 0.15, 's')}, + 'daint:gpu': {'time': (120, None, 0.15, 's')}, + }, + 'broadwell': { + 'dom:mc': {'time': (150.0, None, 0.15, 's')}, + 'daint:mc': {'time': (150.0, None, 0.15, 's')}, }, }, - '16': { - 'p100': { - 'time': (226, None, 0.15, 's') - } + 16: { + 'sm_60': { + 'daint:gpu': {'time': (120, None, 0.15, 's')} + }, + 'broadwell': { + 'daint:mc': {'time': (150.0, None, 0.15, 's')}, + }, } } - @run_after('init') - def setup_by_scale(self): - if self.scale == 'small': - self.valid_systems += ['dom:gpu'] - self.num_tasks = 9 - else: - self.num_tasks = 16 - - @run_before('performance') - def set_perf_reference(self): - proc = self.current_partition.processor - pname = self.current_partition.fullname - if pname in ('daint:gpu', 'dom:gpu'): - arch = 'p100' - else: - arch = proc.arch - - with contextlib.suppress(KeyError): - self.reference = { - pname: { - 'perf': self.allref[self.num_tasks][arch][self.benchmark] - } - } + @performance_function('s') + def elapsed_time(self): + return sn.extractsingle(r'^ cpmd(\s+[\d\.]+){3}\s+(?P