Procházet zdrojové kódy

Use minimal PDEVS simulation kernel for decent performance

Yentl Van Tendeloo před 7 roky
rodič
revize
90aed1ad57
2 změnil soubory, kde provedl 8 přidání a 5 odebrání
  1. 0 2
      kernel/modelverse_kernel/main.py
  2. 8 3
      model/model.py

+ 0 - 2
kernel/modelverse_kernel/main.py

@@ -133,12 +133,10 @@ class ModelverseKernel(object):
                 elif inst_v is None:
                     raise Exception("%s: error understanding command (%s, %s)" % (self.debug_info[taskname], inst_v, self.phase_v))
                 else:
-                    #print("%-30s(%s) -- %s" % (inst_v["value"], self.phase_v, taskname))
                     gen = self.get_inst_phase_generator(inst_v, self.phase_v, task_root)
             elif inst_v is None:
                 raise Exception("%s: error understanding command (%s, %s)" % (self.debug_info[taskname], inst_v, self.phase_v))
             elif inst_v["value"] == "call":
-                #print("%-30s(%s)" % ("call", "param"))
                 gen = self.call_param(task_root)
             else:
                 raise Exception("%s: error understanding command (%s, %s)" % (self.debug_info[taskname], inst_v, self.phase_v))

+ 8 - 3
model/model.py

@@ -6,8 +6,9 @@ from modelverse_state.main import ModelverseState as MvS
 from modelverse_kernel.main import ModelverseKernel as MvK
 from hutn_compiler.compiler import main as do_compile
 
-from pypdevs.DEVS import AtomicDEVS, CoupledDEVS
-from pypdevs.simulator import Simulator
+#from pypdevs.DEVS import AtomicDEVS, CoupledDEVS
+#from pypdevs.simulator import Simulator
+from pypdevs.minimal import AtomicDEVS, CoupledDEVS, Simulator
 
 import json
 import random
@@ -181,11 +182,13 @@ class ModelverseKernel(AtomicDEVS):
 
         if self.from_mvs in inputs:
             # Got input from MvS, so we can continue processing
+            #print(" --> " + str(inputs[self.from_mvs]))
             for mvs_input in inputs[self.from_mvs]:
                 if self.state.mvk is None:
                     # No MvK, so set it with the root we have just received (or should have received)
                     self.state.root = mvs_input[0]
                     self.state.mvk = MvK(self.state.root)
+                    #self.state.mvk.jit.set_jit_enabled(False)
                 else:
                     self.state.reply = mvs_input
             self.state.waiting = False
@@ -268,6 +271,7 @@ class ModelverseKernel(AtomicDEVS):
 
             # Send the commands to the MvS
             self.state.commands = commands
+            #print(" <-- " + str(commands))
         return self.state
 
     def outputFnc(self):
@@ -317,6 +321,7 @@ class ModelverseInterface(AtomicDEVS):
     def extTransition(self, inputs):
         for inp in inputs[self.from_mvk]:
             self.state.output.append(inp)
+        print("Got event at MvI: " + str(inputs))
         return self.state
 
     def outputFnc(self):
@@ -503,6 +508,6 @@ args = {
 
 model = System(**args)
 sim = Simulator(model)
-sim.setTerminationTime(900000)
+#sim.setTerminationTime(900000)
 #sim.setVerbose()
 sim.simulate()