Skip to content

Commit 2e5f5fc

Browse files
authored
Merge pull request #2208 from effigies/quiet_multiproc
ENH: Reduce verbosity of distributed plugin
2 parents f3bb9e8 + 8fce0af commit 2e5f5fc

File tree

1 file changed

+24
-13
lines changed

1 file changed

+24
-13
lines changed

nipype/pipeline/plugins/base.py

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -125,19 +125,25 @@ def run(self, graph, config, updatehash=False):
125125
# setup polling - TODO: change to threaded model
126126
notrun = []
127127

128+
old_progress_stats = None
129+
old_presub_stats = None
128130
while not np.all(self.proc_done) or np.any(self.proc_pending):
129131
# Check to see if a job is available (jobs without dependencies not run)
130132
# See https://github.com/nipy/nipype/pull/2200#discussion_r141605722
131133
jobs_ready = np.nonzero(~self.proc_done & (self.depidx.sum(0) == 0))[1]
132134

133-
logger.info('Progress: %d jobs, %d/%d/%d (done/running/ready),'
134-
' %d/%d (pending_tasks/waiting).',
135-
len(self.proc_done),
136-
np.sum(self.proc_done ^ self.proc_pending),
137-
np.sum(self.proc_done & self.proc_pending),
138-
len(jobs_ready),
139-
len(self.pending_tasks),
140-
np.sum(~self.proc_done & ~self.proc_pending))
135+
progress_stats = (len(self.proc_done),
136+
np.sum(self.proc_done ^ self.proc_pending),
137+
np.sum(self.proc_done & self.proc_pending),
138+
len(jobs_ready),
139+
len(self.pending_tasks),
140+
np.sum(~self.proc_done & ~self.proc_pending))
141+
display_stats = progress_stats != old_progress_stats
142+
if display_stats:
143+
logger.debug('Progress: %d jobs, %d/%d/%d '
144+
'(done/running/ready), %d/%d '
145+
'(pending_tasks/waiting).', *progress_stats)
146+
old_progress_stats = progress_stats
141147
toappend = []
142148
# trigger callbacks for any pending results
143149
while self.pending_tasks:
@@ -163,13 +169,18 @@ def run(self, graph, config, updatehash=False):
163169

164170
if toappend:
165171
self.pending_tasks.extend(toappend)
172+
166173
num_jobs = len(self.pending_tasks)
167-
logger.debug('Tasks currently running: %d. Pending: %d.', num_jobs,
168-
np.sum(self.proc_done & self.proc_pending))
174+
presub_stats = (num_jobs,
175+
np.sum(self.proc_done & self.proc_pending))
176+
display_stats = display_stats or presub_stats != old_presub_stats
177+
if display_stats:
178+
logger.debug('Tasks currently running: %d. Pending: %d.',
179+
*presub_stats)
180+
old_presub_stats = presub_stats
169181
if num_jobs < self.max_jobs:
170-
self._send_procs_to_workers(updatehash=updatehash,
171-
graph=graph)
172-
else:
182+
self._send_procs_to_workers(updatehash=updatehash, graph=graph)
183+
elif display_stats:
173184
logger.debug('Not submitting (max jobs reached)')
174185

175186
sleep(poll_sleep_secs)

0 commit comments

Comments
 (0)