def alloc_job_sort()

in cluster-trace-gpu-v2020/simulator/scheduler.py [0:0]


    def alloc_job_sort(self, job_list, job_runn_list=None):
        if self.alloc_policy == 0:  # short_duration_first
            job_list.sort(key=lambda e: (e['duration'], e['job_id']))
        elif self.alloc_policy == 8:  # FIFO, remains the original order
            job_list.sort(key=lambda e: (e['submit_time'], e['job_id']))
        elif self.alloc_policy in [1, 2, 4]:  # SJF with duration estimation
            est_feature = {1: 'user_dur', 2: 'group_dur', 4: 'group_gpu_dur'}[self.alloc_policy]
            job_list.sort(key=lambda e: (e[est_feature], e['job_id']))
        else:
            raise Exception("Unexpected alloc policy: %d" % self.alloc_policy)

        if self.verbose:
            for i, j in enumerate(job_list):
                print_fn("%2d %s" % (i, j))
                if i > 20:
                    break