@@ -263,20 +263,14 @@ def schedule(self):
263263 job .reset_params_and_resources ()
264264
265265 logger .debug (f"Resources before job selection: { self .resources } " )
266- logger .debug (
267- f"Ready jobs ({ len (needrun )} )" ,
268- # + "\n\t".join(map(str, needrun))
269- )
266+ logger .debug (f"Ready jobs: { len (needrun )} " )
270267
271268 if not self ._last_job_selection_empty :
272269 logger .info ("Select jobs to execute..." )
273270 run = self .job_selector (needrun )
274271 self ._last_job_selection_empty = not run
275272
276- logger .debug (
277- f"Selected jobs ({ len (run )} )"
278- # + "\n\t".join(map(str, run))
279- )
273+ logger .debug (f"Selected jobs: { len (run )} " )
280274 logger .debug (f"Resources after job selection: { self .resources } " )
281275
282276 # update running jobs
@@ -335,6 +329,9 @@ def _finish_jobs(self):
335329 # clear the global tofinish such that parallel calls do not interfere
336330 async def postprocess ():
337331 for job in self ._tofinish :
332+ # IMPORTANT: inside of this loop, there may be no calls that have
333+ # a complexity of at least the number of jobs.
334+ # Otherwise the function would be quadratic in the number of jobs.
338335 if not self .workflow .dryrun :
339336 try :
340337 if self .workflow .exec_mode == ExecMode .DEFAULT :
@@ -373,9 +370,6 @@ async def postprocess():
373370 if self .update_resources :
374371 # normal jobs have len=1, group jobs have len>1
375372 self .finished_jobs += len (job )
376- logger .debug (
377- f"jobs registered as running before removal { self .running } "
378- )
379373 self .running .remove (job )
380374 self ._free_resources (job )
381375
@@ -429,7 +423,6 @@ def _free_resources(self, job):
429423 def _proceed (self , job ):
430424 """Do stuff after job is finished."""
431425 with self ._lock :
432- logger .debug (f"Completion of job { job .rules } reported to scheduler." )
433426 self ._tofinish .append (job )
434427
435428 if self .dryrun :
@@ -506,12 +499,7 @@ def job_selector_ilp(self, jobs):
506499 import pulp
507500 from pulp import lpSum
508501
509- logger .debug ("Selecting jobs to run using ILP solver." )
510-
511502 if len (jobs ) == 1 :
512- logger .debug (
513- "Switching to greedy selector because only one job has to be scheduled."
514- )
515503 return self .job_selector_greedy (jobs )
516504
517505 with self ._lock :
@@ -626,7 +614,6 @@ async def get_temp_sizes_gb():
626614 )
627615
628616 status = self ._solve_ilp (prob , time_limit = 10 )
629- logger .debug (f"Problem is { pulp .LpStatus [status ]} " )
630617 if pulp .LpStatus [status ] != "Optimal" :
631618 if pulp .LpStatus [status ] == "Not Solved" :
632619 logger .warning (
@@ -635,7 +622,7 @@ async def get_temp_sizes_gb():
635622 elif pulp .LpStatus [status ] == "Infeasible" :
636623 logger .warning ("Failed to solve scheduling problem with ILP solver." )
637624
638- logger .debug ("Falling back to greedy solver." )
625+ logger .warning ("Falling back to greedy solver." )
639626 return self .job_selector_greedy (jobs )
640627
641628 selected_jobs = set (
@@ -841,7 +828,4 @@ def get_free_jobs(self):
841828 for _ in range (index ):
842829 self ._jobs .popleft ()
843830 n_free = max (self ._limit .max_jobs - len (self ._jobs ), 0 )
844- logger .debug (
845- f"Free jobs: { n_free } , jobs in timespan: { len (self ._jobs )} , limit: { self ._limit .max_jobs } , timespan: { self ._limit .timespan } "
846- )
847831 return n_free
0 commit comments