From 52c3efc38fda30d19c6882c0ae9a0d331e53ec0c Mon Sep 17 00:00:00 2001 From: Theofilos Manitaras Date: Fri, 25 May 2018 13:47:41 +0200 Subject: [PATCH 1/4] Update gromacs values --- cscs-checks/apps/gromacs/gromacs_check.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cscs-checks/apps/gromacs/gromacs_check.py b/cscs-checks/apps/gromacs/gromacs_check.py index ae45a13ee3..16eb08fcb4 100644 --- a/cscs-checks/apps/gromacs/gromacs_check.py +++ b/cscs-checks/apps/gromacs/gromacs_check.py @@ -87,10 +87,10 @@ def __init__(self, **kwargs): self.tags |= {'production'} self.reference = { 'dom:gpu': { - 'perf': (32.0, -0.05, None) + 'perf': (37.5, -0.05, None) }, 'daint:gpu': { - 'perf': (47.5, -0.40, None) + 'perf': (55.6, -0.20, None) }, } @@ -119,10 +119,10 @@ def __init__(self, **kwargs): self.tags |= {'production'} self.reference = { 'dom:mc': { - 'perf': (38.0, -0.05, None) + 'perf': (42.7, -0.05, None) }, 'daint:mc': { - 'perf': (73.0, -0.50, None) + 'perf': (70.4, -0.20, None) }, } From d7d8548c98d31286cf48171364e574ac887ad7eb Mon Sep 17 00:00:00 2001 From: Theofilos Manitaras Date: Fri, 25 May 2018 14:38:51 +0200 Subject: [PATCH 2/4] Address PR comments --- cscs-checks/apps/gromacs/gromacs_check.py | 54 ++++++++++------------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/cscs-checks/apps/gromacs/gromacs_check.py b/cscs-checks/apps/gromacs/gromacs_check.py index 16eb08fcb4..1ff7239fbe 100644 --- a/cscs-checks/apps/gromacs/gromacs_check.py +++ b/cscs-checks/apps/gromacs/gromacs_check.py @@ -1,13 +1,13 @@ import itertools import os +import reframe as rfm import reframe.utility.sanity as sn -from reframe.core.pipeline import RunOnlyRegressionTest -class GromacsBaseCheck(RunOnlyRegressionTest): - def __init__(self, name, output_file, **kwargs): - super().__init__(name, os.path.dirname(__file__), **kwargs) +class GromacsBaseCheck(rfm.RunOnlyRegressionTest): + def __init__(self, name, output_file): + super().__init__(name, os.path.dirname(__file__)) self.valid_prog_environs = ['PrgEnv-gnu'] self.executable = 'gmx_mpi' @@ -47,9 +47,8 @@ def __init__(self, name, output_file, **kwargs): class GromacsGPUCheck(GromacsBaseCheck): - def __init__(self, variant, **kwargs): - super().__init__('gromacs_gpu_%s_check' % variant, - 'md.log', **kwargs) + def __init__(self, variant): + super().__init__('gromacs_gpu_%s_check' % variant, 'md.log') self.valid_systems = ['daint:gpu', 'dom:gpu'] self.descr = 'GROMACS GPU check' @@ -67,9 +66,10 @@ def __init__(self, variant, **kwargs): self.num_tasks_per_node = 12 +@rfm.simple_test class GromacsGPUMaintCheck(GromacsGPUCheck): - def __init__(self, **kwargs): - super().__init__('maint', **kwargs) + def __init__(self): + super().__init__('maint') self.tags |= {'maintenance'} self.reference = { 'dom:gpu': { @@ -81,9 +81,10 @@ def __init__(self, **kwargs): } +@rfm.simple_test class GromacsGPUProdCheck(GromacsGPUCheck): - def __init__(self, **kwargs): - super().__init__('prod', **kwargs) + def __init__(self): + super().__init__('prod') self.tags |= {'production'} self.reference = { 'dom:gpu': { @@ -96,9 +97,8 @@ def __init__(self, **kwargs): class GromacsCPUCheck(GromacsBaseCheck): - def __init__(self, variant, **kwargs): - super().__init__('gromacs_cpu_%s_check' % variant, - 'md.log', **kwargs) + def __init__(self, variant): + super().__init__('gromacs_cpu_%s_check' % variant, 'md.log') self.valid_systems = ['daint:mc', 'dom:mc'] self.descr = 'GROMACS CPU check' @@ -113,9 +113,10 @@ def __init__(self, variant, **kwargs): self.num_tasks_per_node = 36 +@rfm.simple_test class GromacsCPUProdCheck(GromacsCPUCheck): - def __init__(self, **kwargs): - super().__init__('prod', **kwargs) + def __init__(self): + super().__init__('prod') self.tags |= {'production'} self.reference = { 'dom:mc': { @@ -127,14 +128,15 @@ def __init__(self, **kwargs): } +@rfm.parameterized_test([(1,), (2,), (4,), (6,), (8,)]) class GromacsCPUMonchAcceptance(GromacsBaseCheck): - def __init__(self, num_nodes, **kwargs): - nodes_label = 'node' if num_nodes == 1 else 'nodes' + def __init__(self, variant): + nodes_label = 'node' if variant == 1 else 'nodes' super().__init__('gromacs_cpu_monch_%d_%s_check' - % (num_nodes, nodes_label), 'md.log', **kwargs) + % (variant, nodes_label), 'md.log') self.valid_systems = ['monch:compute'] - self.descr = 'GROMACS CPU check on %d %s on monch' % (num_nodes, + self.descr = 'GROMACS CPU check on %d %s on monch' % (variant, nodes_label) self.executable_opts = ('mdrun -dlb yes -ntomp 1 -npme -1 ' @@ -142,20 +144,12 @@ def __init__(self, num_nodes, **kwargs): self.tags = {'monch_acceptance'} self.num_tasks_per_node = 20 - self.num_tasks = num_nodes * self.num_tasks_per_node + self.num_tasks = variant * self.num_tasks_per_node reference_by_nodes = {1: 2.6, 2: 5.1, 4: 11.1, 6: 15.8, 8: 20.6} self.reference = { 'monch:compute': { - 'perf': (reference_by_nodes[num_nodes], -0.15, None) + 'perf': (reference_by_nodes[variant], -0.15, None) } } - - -def _get_checks(**kwargs): - return list(itertools.chain( - [GromacsGPUMaintCheck(**kwargs), - GromacsGPUProdCheck(**kwargs), - GromacsCPUProdCheck(**kwargs)], - [GromacsCPUMonchAcceptance(n, **kwargs) for n in [1, 2, 4, 6, 8]])) From e07dfa898dcb5bb98abd32d032dcc6cc201a8baa Mon Sep 17 00:00:00 2001 From: Theofilos Manitaras Date: Mon, 28 May 2018 10:45:37 +0200 Subject: [PATCH 3/4] Addres PR changes (version 2) --- cscs-checks/apps/gromacs/gromacs_check.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/cscs-checks/apps/gromacs/gromacs_check.py b/cscs-checks/apps/gromacs/gromacs_check.py index 1ff7239fbe..92fe0ca0cb 100644 --- a/cscs-checks/apps/gromacs/gromacs_check.py +++ b/cscs-checks/apps/gromacs/gromacs_check.py @@ -128,28 +128,26 @@ def __init__(self): } -@rfm.parameterized_test([(1,), (2,), (4,), (6,), (8,)]) +@rfm.parameterized_test([1], [2], [4], [6], [8]) class GromacsCPUMonchAcceptance(GromacsBaseCheck): - def __init__(self, variant): - nodes_label = 'node' if variant == 1 else 'nodes' - super().__init__('gromacs_cpu_monch_%d_%s_check' - % (variant, nodes_label), 'md.log') + def __init__(self, num_nodes): + super().__init__('gromacs_cpu_monch_%d_node_check' % num_nodes, + 'md.log') self.valid_systems = ['monch:compute'] - self.descr = 'GROMACS CPU check on %d %s on monch' % (variant, - nodes_label) + self.descr = 'GROMACS %d-node CPU check on monch' % num_nodes self.executable_opts = ('mdrun -dlb yes -ntomp 1 -npme -1 ' '-nsteps 5000 -nb cpu -s herflat.tpr ').split() self.tags = {'monch_acceptance'} self.num_tasks_per_node = 20 - self.num_tasks = variant * self.num_tasks_per_node + self.num_tasks = num_nodes * self.num_tasks_per_node reference_by_nodes = {1: 2.6, 2: 5.1, 4: 11.1, 6: 15.8, 8: 20.6} self.reference = { 'monch:compute': { - 'perf': (reference_by_nodes[variant], -0.15, None) + 'perf': (reference_by_nodes[num_nodes], -0.15, None) } } From 052eae748c1be98048c5cc9626a26869226af087 Mon Sep 17 00:00:00 2001 From: Theofilos Manitaras Date: Mon, 28 May 2018 13:18:20 +0200 Subject: [PATCH 4/4] Assign the test name using the corresponding field --- cscs-checks/apps/gromacs/gromacs_check.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cscs-checks/apps/gromacs/gromacs_check.py b/cscs-checks/apps/gromacs/gromacs_check.py index 92fe0ca0cb..a2b79d368f 100644 --- a/cscs-checks/apps/gromacs/gromacs_check.py +++ b/cscs-checks/apps/gromacs/gromacs_check.py @@ -6,8 +6,8 @@ class GromacsBaseCheck(rfm.RunOnlyRegressionTest): - def __init__(self, name, output_file): - super().__init__(name, os.path.dirname(__file__)) + def __init__(self, output_file): + super().__init__() self.valid_prog_environs = ['PrgEnv-gnu'] self.executable = 'gmx_mpi' @@ -48,10 +48,11 @@ def __init__(self, name, output_file): class GromacsGPUCheck(GromacsBaseCheck): def __init__(self, variant): - super().__init__('gromacs_gpu_%s_check' % variant, 'md.log') + super().__init__('md.log') self.valid_systems = ['daint:gpu', 'dom:gpu'] self.descr = 'GROMACS GPU check' + self.name = 'gromacs_gpu_%s_check' % variant self.executable_opts = ('mdrun -dlb yes -ntomp 1 -npme 0 ' '-s herflat.tpr ').split() self.variables = {'CRAY_CUDA_MPS': '1'} @@ -98,10 +99,11 @@ def __init__(self): class GromacsCPUCheck(GromacsBaseCheck): def __init__(self, variant): - super().__init__('gromacs_cpu_%s_check' % variant, 'md.log') + super().__init__('md.log') self.valid_systems = ['daint:mc', 'dom:mc'] self.descr = 'GROMACS CPU check' + self.name = 'gromacs_cpu_%s_check' % variant self.executable_opts = ('mdrun -dlb yes -ntomp 1 -npme -1 ' '-nb cpu -s herflat.tpr ').split() @@ -131,12 +133,11 @@ def __init__(self): @rfm.parameterized_test([1], [2], [4], [6], [8]) class GromacsCPUMonchAcceptance(GromacsBaseCheck): def __init__(self, num_nodes): - super().__init__('gromacs_cpu_monch_%d_node_check' % num_nodes, - 'md.log') + super().__init__('md.log') self.valid_systems = ['monch:compute'] self.descr = 'GROMACS %d-node CPU check on monch' % num_nodes - + self.name = 'gromacs_cpu_monch_%d_node_check' % num_nodes self.executable_opts = ('mdrun -dlb yes -ntomp 1 -npme -1 ' '-nsteps 5000 -nb cpu -s herflat.tpr ').split()