Initial commit
This commit is contained in:
commit
66a6860316
407 changed files with 1254365 additions and 0 deletions
76
models/dist_memo/model.py
Normal file
76
models/dist_memo/model.py
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
import random
|
||||
import sys
|
||||
sys.path.append("../../../src/")
|
||||
sys.path.append("../../src/")
|
||||
|
||||
from DEVS import AtomicDEVS, CoupledDEVS
|
||||
|
||||
class Node(AtomicDEVS):
|
||||
def __init__(self, nr, load):
|
||||
AtomicDEVS.__init__(self, "Node" + str(nr))
|
||||
self.state = None
|
||||
self.load = load
|
||||
|
||||
def intTransition(self):
|
||||
for _ in xrange(self.load):
|
||||
pass
|
||||
return self.state
|
||||
|
||||
def extTransition(self, inputs):
|
||||
return self.state
|
||||
|
||||
def timeAdvance(self):
|
||||
return 1.0
|
||||
|
||||
def outputFnc(self):
|
||||
return {}
|
||||
|
||||
class ExchangeModel(AtomicDEVS):
|
||||
def __init__(self):
|
||||
AtomicDEVS.__init__(self, "Exchange")
|
||||
self.state = None
|
||||
self.inport = self.addInPort("in")
|
||||
self.outport = self.addOutPort("out")
|
||||
|
||||
def intTransition(self):
|
||||
return self.state
|
||||
|
||||
def extTransition(self, inputs):
|
||||
return self.state
|
||||
|
||||
def timeAdvance(self):
|
||||
return 1.0
|
||||
|
||||
def outputFnc(self):
|
||||
return {self.outport: [None]}
|
||||
|
||||
class NodeGrid(CoupledDEVS):
|
||||
def __init__(self, load):
|
||||
CoupledDEVS.__init__(self, "Grid")
|
||||
for i in range(800):
|
||||
self.addSubModel(Node(i, load))
|
||||
|
||||
class DualGrid(CoupledDEVS):
|
||||
def __init__(self, load):
|
||||
CoupledDEVS.__init__(self, "Root")
|
||||
grid1 = self.addSubModel(NodeGrid(load), 0)
|
||||
grid2 = self.addSubModel(NodeGrid(load), 1)
|
||||
grid1_node = self.addSubModel(ExchangeModel(), 0)
|
||||
grid2_node = self.addSubModel(ExchangeModel(), 1)
|
||||
self.connectPorts(grid1_node.outport, grid2_node.inport)
|
||||
self.connectPorts(grid2_node.outport, grid1_node.inport)
|
||||
|
||||
if __name__ == "__main__":
|
||||
random.seed(1)
|
||||
from simulator import Simulator
|
||||
model = DualGrid(int(sys.argv[1]))
|
||||
sim = Simulator(model)
|
||||
sim.setTerminationTime(100)
|
||||
#sim.setVerbose(True)
|
||||
sim.setMessageCopy('none')
|
||||
sim.setStateSaving('assign')
|
||||
sim.setGVTInterval(5)
|
||||
memo = True if sys.argv[2] == "True" else False
|
||||
sim.setMemoization(memo)
|
||||
sim.setSchedulerSortedList()
|
||||
sim.simulate()
|
||||
Loading…
Add table
Add a link
Reference in a new issue