0
파이썬에서 일부 코드를 병렬 처리하려고합니다. 직렬로 실행하려면 약 24 시간이 걸리지 만 각 반복이 이전 반복과 독립적 인 for 루프가 있으므로 병렬화에 이상적인 상황입니다. 나는 다음과 같이 내 코드가 달성하려고 무엇의 간단한 예를 들어,파이썬 루프를 병렬 처리합니다.
import scipy as sci
from multiprocessing import Pool
def mycode(args):
for x in range(0,2000)
y = sci.fft(data[x,:],axis=1)
output[x,:]=y
return output
if __name__=="__main__":
pool=Pool(processes = 8)
output= pool.map(mycode(args),2000)
그러나이 맨 위에보고에서, 나는 볼 수 파이썬은 하나 실제로 CPU 파워를 사용하고, 9 개 파이썬 프로세스를 생성하지만 그 또는 메모리. 나머지는 모두 0 %입니다. for 루프를 사용하여 Pool을 사용하는 올바른 방법은 무엇입니까?
'reconstruction'기능이란 무엇입니까? 호출 가능을 반환합니까? 왜 pool.map에 대한 두 번째 인자가 반복 가능한 것이 아닌 숫자 (2000)인가? 당신의 예제에 결코 호출되지 않는다면 왜 mycode 함수가 존재합니까? –
반복 가능한 인수로 2000은 1 개의 프로세스 만 사용합니다. –