我应该反复打开/关闭文件还是长时间保持打开(约1周)?

时间:2016-05-13 16:51:13

标签: python hdf5 scientific-computing h5py

我正在实施马尔可夫链蒙特卡罗反演计划的数据收集。但是,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次迭代)。不幸的是,数据来自迭代内部的几个不同的对象,因此我无法对它们进行分组并在每次接受时打开文件一次。

1 个答案:

答案 0 :(得分:3)

[发表评论作为答案]

对于花费这么长时间的跑步,你可能想要考虑如果你停电会发生什么(作为一名MC退伍军人,这是我最大的恐惧)。我建议关闭并重新打开该文件,因为它可能更安全,并且在停电,计算机崩溃等运行多天时不太可能使文件易受损坏。