Skip to content
Snippets Groups Projects
Commit 5596bdbb authored by Nordine Feddal's avatar Nordine Feddal
Browse files

added the minimal time at which a step can start its execution

parent 4a4eb2e7
Branches
No related tags found
No related merge requests found
class GPUSchedStepParams:
# Global Struct params
ARRAY ="\tconst int * jobs_array;\n"
STEP_NO ="\tint step_no;\n"
TIME ="\tint time;\n"
NUMBER_KERNELS ="\tint number_kernel;\n"
MINIMAL_START_TIME ="\tint minimal_start;\n"
# Impl struct params
ARRAY_IMPL ="\t.jobs_array = ((const int[{SIZE}]){{{list_jobs}}}),\n"
STEP_NO_IMPL ="\t.step_no = {step_no},\n"
TIME_IMPL ="\t.time = 0,\n"
NUMBER_KERNELS_IMPL ="\t.number_kernel = {number_kernel}\n"
MINIMAL_START_TIME_IMPL ="\t.minimal_time_start = {minimal_start}\n"
# Struct name
STRUCT_NAME = "gpusched_step_t"
LIST_JOBS_OBJECT = []
def dump_struct():
dump = "struct gpusched_step_t {\n"
......@@ -22,6 +25,7 @@ class GPUSchedStepParams:
dump += GPUSchedStepParams.STEP_NO
dump += GPUSchedStepParams.TIME
dump += GPUSchedStepParams.NUMBER_KERNELS
dump += GPUSchedStepParams.MINIMAL_START_TIME
dump += "};\n\n"
return dump
......@@ -56,7 +60,7 @@ class GPUSchedResultStep:
if number_kernels != 1:
self.str_list_jobs = ','.join(self.list_jobs)
else:
self.str_list_jobs = list_jobs
self.str_list_jobs = str(list_jobs)
self.dump_str()
def dump_str(self):
......@@ -66,6 +70,23 @@ class GPUSchedResultStep:
dump += GPUSchedStepParams.STEP_NO_IMPL.format(step_no=self.step_no)
dump += GPUSchedStepParams.TIME_IMPL
dump += GPUSchedStepParams.NUMBER_KERNELS_IMPL.format(number_kernel=self.number_kernels)
dump += GPUSchedStepParams.MINIMAL_START_TIME_IMPL.format(minimal_start=get_max_job_arrival_time(self.list_jobs))
dump += "};\n\n";
return dump;
"""
Retrieve the job within a list of jobs with the maximal arrival time
@param:
jobs list of jobs
"""
def get_max_job_arrival_time(jobs):
max_time = -1
if type(jobs) == str:
max_time = int(GPUSchedStepParams.LIST_JOBS_OBJECT[int(jobs, 10)].arrival_time, 10)
else:
for job_id in jobs:
curr_arrival_time = int(GPUSchedStepParams.LIST_JOBS_OBJECT[int(job_id,10)].arrival_time,10)
if max_time < curr_arrival_time:
max_time = curr_arrival_time
return max_time
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment