timer.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import sys
  2. import random
  3. schedulers = ["setSchedulerSortedList", "setSchedulerActivityHeap", "setSchedulerMinimalList", "setSchedulerHeapSet", "setSchedulerPolymorphic"]
  4. sys.path.append("../../src/")
  5. sizes = range(10, 200, 10)
  6. from simulator import Simulator
  7. import time
  8. iters = int(sys.argv[1])
  9. def runFunc(param):
  10. scheduler, randomta = param
  11. f = open("seq_devstone/%s_%s" % (scheduler, randomta), 'w')
  12. for size in sizes:
  13. from model import DEVStone
  14. total = 0.0
  15. for _ in range(iters):
  16. random.seed(1)
  17. model = DEVStone(3, size, randomta)
  18. sim = Simulator(model)
  19. sim.setMessageCopy('none')
  20. getattr(sim, scheduler)()
  21. sim.setTerminationTime(1000)
  22. start = time.time()
  23. sim.simulate()
  24. total += (time.time() - start)
  25. f.write("%s %s\n" % (size, total/iters))
  26. print("%s %s" % (size, total/iters))
  27. f.close()
  28. allprocs = []
  29. for scheduler in schedulers:
  30. for randomta in [True, False]:
  31. allprocs.append([scheduler, randomta])
  32. map(runFunc, allprocs)
  33. """
  34. from multiprocessing import Pool
  35. p = Pool(3)
  36. p.map(runFunc, allprocs)
  37. """