Exemplo n.º 1
0
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
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 def test_worst_fit_decreasing(self):
     sets = bp.worst_fit_decreasing(self.items, self.bins, self.cap)
     self.assertEqual(sets, self.empty)