많은 시간을 소비하는 프로그램을 실행하고 있습니다. 나는 504 프로세서를 요구할 수있는 클러스터에 액세스 할 수있는 기회를 가지지 만, 고객 서비스는 느리게 말하며, 그래서 나는 당신에게로 향한다. 나는 다음과 같이 매우 간단한 응용 프로그램을 사용하고 있습니다 : 내가 프로세스가 시작 볼 수 있지만,파이썬 다중 프로세싱의 한계.
import multiprocessing
def function(data):
data = complicated_function_I_was_given(data)
with open('unique_id', 'w') as f:
f.write(data)
pool = multiprocessing.Pool(504)
pool.map(function, data_iterator)
이제합니다 (이 'complicated_function_I_was_given'스크랩의 무리를 기록하지만, 고유 한 이름은 내가 확신 어떠한 충돌 없음) 프로세스가 정말 느린 것 같습니다. 어떤 사람들은 며칠이 걸리지 만, 1 일 후에 아무 것도 나오지 않았는데도 의 data_iterator
이 즉시 처리되기를 기대하고 있습니다. 멀티 프로세싱이 가능합니까? Pool()에 한계가 있습니까? 또는 다른 노드를 통해 프로세스를 배포하지 않는다는 것을 알 수 있습니다 (각 노드에는 12 코어가 있습니다). 그리고 저는 python2.6.5를 사용하고 있습니다.
링크를 제공해 주셔서 감사합니다. 귀하가 옳다고 생각합니다. 어떻게 그 질문을 놓칠 수 있었는지 나는 모른다. 이제는 mpi4py보다 더 많이 플레이하십시오. – Zenon