@@ -154,16 +154,20 @@ def _collect_range_runtime_stats(self, num_threads):
154
154
# Iterate through all combos
155
155
for num_gb in np .arange (0.25 , ram_gb_range + ram_gb_step , ram_gb_step ):
156
156
# Cmd-level
157
- cmd_fin_str = self ._run_cmdline_workflow (num_gb , num_threads )
157
+ cmd_start_str , cmd_fin_str = self ._run_cmdline_workflow (num_gb , num_threads )
158
+ cmd_start_ts = json .loads (cmd_start_str )['start' ]
158
159
cmd_node_stats = json .loads (cmd_fin_str )
159
160
cmd_runtime_threads = int (cmd_node_stats ['runtime_threads' ])
160
161
cmd_runtime_gb = float (cmd_node_stats ['runtime_memory_gb' ])
162
+ cmd_finish_ts = cmd_node_stats ['finish' ]
161
163
162
164
# Func-level
163
- func_fin_str = self ._run_function_workflow (num_gb , num_threads )
165
+ func_start_str , func_fin_str = self ._run_function_workflow (num_gb , num_threads )
166
+ func_start_ts = json .loads (func_start_str )['start' ]
164
167
func_node_stats = json .loads (func_fin_str )
165
168
func_runtime_threads = int (func_node_stats ['runtime_threads' ])
166
169
func_runtime_gb = float (func_node_stats ['runtime_memory_gb' ])
170
+ func_finish_ts = func_node_stats ['finish' ]
167
171
168
172
# Calc errors
169
173
cmd_threads_err = cmd_runtime_threads - num_threads
@@ -181,7 +185,11 @@ def _collect_range_runtime_stats(self, num_threads):
181
185
'cmd_threads_err' : cmd_threads_err ,
182
186
'cmd_gb_err' : cmd_gb_err ,
183
187
'func_threads_err' : func_threads_err ,
184
- 'func_gb_err' : func_gb_err }
188
+ 'func_gb_err' : func_gb_err ,
189
+ 'cmd_start_ts' : cmd_start_ts ,
190
+ 'cmd_finish_ts' : cmd_finish_ts ,
191
+ 'func_start_ts' : func_start_ts ,
192
+ 'func_finish_ts' : func_finish_ts }
185
193
# Append to list
186
194
dict_list .append (results_dict )
187
195
@@ -262,13 +270,14 @@ def _run_cmdline_workflow(self, num_gb, num_threads):
262
270
wf .run (plugin = 'MultiProc' , plugin_args = plugin_args )
263
271
264
272
# Get runtime stats from log file
273
+ start_str = open (log_file , 'r' ).readlines ()[0 ].rstrip ('\n ' )
265
274
finish_str = open (log_file , 'r' ).readlines ()[1 ].rstrip ('\n ' )
266
275
267
276
# Delete wf base dir
268
277
shutil .rmtree (base_dir )
269
278
270
279
# Return runtime stats
271
- return finish_str
280
+ return start_str , finish_str
272
281
273
282
# Test node
274
283
def _run_function_workflow (self , num_gb , num_threads ):
@@ -339,13 +348,14 @@ def _run_function_workflow(self, num_gb, num_threads):
339
348
wf .run (plugin = 'MultiProc' , plugin_args = plugin_args )
340
349
341
350
# Get runtime stats from log file
351
+ start_str = open (log_file , 'r' ).readlines ()[0 ].rstrip ('\n ' )
342
352
finish_str = open (log_file , 'r' ).readlines ()[1 ].rstrip ('\n ' )
343
353
344
354
# Delete wf base dir
345
355
shutil .rmtree (base_dir )
346
356
347
357
# Return runtime stats
348
- return finish_str
358
+ return start_str , finish_str
349
359
350
360
# Test resources were used as expected in cmdline interface
351
361
@unittest .skipIf (run_profiler == False , skip_profile_msg )
@@ -364,7 +374,7 @@ def tiest_cmdline_profiling(self):
364
374
num_threads = self .num_threads
365
375
366
376
# Run workflow and get stats
367
- finish_str = self ._run_cmdline_workflow (num_gb , num_threads )
377
+ start_str , finish_str = self ._run_cmdline_workflow (num_gb , num_threads )
368
378
# Get runtime stats as dictionary
369
379
node_stats = json .loads (finish_str )
370
380
@@ -406,7 +416,7 @@ def tiest_function_profiling(self):
406
416
num_threads = self .num_threads
407
417
408
418
# Run workflow and get stats
409
- finish_str = self ._run_function_workflow (num_gb , num_threads )
419
+ start_str , finish_str = self ._run_function_workflow (num_gb , num_threads )
410
420
# Get runtime stats as dictionary
411
421
node_stats = json .loads (finish_str )
412
422
0 commit comments