def generate_taskset(num_cpus=4, util_per_cpu=0.5, tasks_per_cpu=3, req_prob=0.5, min_req_len=50, max_req_len=250): ts = emstada.gen_taskset('uni-broad', 'logunif', num_cpus * tasks_per_cpu, num_cpus * util_per_cpu) ts.sort_by_period() ts.assign_ids() r.initialize_resource_model(ts) lb.assign_fp_preemption_levels(ts) for t in ts: # randomly partition # t.partition = random.randint(0, num_cpus - 1) # randomly assign requests if random.random() < req_prob: t.resmodel[0].add_write_request(random.randint(min_req_len, max_req_len)) bins = worst_fit_decreasing(ts, num_cpus, weight=lambda t: t.utilization()) for cpu, tasks in enumerate(bins): for t in tasks: t.partition = cpu return ts
def test_worst_fit_decreasing(self): sets = bp.worst_fit_decreasing(self.items, self.bins, self.cap) sets[0].sort() self.assertEqual(sets, self.expected)
def test_worst_fit_decreasing(self): sets = bp.worst_fit_decreasing(self.items, self.bins, self.cap) self.assertEqual(sets, self.empty)