Переглянути джерело

Use make_parallel to skip recompilation of files that are already
present

Yentl Van Tendeloo 8 роки тому
батько
коміт
2bb5da337c
2 змінених файлів з 24 додано та 20 видалено
  1. 8 6
      scripts/execute_model.py
  2. 16 14
      scripts/make_parallel.py

+ 8 - 6
scripts/execute_model.py

@@ -4,6 +4,7 @@ import multiprocessing
 
 from compile import do_compile
 from link_and_load import link_and_load
+from make_parallel import main
 
 models = []
 code = []
@@ -20,9 +21,6 @@ for f in sys.argv[3:]:
         print("Unknown file format for file " + f)
         print("Requires either .mvc or .alc")
 
-def do_compile_wrapper(filename, mode, grammar):
-    do_compile(address, filename, str(random.random()), filename, mode, ["--debug"], grammar=grammar)
-
 def initialize_SCD():
     import urllib2
     import urllib
@@ -42,12 +40,16 @@ def initialize_SCD():
     urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "get_output", "username": username}))).read()
     print("Initialized!")
 
+def do_compile_wrapper(filename, mode, grammar):
+    do_compile(address, filename, str(random.random()), filename, mode, ["--debug"], grammar=grammar)
+
 # Parse all models and upload them
 initialize_SCD()
 
 for m in models:
     do_compile_wrapper(m, "MO", "grammars/modelling.g")
 
-p = multiprocessing.Pool(multiprocessing.cpu_count() * 2)
-p.map(lambda i: do_compile_wrapper(i, "PO", grammar="grammars/actionlanguage.g"), code)
-link_and_load(address, username, code)
+#p = multiprocessing.Pool(multiprocessing.cpu_count() * 2)
+#p.map(lambda i: do_compile_wrapper(i, "PO", grammar="grammars/actionlanguage.g"), code)
+#link_and_load(address, username, code)
+main(address, username, code)

+ 16 - 14
scripts/make_parallel.py

@@ -7,22 +7,24 @@ import random
 import multiprocessing
 import glob
 
-if len(sys.argv) < 4:
-    sys.stderr.write("Expected different parameters!\n")
-    sys.stderr.write("    %s address username [file]*\n" % sys.argv[0])
-    sys.exit(1)
+def main(address, username, files):
+    def do_compile_wrapper(filename):
+        do_compile(address, filename, str(random.random()), filename, "PO", ["--debug"])
 
-address = sys.argv[1]
-username = sys.argv[2]
-files = [a.replace("\\", "/") for a in sum([glob.glob(f) for f in sys.argv[3:]], [])]
-
-def do_compile_wrapper(filename):
-    do_compile(address, filename, str(random.random()), filename, "PO", ["--debug"])
-
-if __name__ == "__main__":
     p = multiprocessing.Pool(multiprocessing.cpu_count() * 2)
-
     new_files = to_recompile(address, files)
     p.map(do_compile_wrapper, new_files)
-
     link_and_load(address, username, files)
+
+if __name__ == "__main__":
+    if len(sys.argv) < 4:
+        sys.stderr.write("Expected different parameters!\n")
+        sys.stderr.write("    %s address username [file]*\n" % sys.argv[0])
+        sys.exit(1)
+
+    address = sys.argv[1]
+    username = sys.argv[2]
+    files = [a.replace("\\", "/") for a in sum([glob.glob(f) for f in sys.argv[3:]], [])]
+
+    main(address, username, files)
+