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

34 lines
1.1 KiB
Python

import sys
import random
schedulers = ["setSchedulerSortedList", "setSchedulerActivityHeap", "setSchedulerMinimalList", "setSchedulerHeapSet"]
sys.path.append("../../src/")
sizes = range(10, 71, 1)
from simulator import Simulator
iters = max(int(sys.argv[1]), 20)
import time
def runFunc(scheduler):
f = open("seq_activity_firespread/" + str(scheduler), 'w')
for size in sizes:
from model import FireSpread
total = 0.0
for _ in range(iters):
model = FireSpread(size, size)
sim = Simulator(model)
sim.setMessageCopy('none')
getattr(sim, scheduler)()
sim.setTerminationTime(150)
start = time.time()
sim.simulate()
total += (time.time() - start)
# Take the square of size, as we have this many cells instead of only 'size' cells
f.write("%s %s\n" % (size*size, total/iters))
print("%s -- %s %s" % (scheduler, size*size, total/iters))
f.close()
map(runFunc, schedulers)
"""
from multiprocessing import Pool
p = Pool(4)
p.map(runFunc, schedulers)
"""