Я пытаюсь сгенерировать набор данных hdf5 из кода, который выполняется параллельно, но когда я читаю сгенерированный набор данных, он пуст, все записи равны нулю.
Я заменил параллельный код последовательнымцикл for и набор данных работают нормально в этом случае, но я не знаю, в чем проблема с тем же параллельным выполнением.
Вот код минимального примера
import h5py
import scipy.stats as st
file = h5py.File('test.hdf5','a')
dset = file.create_dataset('x', (10,1024), maxshape=(None,1024),
dtype='float32')
def assign(j):
dset[j,:] = st.norm.rvs(0.,1.,1024)
from joblib import Parallel, delayed
import multiprocessing as mp
Parallel(n_jobs=4)(delayed(assign)(j) for j in range(10))
file.close()
И файл позже читается с
import h5py
file = h5py.File('test.hdf5','r')
file['x'][:]
В чем проблема с кодом, работающим параллельно?