Skip to content

Commit b6d3ff0

Browse files
committed
ENH: Reduce noise level of MultiProc plugin
1 parent 9ba3581 commit b6d3ff0

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

nipype/pipeline/plugins/multiproc.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ def __init__(self, plugin_args=None):
125125
logger.debug('MultiProcPlugin starting in "%sdaemon" mode (n_procs=%d, mem_gb=%0.2f)',
126126
'non' if non_daemon else '', self.processors, self.memory_gb)
127127
self.pool = (NonDaemonPool if non_daemon else Pool)(processes=self.processors)
128+
self._stats = None
128129

129130
def _async_callback(self, args):
130131
self._taskresult[args['taskid']] = args
@@ -197,10 +198,13 @@ def _send_procs_to_workers(self, updatehash=False, graph=None):
197198
# Check available system resources by summing all threads and memory used
198199
free_memory_gb, free_processors = self._check_resources(self.pending_tasks)
199200

200-
logger.info('Currently running %d tasks, and %d jobs ready. '
201-
'Free memory (GB): %0.2f/%0.2f, Free processors: %d/%d',
202-
len(self.pending_tasks), len(jobids),
203-
free_memory_gb, self.memory_gb, free_processors, self.processors)
201+
stats = (len(self.pending_tasks), len(jobids), free_memory_gb,
202+
self.memory_gb, free_processors, self.processors)
203+
if self._stats != stats:
204+
logger.info('Currently running %d tasks, and %d jobs ready. Free '
205+
'memory (GB): %0.2f/%0.2f, Free processors: %d/%d',
206+
*stats)
207+
self._stats = stats
204208

205209
if free_memory_gb < 0.01 or free_processors == 0:
206210
logger.debug('No resources available')
@@ -268,6 +272,8 @@ def _send_procs_to_workers(self, updatehash=False, graph=None):
268272
self._remove_node_dirs()
269273
free_memory_gb += next_job_gb
270274
free_processors += next_job_th
275+
# Display stats next loop
276+
self._stats = None
271277
continue
272278

273279
# Task should be submitted to workers
@@ -281,6 +287,8 @@ def _send_procs_to_workers(self, updatehash=False, graph=None):
281287
self.proc_pending[jobid] = False
282288
else:
283289
self.pending_tasks.insert(0, (tid, jobid))
290+
# Display stats next loop
291+
self._stats = None
284292

285293
def _sort_jobs(self, jobids, scheduler='tsort'):
286294
if scheduler == 'mem_thread':

0 commit comments

Comments
 (0)