def taskFinished(self, tid, tried, result, update): i = self.tidToIndex[tid] self.finished[i] = True self.tasksFinished += 1 task = self.tasks[i] task.used += time.time() - task.start self.total_used += task.used if sys.stderr.isatty(): title = "Job %d: task %s finished in %.1fs (%d/%d) " % (self.id, tid, task.used, self.tasksFinished, self.numTasks) logger.info("Task %s finished in %.1fs (%d/%d) \x1b]2;%s\x07\x1b[1A", tid, task.used, self.tasksFinished, self.numTasks, title) from dpark.schedule import Success self.sched.taskEnded(task, Success(), result, update) for t in range(task.tried): if t + 1 != tried: self.sched.killTask(self.id, task.id, t + 1) if self.tasksFinished == self.numTasks: ts = [t.used for t in self.tasks] tried = [t.tried for t in self.tasks] logger.info("Job %d finished in %.1fs: min=%.1fs, avg=%.1fs, max=%.1fs, maxtry=%d", self.id, time.time()-self.start, min(ts), sum(ts)/len(ts), max(ts), max(tried)) from dpark.accumulator import LocalReadBytes, RemoteReadBytes lb, rb = LocalReadBytes.reset(), RemoteReadBytes.reset() if rb > 0: logger.info("read %s (%d%% localized)", readable(lb+rb), lb*100/(rb+lb)) self.sched.jobFinished(self)
def taskFinished(self, tid, tried, result, update): i = self.tidToIndex[tid] self.finished[i] = True self.tasksFinished += 1 task = self.tasks[i] task.used += time.time() - task.start self.total_used += task.used if getattr(sys.stderr, 'isatty', lambda: False)(): title = 'Job %d: task %s finished in %.1fs (%d/%d) ' % ( self.id, tid, task.used, self.tasksFinished, self.numTasks) logger.info( 'Task %s finished in %.1fs (%d/%d)' ' \x1b]2;%s\x07\x1b[1A', tid, task.used, self.tasksFinished, self.numTasks, title) from dpark.schedule import Success self.sched.taskEnded(task, Success(), result, update) for t in range(task.tried): if t + 1 != tried: self.sched.killTask(self.id, task.id, t + 1) if self.tasksFinished == self.numTasks: ts = [t.used for t in self.tasks] tried = [t.tried for t in self.tasks] logger.info( 'Job %d finished in %.1fs: min=%.1fs, ' 'avg=%.1fs, max=%.1fs, maxtry=%d', self.id, time.time() - self.start, min(ts), sum(ts) / len(ts), max(ts), max(tried)) from dpark.accumulator import LocalReadBytes, RemoteReadBytes lb, rb = LocalReadBytes.reset(), RemoteReadBytes.reset() if rb > 0: logger.info('read %s (%d%% localized)', readable(lb + rb), lb * 100 / (rb + lb)) self.sched.jobFinished(self)