@@ -125,19 +125,25 @@ def run(self, graph, config, updatehash=False):
125
125
# setup polling - TODO: change to threaded model
126
126
notrun = []
127
127
128
+ old_progress_stats = None
129
+ old_presub_stats = None
128
130
while not np .all (self .proc_done ) or np .any (self .proc_pending ):
129
131
# Check to see if a job is available (jobs without dependencies not run)
130
132
# See https://github.com/nipy/nipype/pull/2200#discussion_r141605722
131
133
jobs_ready = np .nonzero (~ self .proc_done & (self .depidx .sum (0 ) == 0 ))[1 ]
132
134
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
141
147
toappend = []
142
148
# trigger callbacks for any pending results
143
149
while self .pending_tasks :
@@ -163,13 +169,18 @@ def run(self, graph, config, updatehash=False):
163
169
164
170
if toappend :
165
171
self .pending_tasks .extend (toappend )
172
+
166
173
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
169
181
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 :
173
184
logger .debug ('Not submitting (max jobs reached)' )
174
185
175
186
sleep (poll_sleep_secs )
0 commit comments