@@ -71,6 +71,12 @@ def nr_free_nodes(self):
71
71
def running_jobs (self ):
72
72
return self ._running
73
73
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
+
74
80
def qstat (self ):
75
81
for job in self ._queue :
76
82
print (job , 'Q' )
@@ -133,16 +139,21 @@ def cycle(self, delta):
133
139
with open (f'{ options .file } _jobs.csv' , 'w' , newline = '' ) as csv_jobs_file :
134
140
csv_jobs_writer = csv .writer (csv_jobs_file )
135
141
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 )
138
144
print (f'---- { time } ----' )
145
+ time_str = datetime .strftime (time , '%Y-%m-%d %H:%M:%S' )
139
146
resource_manager .qstat ()
140
147
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 ])
144
155
resource_manager .cycle (delta )
145
156
for job in resource_manager .running_jobs :
146
157
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 ])
148
159
time += delta
0 commit comments