Skip to content

Commit ff7959a

Browse files
committed
Added per node runtime logging
1 parent 716f923 commit ff7959a

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

nipype/pipeline/plugins/callback_log.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ def log_nodes_cb(node, status, result=None):
55
logger = logging.getLogger('callback')
66
try:
77
real_mem1 = result['real_memory']
8-
real_mem2 = result['result'].runtime.get('real_memory2')
8+
real_mem2 = result['real_memory2']
9+
run_seconds = result['run_seconds']
910
except Exception as exc:
10-
real_mem1 = real_mem2 = 'N/A'
11+
real_mem1 = real_mem2 = run_seconds = 'N/A'
1112
if status == 'start':
1213
message = '{"name":' + '"' + node.name + '"' + ',"id":' + '"' +\
1314
node._id + '"' + ',"start":' + '"' +str(datetime.datetime.now()) +\
@@ -20,7 +21,7 @@ def log_nodes_cb(node, status, result=None):
2021
message = '{"name":' + '"' + node.name + '"' + ',"id":' + '"' + \
2122
node._id + '"' + ',"finish":' + '"' + str(datetime.datetime.now()) +\
2223
'"' + ',"memory":' + str(node._interface.estimated_memory) + ',"num_threads":' \
23-
+ str(node._interface.num_threads) + ',"real memory1":' + str(real_mem1) + ',"real memory2":' + str(real_mem2) + '}'
24+
+ str(node._interface.num_threads) + ',"real_memory1":' + str(real_mem1) + ',"real_memory2":' + str(real_mem2) + ',"run_seconds":' + str(run_seconds) + '}'
2425

2526
logger.debug(message)
2627

nipype/pipeline/plugins/multiproc.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,15 @@ def run_node(node, updatehash, plugin_args=None):
2121
run_memory = False
2222
if run_memory:
2323
import memory_profiler
24+
import datetime
2425
proc = (node.run, (), {'updatehash' : updatehash})
26+
start = datetime.datetime.now()
2527
mem_mb, retval = memory_profiler.memory_usage(proc=proc, retval=True, include_children=True, max_usage=True)
28+
runtime = (datetime.datetime.now() - start).total_seconds()
2629
result['result'] = retval
2730
result['real_memory'] = mem_mb[0]/1024.0
2831
result['real_memory2'] = retval.runtime.get('real_memory2')
32+
result['run_seconds'] = runtime
2933
else:
3034
try:
3135
result['result'] = node.run(updatehash=updatehash)

0 commit comments

Comments
 (0)