我正在为马尔可夫链蒙特卡罗反演程序实现数据收集。然而,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 次迭代)。不幸的是,数据来自迭代内的多个不同对象,因此我无法将它们分组并在每次接受时打开文件一次。
最佳答案
[发布评论作为答案]
对于需要这么长时间的运行,你可能需要考虑如果停电会发生什么(作为一名MC老手,这是我最担心的)。我建议关闭并重新打开该文件,因为这样可能更安全,并且在运行多天时,在断电、计算机崩溃等情况下不太可能使文件容易损坏。
关于python - 我应该重复打开/关闭文件还是长时间保持打开状态(约 1 周)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37215441/