Я реализую сбор данных для программы инверсии цепи Маркова Монте-Карло. Однако на выполнение MCMC может уйти неделя или больше! Не лучше ли открыть файл в начале прогона:
with h5py.File('my_data.hdf5', 'r+', libver='latest') as fp:
fp.swmr_mode = True
mcmc_run(fp)
Или каждый раз, когда я хочу добавить набор данных (внутри mcmc_run()
)
with h5py.File('my_data.hdf5', 'r+', libver='latest') as fp:
fp.swmr_mode = True
fp['dataset'] = new_data
Мне нужно сэкономить около 7 МБ на 9 наборах данных для каждого приема (всего 500 за неделю вычислений, ~ 5000 итераций). К сожалению, данные поступают от нескольких разных объектов внутри итерации, поэтому я не могу сгруппировать их и открыть файл один раз за принятие.
flush
операция, так что это будет иметь тот же эффект. Проблема с закрытием заключается в том, что вы теряете положение файла, но вы должны быть готовы к перезапускам, вызванным отключением электроэнергии и т. Д. - person cdarke   schedule 13.05.2016