Browse Source

Added script to run simulations in parallel

Yentl Van Tendeloo 7 years ago
parent
commit
9442e32c77
1 changed files with 32 additions and 0 deletions
  1. 32 0
      scripts/sim_loop.py

+ 32 - 0
scripts/sim_loop.py

@@ -0,0 +1,32 @@
+# Run some experiments and store all values
+to_run = []
+for latency in [0 + i * 0.001 for i in range(0, 50)]:
+    to_run.append((latency, 0.0))
+for latency in [0 + i * 0.001 for i in range(50, 600, 50)]:
+    to_run.append((latency, 0.0))
+for latency in [0 + i * 0.001 for i in range(0, 50)]:
+    to_run.append((0.0, latency))
+for latency in [0 + i * 0.001 for i in range(50, 600, 50)]:
+    to_run.append((latency, 0.0))
+
+to_run = [(0.0, 0.0), (0.2, 0.2), (0.1, 0.1), (0.0, 0.2)]
+print(to_run)
+print("NR simulations: " + str(len(to_run)))
+
+def run_simulation(latency):
+    import sys
+    sys.path.append("model")
+    from model import simulate
+    latency_mvi, latency_mvs = latency
+    print("SIMULATE for " + str(latency))
+    results[(latency_mvi, latency_mvs)] = result = simulate({"mvi2mvk_latency": 0.0, "mvk2mvs_latency": 0.0})
+    print("(%s, %s) --> %s" % (latency_mvi, latency_mvs, result))
+    return result
+
+from multiprocessing import Pool
+pool = Pool(processors=4)
+results = pool.map(run_simulation, to_run)
+
+print(dict(to_run, results))
+with open("simloop_results", 'w') as f:
+    json.dump(f, results)