def static_schedule(self): workers = self.simulator.workers tasks = self.simulator.task_graph.tasks return [ TaskAssignment(workers[0], tasks[0]), TaskAssignment(workers[1], tasks[1]), TaskAssignment(workers[2], tasks[3]), TaskAssignment(workers[0], tasks[4]), TaskAssignment(workers[2], tasks[2]) ]
def test_worker_estimate_earliest_time_offset_now(): tg = TaskGraph() t0 = tg.new_task(expected_duration=3, cpus=1) t1 = tg.new_task(expected_duration=5, cpus=1) t2 = tg.new_task(expected_duration=3, cpus=2) worker = Worker(cpus=2) worker.assignments = [ TaskAssignment(worker, t0), TaskAssignment(worker, t1) ] worker.running_tasks[t0] = RunningTask(t0, 0) worker.running_tasks[t1] = RunningTask(t1, 0) assert worker_estimate_earliest_time(worker, t2, 2) == 3
def test_estimate_schedule(plan1): netmodel = SimpleNetModel(1) workers = [Worker(cpus=4) for _ in range(4)] schedule = [TaskAssignment(w, t) for (w, t) in zip(itertools.cycle(workers), plan1.tasks)] assert estimate_schedule(schedule, plan1, netmodel) == 16
def schedule(self, new_ready, new_finished): times.append(self.simulator.env.now) workers = self.simulator.workers return [ TaskAssignment(workers[0], t) for t in new_ready ]
def schedule(self, new_ready, new_finished): workers = self.simulator.workers remaining_times.append([[ t.remaining_time(self.simulator.env.now) for t in w.running_tasks.values() ] for w in workers]) if not self.scheduled: tasks = self.simulator.task_graph.tasks self.scheduled = True return [ TaskAssignment(workers[0], tasks[0]), TaskAssignment(workers[1], tasks[1]), TaskAssignment(workers[1], tasks[2]) ] else: return ()
def test_estimate_schedule_zero_expected_time(plan1): netmodel = SimpleNetModel(1) workers = [Worker(cpus=4) for _ in range(4)] plan1.tasks[1].expected_duration = 0 plan1.tasks[5].expected_duration = 0 schedule = [TaskAssignment(w, t) for (w, t) in zip(itertools.cycle(workers), plan1.tasks)] assert estimate_schedule(schedule, plan1, netmodel) == 15
def test_worker_estimate_earliest_time(): tg = TaskGraph() t0 = tg.new_task(expected_duration=3, cpus=2) t1 = tg.new_task(expected_duration=5, cpus=1) t2 = tg.new_task(expected_duration=4, cpus=3) t4 = tg.new_task(expected_duration=4, cpus=2) t5 = tg.new_task(expected_duration=4, cpus=2) worker = Worker(cpus=4) worker.assignments = [ TaskAssignment(worker, t0), TaskAssignment(worker, t1), TaskAssignment(worker, t2), TaskAssignment(worker, t4) ] worker.running_tasks[t0] = RunningTask(t0, 0) worker.running_tasks[t1] = RunningTask(t1, 0) assert worker_estimate_earliest_time(worker, t5, 0) == 7
def static_schedule(self): workers = self.simulator.workers return [ TaskAssignment(workers[definition[0]], *definition[1:]) for definition in assignments ]
def schedule(self, new_ready, new_finished): worker = self.simulator.workers[0] free_cpus.append(worker.free_cpus) return [TaskAssignment(worker, t) for t in new_ready]