1
내 파이썬 코드의 기능은 매우 간단합니다. 파일 목록을 통해 netCDF 파일을 읽고이 경우 평균값을 반환합니다.다중 처리 (병렬 처리)를 통해 파이썬 코드의 속도를 높이려면 어떻게해야합니까?
그러나 netCDF 파일을 읽는 데 시간이 걸립니다. 내 워크 스테이션에 32 코어 프로세서가 있기 때문에 다중 프로세스 (병렬 처리)로이 프로세스를 가속화 할 수 있는지 궁금합니다. 읽기 파일이 서로 independet 때문에
from netCDF4 import Dataset
for i in filerange:
print "Reading the",i, "file", "Wait"
infile_Radar = Dataset(file_list[i],'r')
# Read the hourly Data
Radar_rain=np.array(infile_Radar.variables['rain'][:])
for h in range(0,24):
hourly_rain = Radar_rain[h,:]
hourly_mean[i,h] = np.mean(hourly_rain)
np.savetxt('Hourly_Spatial_mean.txt', hourly_mean, delimiter='\t')
, 어떻게 내 워크 스테이션의 최선을 만들 수 있습니다
코드는 같다? 감사.
멀티 프로세싱보다는 스레딩이 IO 바인딩 작업에 더 적합합니다. –
프로세스를 배포하는 데는 여러 가지 방법이 있지만 출력이 서로 겹쳐 쓰지 않는지 확인해야합니다. – mootmoot
파일을 읽는 위치가 표시되지 않습니다. 하나의 스트림에서 다른 스트림을 처리하면서 읽기를 겹쳐서 약간의 향상을 얻을 수 있지만, 그 스케일 업은 지금까지만 진행됩니다. – tdelaney