我正在实施马尔可夫链蒙特卡罗反演计划的数据收集。但是,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
对于每次接受,我必须在9个数据集上节省大约7 mb(总计500次,大约一周的计算时间,~5000次迭代)。不幸的是,数据来自迭代内部的几个不同的对象,因此我无法对它们进行分组并在每次接受时打开文件一次。
答案 0 :(得分:3)
[发表评论作为答案]
对于花费这么长时间的跑步,你可能想要考虑如果你停电会发生什么(作为一名MC退伍军人,这是我最大的恐惧)。我建议关闭并重新打开该文件,因为它可能更安全,并且在停电,计算机崩溃等运行多天时不太可能使文件易受损坏。