mosis24DEVS/models/seq_poly/timer.py
Yentl Van Tendeloo 66a6860316 Initial commit
2016-08-04 17:38:43 +02:00

59 lines
1.6 KiB
Python

import sys
import random
schedulers = ["setSchedulerHeapSet", "setSchedulerMinimalList", "setSchedulerPolymorphic"]
maxsize = 200
factors = range(1, 50)
sys.path.append("../../src/")
from simulator import Simulator
import time
iters = int(sys.argv[1])
def runFunc(scheduler):
f = open("seq_poly/" + str(scheduler), 'w')
for factor in factors:
from model import StaticModel
total = 0.0
for _ in range(iters):
random.seed(1)
model = StaticModel(maxsize, factor)
sim = Simulator(model)
sim.setMessageCopy('none')
getattr(sim, scheduler)()
sim.setTerminationTime(1000)
start = time.time()
sim.simulate()
del sim
total += (time.time() - start)
f.write("%s %s\n" % (factor, total/iters))
print("%s %s" % (factor, total/iters))
f.close()
def runFunc_DYN(scheduler):
iters = 1
f = open("seq_poly/%s_dynamic" % scheduler, 'w')
from model import DynamicModel
random.seed(1)
model = DynamicModel(maxsize)
sim = Simulator(model)
sim.setMessageCopy('none')
getattr(sim, scheduler)()
termtime = 0
while termtime < 10000:
termtime += 1000
sim.setTerminationTime(termtime)
start = time.time()
sim.simulate()
f.write("%s %s\n" % (termtime - 1000, time.time() - start))
print("%s %s" % (termtime - 1000, time.time() - start))
del sim
f.close()
map(runFunc, schedulers)
#map(runFunc_DYN, schedulers)
"""
from multiprocessing import Pool
p = Pool(3)
p.map(runFunc, schedulers)
p = Pool(3)
p.map(runFunc_DYN, schedulers)
"""