timer.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import sys
  2. import random
  3. schedulers = ["sim.setSchedulerActivityHeap()", "sim.setSchedulerCustom('schedulerH', 'SchedulerH')"]
  4. scheds = {0: "activityHeap", 1: "heap"}
  5. actives = range(0, 1000, 10)
  6. sys.setrecursionlimit(10000)
  7. sys.path.append("../../src/")
  8. from simulator import Simulator
  9. import time
  10. iters = max(int(sys.argv[1]), 20)
  11. def runFunc(param):
  12. schedulername, scheduler = param
  13. f = open("seq_activity_synthetic/" + str(scheds[schedulername]), 'w')
  14. for active in actives:
  15. from model import StaticModel
  16. total = 0.0
  17. for _ in range(iters):
  18. random.seed(1)
  19. model = StaticModel(1000, active)
  20. sim = Simulator(model)
  21. sim.setMessageCopy('none')
  22. exec(scheduler)
  23. sim.setTerminationTime(100)
  24. start = time.time()
  25. sim.simulate()
  26. del sim
  27. total += (time.time() - start)
  28. f.write("%s %s\n" % (active, total/iters))
  29. print("%s %s" % (active, total/iters))
  30. f.close()
  31. map(runFunc, enumerate(schedulers))
  32. """
  33. from multiprocessing import Pool
  34. p = Pool(3)
  35. p.map(runFunc, enumerate(schedulers))
  36. """