@@ -71,6 +71,12 @@ def nr_free_nodes(self):
7171 def running_jobs (self ):
7272 return self ._running
7373
74+ def is_free (self , node ):
75+ return node in self ._free_nodes
76+
77+ def is_busy (self , node ):
78+ return node in self ._busy_nodes
79+
7480 def qstat (self ):
7581 for job in self ._queue :
7682 print (job , 'Q' )
@@ -133,16 +139,21 @@ def cycle(self, delta):
133139 with open (f'{ options .file } _jobs.csv' , 'w' , newline = '' ) as csv_jobs_file :
134140 csv_jobs_writer = csv .writer (csv_jobs_file )
135141 csv_jobs_writer .writerow (['time' , 'job_id' , 'node' ])
136- for _append in range (options .nr_timesteps ):
137- print ('-' * 20 )
142+ for _ in range (options .nr_timesteps ):
143+ print ('-' * 36 )
138144 print (f'---- { time } ----' )
145+ time_str = datetime .strftime (time , '%Y-%m-%d %H:%M:%S' )
139146 resource_manager .qstat ()
140147 for node in nodes :
141- cpu_load = f'{ 100 * random .random ():.2f} '
142- mem_load = f'{ 100 * random .random ():.2f} '
143- csv_load_writer .writerow ([node , time , cpu_load , mem_load ])
148+ if resource_manager .is_busy (node ):
149+ cpu_load = f'{ 50 + 50 * random .random ():.2f} '
150+ mem_load = f'{ 10 + 90 * random .random ():.2f} '
151+ else :
152+ cpu_load = f'{ 10 * random .random ():.2f} '
153+ mem_load = f'{ 10 * random .random ():.2f} '
154+ csv_load_writer .writerow ([time_str , node , cpu_load , mem_load ])
144155 resource_manager .cycle (delta )
145156 for job in resource_manager .running_jobs :
146157 for node in job .nodes :
147- csv_jobs_writer .writerow ([time , job .job_id , node ])
158+ csv_jobs_writer .writerow ([time_str , job .job_id , node ])
148159 time += delta
0 commit comments