show speed summary after benchmarking
parent
e61af7ec3a
commit
45daddfc2a
|
|
@ -409,8 +409,6 @@ class Worker:
|
|||
if self.master is True:
|
||||
return -1
|
||||
|
||||
logger.info(f"benchmarking worker '{self.uuid}'")
|
||||
|
||||
def ipm(seconds: float) -> float:
|
||||
"""
|
||||
Determines the rate of images per minute.
|
||||
|
|
@ -446,7 +444,7 @@ class Worker:
|
|||
f"minute\n")
|
||||
results.append(sample_ipm)
|
||||
elif i == warmup_samples - 1:
|
||||
logger.info(f"{self.uuid} finished warming up\n")
|
||||
logger.debug(f"{self.uuid} finished warming up\n")
|
||||
|
||||
# average the sample results for accuracy
|
||||
ipm_sum = 0
|
||||
|
|
@ -454,7 +452,7 @@ class Worker:
|
|||
ipm_sum += ipm
|
||||
avg_ipm = math.floor(ipm_sum / samples)
|
||||
|
||||
logger.info(f"Worker '{self.uuid}' average ipm: {avg_ipm}")
|
||||
logger.debug(f"Worker '{self.uuid}' average ipm: {avg_ipm}")
|
||||
self.avg_ipm = avg_ipm
|
||||
# noinspection PyTypeChecker
|
||||
self.response = None
|
||||
|
|
|
|||
|
|
@ -238,6 +238,7 @@ class World:
|
|||
t = Thread(target=benchmark_wrapped, args=(worker, ), name=f"{worker.uuid}_benchmark")
|
||||
benchmark_threads.append(t)
|
||||
t.start()
|
||||
logger.info(f"benchmarking worker '{worker.uuid}'")
|
||||
|
||||
# wait for all benchmarks to finish and update stats on newly benchmarked workers
|
||||
if len(benchmark_threads) > 0:
|
||||
|
|
@ -253,6 +254,8 @@ class World:
|
|||
# save benchmark results to workers.json
|
||||
json.dump(workers_info, worker_info_file, indent=3)
|
||||
|
||||
logger.info(self.speed_summary())
|
||||
|
||||
|
||||
def get_current_output_size(self) -> int:
|
||||
"""
|
||||
|
|
@ -266,19 +269,25 @@ class World:
|
|||
|
||||
return num_images
|
||||
|
||||
# TODO broken
|
||||
def print_speed_stats(self):
|
||||
def speed_summary(self) -> str:
|
||||
"""
|
||||
Prints workers by their ipm in descending order.
|
||||
Returns string listing workers by their ipm in descending order.
|
||||
"""
|
||||
workers_copy = copy.deepcopy(self.workers)
|
||||
workers_copy.sort(key=lambda w: w.avg_ipm, reverse=True)
|
||||
|
||||
total_ipm = 0
|
||||
for worker in workers_copy:
|
||||
total_ipm += worker.avg_ipm
|
||||
|
||||
i = 1
|
||||
workers_copy.sort(key=lambda w: w.avg_ipm, reverse=True)
|
||||
print("Worker speed hierarchy:")
|
||||
output = "World composition:\n"
|
||||
for worker in workers_copy:
|
||||
print(f"{i}. worker '{worker}' - {worker.avg_ipm} ipm")
|
||||
output += f"{i}. '{worker.uuid}'({worker}) - {worker.avg_ipm:.2f} ipm\n"
|
||||
i += 1
|
||||
output += f"total: ~{total_ipm:.2f} ipm"
|
||||
|
||||
return output
|
||||
|
||||
def __str__(self):
|
||||
# print status of all jobs
|
||||
|
|
|
|||
Loading…
Reference in New Issue