timer.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import sys
  2. import random
  3. schedulers = ["setSchedulerHeapSet", "setSchedulerMinimalList", "setSchedulerPolymorphic"]
  4. maxsize = 200
  5. factors = range(1, 50)
  6. sys.path.append("../../src/")
  7. from simulator import Simulator
  8. import time
  9. iters = int(sys.argv[1])
  10. def runFunc(scheduler):
  11. f = open("seq_poly/" + str(scheduler), 'w')
  12. for factor in factors:
  13. from model import StaticModel
  14. total = 0.0
  15. for _ in range(iters):
  16. random.seed(1)
  17. model = StaticModel(maxsize, factor)
  18. sim = Simulator(model)
  19. sim.setMessageCopy('none')
  20. getattr(sim, scheduler)()
  21. sim.setTerminationTime(1000)
  22. start = time.time()
  23. sim.simulate()
  24. del sim
  25. total += (time.time() - start)
  26. f.write("%s %s\n" % (factor, total/iters))
  27. print("%s %s" % (factor, total/iters))
  28. f.close()
  29. def runFunc_DYN(scheduler):
  30. iters = 1
  31. f = open("seq_poly/%s_dynamic" % scheduler, 'w')
  32. from model import DynamicModel
  33. random.seed(1)
  34. model = DynamicModel(maxsize)
  35. sim = Simulator(model)
  36. sim.setMessageCopy('none')
  37. getattr(sim, scheduler)()
  38. termtime = 0
  39. while termtime < 10000:
  40. termtime += 1000
  41. sim.setTerminationTime(termtime)
  42. start = time.time()
  43. sim.simulate()
  44. f.write("%s %s\n" % (termtime - 1000, time.time() - start))
  45. print("%s %s" % (termtime - 1000, time.time() - start))
  46. del sim
  47. f.close()
  48. map(runFunc, schedulers)
  49. #map(runFunc_DYN, schedulers)
  50. """
  51. from multiprocessing import Pool
  52. p = Pool(3)
  53. p.map(runFunc, schedulers)
  54. p = Pool(3)
  55. p.map(runFunc_DYN, schedulers)
  56. """