나는 아주 기본적인 질문을하고 있을지 모르지만 나는 파이썬에서 간단한 병렬 응용 프로그램을 만드는 방법을 정말로 생각할 수 없다. 16 개의 코어가있는 시스템에서 스크립트를 실행 중이므로 모든 스크립트를 효율적으로 사용하고 싶습니다. 나는 16 개의 거대한 파일을 읽고 각각의 CPU가 하나의 파일을 읽고 그 결과를 병합하기를 원합니다.파이썬, 많은 파일을 읽고 결과를 병합
parameter1_glob=[]
parameter2_glob[]
do cpu in arange(0,16):
parameter1,parameter2=loadtxt('file'+str(cpu)+'.dat',unpack=True)
parameter1_glob.append(parameter1)
parameter2_glob.append(parameter2)
내가 multiprocessing
모듈이 도움이 될 수도 있지만, 내가 뭘 원하는지에 적용하는 방법을 이해하지 수 있다고 생각한다 여기에 내가 뭘하고 싶은 것의 빠른 예를 제공합니다.
[파이썬의 GIL에 대해 들었습니까?] (http://stackoverflow.com/questions/990102/python-global-interpreter-lock-gil-workaround-on-multiccore-systems-using-task) – tkone
여러 스레드를 사용할 필요가 없습니다 ... 응용 프로그램은 CPU 바인딩이 아닌 디스크 바인딩됩니다. –
@tkone는 : 빨리 디스크를 만들려고하고 있지 않다하더라도'multiprocessing'은 별도의 통역을 사용하여 GIL를 피할 수 있습니다. – geoffspear