gpt4 book ai didi

fortran - 并行 IO 和追加

转载 作者:行者123 更新时间:2023-12-02 16:37:55 24 4
gpt4 key购买 nike

当我运行小规模并行代码时,我通常以 fileout.dat.xxx 的形式输出 N 个文件(N 是处理器的数量),其中 xxx 是处理器编号(使用 I3.3),然后在代码完成后将它们 cat 放入单个 fileout.dat 文件中。

我的问题是我可以在 OPEN 语句中使用 ACCESS='append'POSITION='append' 并让所有处理器写入到同一个文件?

最佳答案

实际上,没有。 POSITION='append' 只是表示执行 open 语句后文件指针将位于文件末尾。但是,可以更改文件位置,例如与 BACKSPACE、REWIND 或此类语句一起使用。因此,Fortran POSITION='append' 与 POSIX O_APPEND 不对应,因此 POSIX 操作系统无法确保所有写入仅附加到文件并且不会覆盖旧数据。

此外,如果您在集群上运行代码,请注意 O_APPEND 不适用于许多网络文件系统(例如 NFS)。

为了使用多个进程/线程写入单个文件进行并行 I/O,请使用 ACCESS='direct' 或 ACCESS='stream' 并使进程就要写入的记录/字节范围达成一致。

关于fortran - 并行 IO 和追加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15483178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com