何百もの HDF ファイルを読み込んで、各 HDF のデータを個別に処理しています。ただし、一度に 1 つの HDF ファイルを処理するため、これには非常に時間がかかります。http://docs.python.org/library/multiprocessing.htmlに出くわしたばかりで、マルチプロセッシングを使用してどのように高速化できるか疑問に思っています。
これまでのところ、私はこれを思いつきました:
import numpy as np
from multiprocessing import Pool
def myhdf(date):
ii = dates.index(date)
year = date[0:4]
month = date[4:6]
day = date[6:8]
rootdir = 'data/mydata/'
filename = 'no2track'+year+month+day
records = read_my_hdf(rootdir,filename)
if records.size:
results[ii] = np.mean(records)
dates = ['20080105','20080106','20080107','20080108','20080109']
results = np.zeros(len(dates))
pool = Pool(len(dates))
pool.map(myhdf,dates)
しかし、これは明らかに正しくありません。私のやりたいことの連鎖をたどってもらえますか? 何を変更する必要がありますか?