fortran:等待打开文件,直到被另一个应用程序关闭

2023-12-05

我有一个 fortran 代码,需要读取一系列 ascii 数据文件(总共大约 25 GB)。基本上,代码打开给定的 ascii 文件,读取信息并使用它执行一些操作,然后关闭它。然后打开另一个文件,读取信息,做一些操作,然后再次关闭。其余的 ascii 文件依此类推。

总体而言,每次完整运行大约需要 10 小时。我通常需要运行几个具有不同参数的独立计算,而我的做法是按顺序运行每个独立计算,这样最后如果我有10个独立计算,总的CPU时间是100h。

更快速的方法是在集群机器上使用不同的处理器同时运行 10 个独立的计算,但问题是,如果给定的计算需要打开并读取已经打开的给定 ascii 文件中的数据,并且它正在被另一个计算使用,那么代码显然会给出错误。

我想知道是否有一种方法可以验证给定的 ascii 文件是否已被另一个计算使用,如果是,则要求代码等到 ascii 文件最终关闭。

任何帮助都会有很大帮助。 提前谢谢了。

奥巴马科克。


两个进程应该能够读取同一个文件。也许action="read"公开声明可能会有所帮助。文件必须是人类可读的吗?对于未格式化(有时称为二进制)文件,I/O 很可能会更快。

附:如果您的操作系统不支持多重读取访问,您可能必须创建自己的锁定系统。创建一个主文件,进程打开该文件来检查哪些文件正在使用或未使用,并更新所述列表。检查或更新后立即关闭。要处理此读/写文件上的冲突,请使用iostat在 open 语句上,如果出现错误,请在延迟后重试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fortran:等待打开文件,直到被另一个应用程序关闭 的相关文章

随机推荐