4
import skel_have_adios_timing
8
def __init__ (self, infile):
9
doc = xml.dom.minidom.parse (infile)
11
nodes = doc.childNodes
12
if (nodes.length != 1):
13
print 'malformed param file, should contain only a single skel-config element'
15
self.config_node = nodes[0]
20
for node in self.config_node.getElementsByTagName('adios-group'):
21
this_group = group (node)
22
self.groups.append (this_group)
23
self.group_dict[this_group.get_name()] = this_group
27
for node in self.config_node.getElementsByTagName('batch'):
28
self.batches.append (batch (node) )
30
def get_group (self, name):
31
return self.group_dict[name]
33
def get_groups (self):
36
def get_batches (self):
39
def get_application (self):
40
return self.config_node.getAttribute ('application')
42
def get_target (self):
43
target = self.config_node.getAttribute ('target')
45
if target == None or target == '':
52
def __init__ (self, group_node):
53
self.group_node = group_node
61
for node in self.group_node.childNodes:
62
if (node.localName == 'scalar'):
63
this_scalar = scalar (node)
64
self.scalars.append (this_scalar)
65
self.scalar_dict[this_scalar.get_name()] = this_scalar
66
if (node.localName == 'array'):
67
this_array = array (node)
68
self.arrays.append (this_array)
69
self.array_dict[this_array.get_name()] = this_array
72
return self.group_node.getAttribute ('name')
74
def get_scalars (self):
77
def get_scalar (self, name):
78
return self.scalar_dict[name]
80
def get_arrays (self):
83
def get_array (self, name):
84
return self.array_dict[name]
88
def __init__ (self, batch_node):
89
self.batch_node = batch_node
92
for node in self.batch_node.getElementsByTagName ('test'):
93
self.tests.append (test (node) )
99
return self.batch_node.getAttribute ('name')
101
def get_cores (self):
102
return int (self.batch_node.getAttribute ('cores') )
104
def get_walltime (self):
105
return self.batch_node.getAttribute ('walltime')
109
def __init__ (self, test_node):
110
self.test_node = test_node
111
self.measure = measure (self.test_node.getAttribute ('measure') )
115
return self.test_node.getAttribute ('type')
117
def get_method_params (self):
118
return self.test_node.getAttribute ('method_params')
120
def get_group_name (self):
121
return self.test_node.getAttribute ('group')
123
def get_method (self):
124
return self.test_node.getAttribute ('method')
127
return self.test_node.getAttribute ('rm')
130
return self.test_node.getAttribute ('tags')
132
def get_steps (self):
133
steps = self.test_node.getAttribute ('steps')
134
if steps == None or steps == '':
139
def get_iterations (self):
140
iter = self.test_node.getAttribute ('iterations')
141
if iter == None or iter == '':
147
return self.test_node.getAttribute ('ext')
149
def get_measure (self):
152
# the measure object hides the logic of which code to emit for the various measurement options
154
def __init__ (self, measure_string):
155
self.settings_dict = skel_settings.skel_settings().get_settings_dict()
156
self.measure_string = measure_string
158
def use_barrier_before_open (self):
159
val = self.settings_dict["barrier_before_open"]
165
def use_barrier_before_access (self):
166
val = self.settings_dict["barrier_before_access"]
172
def use_barrier_before_close (self):
173
val = self.settings_dict["barrier_before_close"]
179
def use_barrier_after_close (self):
180
val = self.settings_dict["barrier_after_close"]
186
def use_barrier_before_final_time (self):
187
val = self.settings_dict["barrier_after_steps"]
193
def use_reduce (self):
194
#val = self.settings_dict["reduce_times"]
198
# Only reduced output is available from skel. Use adios timing mechanism for more detailed results
202
def report_all (self):
203
#val = self.settings_dict["report_all"]
207
# Only reduced output is available from skel. Use adios timing mechanism for more detailed results
211
def use_adios_timing (self):
212
val = self.settings_dict["use_adios_timing"]
213
if val =="yes" and skel_have_adios_timing.skel_have_adios_timing == True:
218
def use_sleep_before_open (self):
219
val = self.settings_dict["sleep_before_open"]
226
def __init__ (self, scalar_node):
227
self.scalar_node = scalar_node
230
return self.scalar_node.getAttribute ('name')
232
def get_value (self):
233
return self.scalar_node.getAttribute ('value')
237
def __init__ (self, array_node):
238
self.array_node = array_node
241
return self.array_node.getAttribute ('name')
243
def get_gwrite (self):
244
return self.array_node.getAttribute ('gwrite')
246
def get_fill_method (self):
247
return self.array_node.getAttribute ('fill-method')