0
병렬 처리를 위해 별도의 모듈에서 함수를 호출하는 스크립트를 만들려고합니다.다중 처리 : 가져온 함수 내에서 풀 사용
내 '최상위'스크립트는 다음과 같습니다
descriptors
모듈은 다음과 같습니다
from hydrology import model, descriptors
if __name__ == "__main__":
datafile = r"C:\folder\datafile.shp"
myModel = model.Model(data = datafile)
res = descriptors.watershed_pll(myModel)
: 당신이 볼 수 있듯이
from multiprocessing import Pool
from arcfunc import multi_watershed
def watershed_pll(model):
pool = Pool()
for key, val in model.stations.iteritems():
res = pool.apply_async(multi_watershed(val, key))
pool.close()
pool.join()
return res
병렬로 실행할 수있는 기능이에서 수입 모듈 arcfunc
, 병렬 처리를 수행하는 기능이 모듈 descriptors
안에 있고 모든 것을 실행하는 스크립트가 다시 분리됩니다. 내가 실행할 때
는 예외가 없습니다, 그러나 나는 두 가지 문제가 있습니다
- res.successful을()이 더 빠른 멀티 프로세싱이없는 것보다 실행
- False를 반환하지 않습니다.
내 아키텍처가 문제를 일으키고 있다고 생각하지만 병렬 처리 기능이 별도의 모듈에 있어야합니다.
제안 사항?
대만족을! 감사. 음, 작동하지만 여전히 문제가 없습니다. 이것은 사용중인 외부 라이브러리와 관련이있을 수 있습니다 : arcpy .... – jramm
@jramm, 죄송 합니다만, 나는 arcpy에 대해 모른다. – falsetru