def test_assign_resources_mld_job_split_slots_2(): v = [(0, 59, [(17, 21)]), (60, 100, [(1, 32)])] res = [(1, 32)] ss = SlotSet(Slot(1, 0, 0, res, 0, 100)) hy = {"node": [[(1, 8)], [(9, 16)], [(17, 24)], [(25, 32)]], "switch": [[(1, 16)], [(17, 21)]], "gpu": [[(22, 32)]]} j1 = JobPseudo(id=1, key_cache={}, mld_res_rqts=[(1, 60, [([("node", 2)], res), ([("gpu", 1)], res)])]) assign_resources_mld_job_split_slots(ss, j1, hy, -1) ss.show_slots() assert compare_slots_val_ref(ss.slots, v)
def test_assign_resources_mld_job_split_slots_1(): v = [(0, 59, [(17, 32)]), (60, 100, [(1, 32)])] res = [(1, 32)] ss = SlotSet(Slot(1, 0, 0, res, 0, 100)) hy = {"node": [[(1, 8)], [(9, 16)], [(17, 24)], [(25, 32)]]} # j1 = JobPseudo(id=1, start_time=0, walltime=0, types={}, # key_cache="", j1 = JobPseudo( id=1, types={}, deps=[], key_cache={}, mld_res_rqts=[(1, 60, [([("node", 2)], res)])], ts=False, ph=0 ) assign_resources_mld_job_split_slots(ss, j1, hy, -1) assert compare_slots_val_ref(ss.slots, v) is True
def assign_resources(self, slots_set, job, hy, min_start_time): '''Assign resources to a job and update by splitting the concerned slots''' job.mld_res_rqts = self.get_moldable_resources_requests(job) from oar.kao.scheduling import assign_resources_mld_job_split_slots ret = None while ret is None: ret = assign_resources_mld_job_split_slots(slots_set, job, hy, min_start_time) return ret
def assign_resources(self, slots_set, job, hy, min_start_time): '''Assign resources to a job and update by spliting the concerned slots''' from oar.kao.scheduling import assign_resources_mld_job_split_slots return assign_resources_mld_job_split_slots(slots_set, job, hy, min_start_time)