Итак, я установил короткий скрипт, который выполняет внешнюю программу (написанную на языке Fortran 77). Я хочу запускать несколько экземпляров программы и так как у меня 8 ядер на моем компьютере, самое простое решением я нашел:Запуск нескольких внешних программ
import subprocess
import os
i = n
while(i<n):
dire = "dir/Run"+str(i)+"/"
os.chdir(dire)
p1 = subprocess.Popen(['./mej'])
dire = "dir/Run"+str(i+1)+"/"
os.chdir(dire)
p2 = subprocess.Popen(['./mej'])
dire = "dir/Run"+str(i+2)+"/"
os.chdir(dire)
p3 = subprocess.Popen(['./mej'])
dire = "dir/Run"+str(i+3)+"/"
os.chdir(dire)
p4 = subprocess.Popen(['./mej'])
dire = "dir/Run"+str(i+4)+"/"
os.chdir(dire)
p5 = subprocess.Popen(['./mej'])
dire = "dir/Run"+str(i+5)+"/"
os.chdir(dire)
p6 = subprocess.Popen(['./mej'])
dire = "dir/Run"+str(i+6)+"/"
os.chdir(dire)
p7 = subprocess.Popen(['./mej'])
dire = "dir/Run"+str(i+7)+"/"
os.chdir(dire)
p8 = subprocess.Popen(['./mej'])
dire = "/Run"+str(i+8)+"/"
os.chdir(dire)
p3 = subprocess.Popen(['./mej'])
exit_codes = [p.wait() for p in p1, p2, p3, p4, p5, p6, p7, p8]
i = i + 8
print "Job's done!"
Теперь это работало в основном штраф в первом, но я просто изменил к переменному шагу времени и при этом время каждой интеграции выполняется значительно. Теперь проблема в том, что скрипт будет ждать, пока самый медленный будет закончен, прежде чем запускать новый набор интеграций. Как я могу написать его, чтобы у меня всегда было 8 экземпляров?
Далеко короче и лучше, чем мое предложение – innoSPG
Ничего себе, какое чистое решение. Раньше я должен был попасть в Python. Благодаря! –