Просмотр исходного кода

Merge branch 'testing' of msdl.uantwerpen.be:yentl/modelverse into testing

Yentl Van Tendeloo 8 лет назад
Родитель
Сommit
cca3b1f084
2 измененных файлов с 8 добавлено и 4 удалено
  1. 0 1
      scripts/execute_model.py
  2. 8 3
      scripts/make_parallel.py

+ 0 - 1
scripts/execute_model.py

@@ -1,6 +1,5 @@
 import random
 import sys
-import multiprocessing
 import glob
 import time
 

+ 8 - 3
scripts/make_parallel.py

@@ -6,15 +6,21 @@ from link_and_load import link_and_load
 import random
 import multiprocessing
 import glob
+import os
 
 def do_compile_wrapper(args):
     address, taskname, filename = args
     do_compile(address, filename, str(random.random()), filename, "PO", ["--debug"])
 
 def main(address, taskname, files):
-    p = multiprocessing.Pool(multiprocessing.cpu_count() * 2)
     new_files = to_recompile(address, files)
-    p.map(do_compile_wrapper, [[address, taskname, f] for f in new_files])
+    if os.name == "posix":
+        # At least linux decently implements forking, so use as many cores as possible
+        p = multiprocessing.Pool(multiprocessing.cpu_count() * 2)
+        p.map(do_compile_wrapper, [[address, taskname, f] for f in new_files])
+    else:
+        # Other systems are less intelligent, so just do this sequentially
+        map(do_compile_wrapper, [[address, taskname, f] for f in new_files])
     link_and_load(address, taskname, files)
 
 if __name__ == "__main__":
@@ -28,4 +34,3 @@ if __name__ == "__main__":
     files = [a.replace("\\", "/") for a in sum([glob.glob(f) for f in sys.argv[3:]], [])]
 
     main(address, taskname, files)
-