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

标签 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 次迭代)。不幸的是,数据来自迭代内的多个不同对象,因此我无法将它们分组并在每次接受时打开文件一次。

最佳答案

[发布评论作为答案]

对于需要这么长时间的运行,你可能需要考虑如果停电会发生什么(作为一名MC老手,这是我最担心的)。我建议关闭并重新打开该文件,因为这样可能更安全,并且在运行多天时,在断电、计算机崩溃等情况下不太可能使文件容易损坏。

关于python - 我应该重复打开/关闭文件还是长时间保持打开状态(约 1 周)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37215441/

相关文章:

python - 我们可以为 python 类文件对象禁用 h5py 文件锁定吗?

hadoop - 集成 Hadoop 和 HDF5

python - 添加覆盖 twinx 轴线条的图例

匹配 IPV4 地址的 Python 正则表达式不起作用

amazon-s3 - 在 Amazon EC2、S3 和/或 EBS 上托管和访问 HDF5 文件

c++ - 对非线性系统进行数值求解的最佳库或软件是什么?

python - 使用 numpy 对周期信号的单个周期进行平均

python - 如何从数字列表中获取平均 'spread'?

python - 带有自定义标题栏的可拖动无框 PyQt4 窗口

numpy - 使用 scipy 的低通冷杉滤波器参数