benchmark.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from subprocess import call
  2. import time
  3. def run_real(samples):
  4. with open("model/results_real", 'w') as f:
  5. for _ in range(samples):
  6. start = time.time()
  7. call(["pypy", "-m", "pytest", "integration/test_powerwindow.py", "-k", "fast", "-x"])
  8. print("Time to execute: " + str(time.time() - start))
  9. f.write(str(time.time() - start))
  10. f.write("\n")
  11. f.flush()
  12. def run_simulation(latency):
  13. import sys
  14. sys.path.append("model")
  15. from model import simulate
  16. print("SIMULATE for " + str(latency))
  17. result = simulate(latency)
  18. print(result)
  19. return result
  20. def benchmark(parallel, to_run):
  21. if parallel:
  22. from multiprocessing import Pool
  23. pool = Pool(processes=4)
  24. results = pool.map(run_simulation, to_run)
  25. else:
  26. results = map(run_simulation, to_run)
  27. return results
  28. def benchmark_mvs(parallel, latency_range):
  29. to_run = [{"mvk2mvs_latency": i} for i in latency_range]
  30. results = benchmark(parallel, to_run)
  31. print(results)
  32. with open("model/results_mvs_latency", 'w') as f:
  33. for latency, result in zip(to_run, results):
  34. sim, exe = result
  35. f.write("%s %s %s\n" % (latency, sim, exe))
  36. f.flush()
  37. def benchmark_mvi(parallel, latency_range):
  38. to_run = [{"mvi2mvk_latency": i} for i in latency_range]
  39. results = benchmark(parallel, to_run)
  40. print(results)
  41. with open("model/results_mvi_latency", 'w') as f:
  42. for latency, result in zip(to_run, results):
  43. sim, exe = result
  44. f.write("%s %s %s\n" % (latency, sim, exe))
  45. f.flush()
  46. if __name__ == "__main__":
  47. benchmark_mvs(parallel = False, latency_range=[0.0, 0.5])
  48. benchmark_mvi(parallel = False, latency_range=[0.0, 0.5])
  49. run_real(samples = 2)
  50. #benchmark_mvs(parallel = False, latency_range=[0.0, 0.0017, 0.012, 0.02, 0.1, 0.5])
  51. #benchmark_mvi(parallel = False, latency_range=[0.0, 0.0017, 0.012, 0.02, 0.1, 0.5])
  52. #run_real(samples = 10)