1
私のPythonコードの機能は非常に簡単です。 netCDFファイルをファイルリストから読み込み、この場合の平均値を返します。マルチプロセッシング(並列処理)でPythonコードをスピードアップするにはどうすればよいですか?
ただし、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
ファイルを読む場所がわかりません。 1つのストリームの読み込みを別のストリームの処理と重複させることでいくらかの改善を得ることができますが、そのスケールアップはこれまでのところしかありません。 – tdelaney