1
두 개의 for-loops가 있고 내부 코드는 C++ 프로그램 (여기서는 편집기 emacs로 바뀜)을 호출합니다.이 프로그램은 특정 시간 후에 종료되어야합니다. 추가로 한 가지 농도에 대해서 각각의 가속도는 (1, 2, 3, 4) 가속화를 위해 평행하게 계산되어야하고 다음 가속도는 각 가속도가 계산되어야한다.파이썬의 루프는 C++ 프로그램을 호출하고 시간이 끝난 후 루프로 돌아갑니다.
내 문제는 C++ 프로그램을 종료하기 위해 timelimit을 사용하면 파이썬 프로그래머가 다음 집중을 계산하기위한 루프로 돌아 가지 않는다는 것입니다.
나는 이미 더 쉬운 프로그램을 썼고 C++ 프로그램을 열기 위해 서브 프로세스를 시도했지만 특정 시간 후에 종료하지 않았다. 나는 타임 라인도 사용했다. 도와 주셔서 감사합니다!
#!/usr/bin/python2.7
from multiprocessing import Pool
import os
import subprocess as sub
x = set([1, 2, 3, 4, ])
y = set([11, 21, ])
def j_in_y(i):
for j in y: #concentration
print i+j
cll = 'timelimit -t5 -T2 emacs' #c++ program call, for test emacs
os.system(cll)
for i in x: #acceleration
pool = Pool(processes=3)
pool.apply_async(j_in_y, (i,))
pool.close()
pool.join()
Sry 여기를 작성하는 것을 잊어 버렸습니다. 그러나 여하튼 그것은 종결하지 않는다. – user3637248