1111timesteps_per_job = [1000 , 2000 , 500 ]
1212job_prefixes = ["small" , "medium" , "large" ]
1313
14- njobs = 20
14+ njobs = 16
1515
1616
1717def create_job (prefix , job_index , priority , problem_size , min_replicas , max_replicas , timesteps ):
@@ -30,40 +30,45 @@ def create_job(prefix, job_index, priority, problem_size, min_replicas, max_repl
3030 problem_size = problem_size ,
3131 chare_size = chare_size ,
3232 timesteps = timesteps ,
33- min_replicas = min_replicas ,
34- max_replicas = max_replicas ,
33+ min_replicas = min ( max_replicas - 1 , 59 ) ,
34+ max_replicas = min ( max_replicas - 1 , 59 ) ,
3535 )
3636
37- with open (f"jobs /charm-job-{ job_index } .yaml" , "w" ) as file :
37+ with open (f"jobs_elastic /charm-job-{ job_index } .yaml" , "w" ) as file :
3838 file .write (job_yaml )
3939
4040
4141def generate_jobs ():
42- jobs = [0 ] * int (njobs * 0.25 )
43- jobs += [1 ] * int (njobs * 0.5 )
44- jobs += [2 ] * int (njobs * 0.25 )
45- shuffle (jobs )
46- print (jobs )
42+ sizes_per_pe = [256 , 512 , 1024 , 1024 ]
43+ min_pes = [2 , 4 , 8 , 16 ]
44+ timesteps_per_job = [40000 , 40000 , 40000 , 10000 ]
45+ job_prefixes = ["small" , "medium" , "large" , "xlarge" ]
46+ counts = [0 , 0 , 0 , 0 ]
47+ njobs = 16
48+
49+ jobs = [2 , 1 , 1 , 0 , 3 , 3 , 0 , 3 , 1 , 1 , 0 , 3 , 0 , 1 , 1 , 1 ]
50+ priorities = [2 , 3 , 4 , 4 , 2 , 1 , 4 , 1 , 4 , 3 , 4 , 1 , 5 , 3 , 3 , 3 ]
51+
4752 for i , job_index in enumerate (jobs ):
4853 idx = job_index
49- priority = 3 - idx + randint ( 0 , 3 )
54+ priority = priorities [ i ]
5055 min_replicas = min_pes [idx ]
5156 max_replicas = 4 * min_replicas
5257 problem_size = min_replicas * sizes_per_pe [idx ]
53- timesteps = timesteps_per_job [idx ] + 100 * randint ( 0 , 10 )
58+ timesteps = timesteps_per_job [idx ]
5459 prefix = job_prefixes [idx ]
5560 create_job (prefix , i , priority , problem_size , min_replicas , max_replicas , timesteps )
5661
5762
5863def submit_jobs ():
5964 for job_index in range (njobs ):
60- job_file = f"jobs /charm-job-{ job_index } .yaml"
65+ job_file = f"jobs_elastic /charm-job-{ job_index } .yaml"
6166 print (f"Submitting { job_file } " )
6267 # Here you would submit the job using your cluster's job submission command
6368 os .system (f"kubectl apply -f { job_file } " )
6469 # For this example, we'll just print the command
6570 #print(f"kubectl apply -f {job_file}")
66- time .sleep (10 )
71+ time .sleep (90 )
6772
6873
6974if __name__ == "__main__" :
0 commit comments