Io Fortran MPI代码打开具有相同单元号的不同文件

Io Fortran MPI代码打开具有相同单元号的不同文件,io,fortran,mpi,Io,Fortran,Mpi,我正在使用OpenMPI在多进程中运行fortran代码。每个进程都需要打开和写入许多文件。在运行期间,可能会有两个不同的进程以相同的单元编号同时打开和写入不同的文件 processA: open(unit=10, file1) processB: open(unit=10, file2) 这会导致问题吗?是的,这是可能的,不应该导致问题。MPI进程都独立运行,不知道其他进程的内存(因此也不知道单元号)。尽管您应该小心不要创建太多的文件,但如果使用数千个进程,您可能会遇到文件系统的限制。请注意

我正在使用OpenMPI在多进程中运行fortran代码。每个进程都需要打开和写入许多文件。在运行期间,可能会有两个不同的进程以相同的
单元
编号同时打开和写入不同的文件

processA: open(unit=10, file1)
processB: open(unit=10, file2)

这会导致问题吗?

是的,这是可能的,不应该导致问题。MPI进程都独立运行,不知道其他进程的内存(因此也不知道单元号)。尽管您应该小心不要创建太多的文件,但如果使用数千个进程,您可能会遇到文件系统的限制。

请注意,MPI与OpenMPI不同。后者只是前者的众多实现之一。感谢您的澄清!我知道不同进程的变量存在于它们自己的地址空间中,除非调用MPI子例程,否则它们不会相互通信。我不确定涉及系统I/O的文件。显然,如果两个进程打开相同的文件(相同的文件名),这将导致问题。你能谈谈单元号和分配内存之间的关系吗?我试图从硬件层面彻底理解事物。单元只是文件描述符的句柄,进程将其保存在内存中以引用文件。它与磁盘上的某些内容没有直接关系。