파이썬에서 다중 처리 및 다중 스레드에 대한 정보를 찾았지만 기본 개념을 이해하지 못하고 내가 찾은 모든 예제가 내가하려는 것보다 더 어렵습니다.파이썬을 사용한 기본 다중 처리
필자는 X 독립 프로그램을 실행해야합니다. 첫 번째 Y 프로그램을 시작하고 싶습니다 (여기서 Y는 내 컴퓨터의 코어 수이고 X >> Y입니다). 독립적 인 프로그램 중 하나가 완료 되 자마자 다음 프로그램을 다음 사용 가능한 코어에서 실행하고 싶습니다. 나는 이것이 간단 할 것이라고 생각했지만, 계속 붙어있다. 이 문제를 해결하는 데 도움이 될만한 점이 많습니다.
편집 : 답변 해 주셔서 감사합니다. 또한 공유하고 싶은 joblib 모듈을 사용하는 다른 해결책을 발견했습니다. 입력 매개 변수 (a0, b0, c0)의 다른 조합으로 실행하고 모든 코어를 사용하려는 'program.py'라는 스크립트가 있다고 가정하십시오. 이것은 해결책입니다. 당신이 실행하기 전에
import os
from joblib import Parallel, delayed
a0 = arange(0.1,1.1,0.1)
b0 = arange(-1.5,-0.4,0.1)
c0 = arange(1.,5.,0.1)
params = []
for i in range(len(a0)):
for j in range(len(b0)):
for k in range(len(c0)):
params.append((a0[i],b0[j],c0[k]))
def func(parameters):
s = 'python program.py %g %g %g' % parameters[0],parameters[1],parameters[2])
command = os.system(s)
return command
output = Parallel(n_jobs=-1,verbose=1000)(delayed(func)(i) for i in params)
당신이 프로그램에서 무엇을 의미합니까를? 별도의 파이썬 스크립트? Python 라이브러리의 경우 스크립트가 함수로 사용 가능하면 편리합니다. –
진정한 프로그램 인 경우 [gridengine] (http://gridengine.org/blog/)을 사용하여 모든 작업 관리를 처리 할 수 있습니다. –