55
66
77class NamdBaseCheck (RunOnlyRegressionTest ):
8- def __init__ (self , variant = 'cpu' , ** kwargs ):
8+ def __init__ (self , variant , ** kwargs ):
99 super ().__init__ ('namd_%s_check' % variant ,
1010 os .path .dirname (__file__ ), ** kwargs )
1111 self .descr = 'NAMD 2.11 check (%s)' % variant
1212
13- self .valid_systems = ['daint:mc' , 'dom:mc' ]
1413 self .valid_prog_environs = ['PrgEnv-intel' ]
1514
1615 self .modules = ['NAMD' ]
@@ -19,17 +18,6 @@ def __init__(self, variant='cpu', **kwargs):
1918 self .sourcesdir = os .path .join (self .current_system .resourcesdir ,
2019 'NAMD' )
2120 self .executable = 'namd2'
22- self .executable_opts = '+idlepoll +ppn 71 stmv.namd' .split ()
23-
24- self .use_multithreading = True
25- self .num_cpus_per_task = 72
26- self .num_tasks_per_core = 2
27- if self .current_system .name == 'dom' :
28- self .num_tasks = 6
29- self .num_tasks_per_node = 1
30- else :
31- self .num_tasks = 16
32- self .num_tasks_per_node = 1
3321
3422 energy = sn .avg (sn .extractall (r'ENERGY:(\s+\S+){10}\s+(?P<energy>\S+)' ,
3523 self .stdout , 'energy' , float ))
@@ -41,14 +29,6 @@ def __init__(self, variant='cpu', **kwargs):
4129 self .stdout , 'step_num' )), 50 ),
4230 sn .assert_lt (energy_diff , 2720 )
4331 ])
44- self .reference = {
45- 'dom:mc' : {
46- 'days_ns' : (0.49 , None , 0.05 ),
47- },
48- 'daint:mc' : {
49- 'days_ns' : (0.27 , None , 0.05 ),
50- },
51- }
5232
5333 self .perf_patterns = {
5434 'days_ns' : sn .avg (sn .extractall (
@@ -106,7 +86,52 @@ def __init__(self, **kwargs):
10686 }
10787
10888
89+ class NamdCPUCheck (NamdBaseCheck ):
90+ def __init__ (self , version , ** kwargs ):
91+ super ().__init__ ('cpu_%s' % version , ** kwargs )
92+ self .valid_systems = ['daint:mc' , 'dom:mc' ]
93+ self .executable_opts = '+idlepoll +ppn 71 stmv.namd' .split ()
94+ self .use_multithreading = True
95+ self .num_cpus_per_task = 72
96+ self .num_tasks_per_core = 2
97+ if self .current_system .name == 'dom' :
98+ self .num_tasks = 6
99+ self .num_tasks_per_node = 1
100+ else :
101+ self .num_tasks = 16
102+ self .num_tasks_per_node = 1
103+
104+
105+ class NamdCPUProdCheck (NamdCPUCheck ):
106+ def __init__ (self , ** kwargs ):
107+ super ().__init__ ('prod' , ** kwargs )
108+ self .tags |= {'production' }
109+ self .reference = {
110+ 'dom:mc' : {
111+ 'days_ns' : (0.49 , None , 0.05 ),
112+ },
113+ 'daint:mc' : {
114+ 'days_ns' : (0.27 , None , 0.05 ),
115+ },
116+ }
117+
118+
119+ class NamdCPUMaintCheck (NamdCPUCheck ):
120+ def __init__ (self , ** kwargs ):
121+ super ().__init__ ('maint' , ** kwargs )
122+ self .tags |= {'maintenance' }
123+ self .reference = {
124+ 'dom:mc' : {
125+ 'days_ns' : (0.49 , None , 0.05 ),
126+ },
127+ 'daint:mc' : {
128+ 'days_ns' : (0.27 , None , 0.05 ),
129+ },
130+ }
131+
132+
109133def _get_checks (** kwargs ):
110- return [NamdBaseCheck (** kwargs ),
134+ return [NamdCPUProdCheck (** kwargs ),
135+ NamdCPUMaintCheck (** kwargs ),
111136 NamdGPUProdCheck (** kwargs ),
112137 NamdGPUMaintCheck (** kwargs )]
0 commit comments