2017-04-27 55 views
2

我在使用Open MPI的多进程中运行Fortran代码。每个进程都需要打开并写入许多文件。在运行期间,可能会打开两个不同的进程,并且同时编写具有相同unit号码的不同文件。Fortran MPI代码打开具有相同单元编号的不同文件

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

这会导致问题吗?

+0

请注意,MPI与OpenMPI不同。后者只是前者的许多实现之一。 –

+0

感谢您的澄清! –

回答

4

是的,这是可能的,没有它不应该导致问题。 MPI处理所有活着,并且不知道其他进程的内存(因此单位编号)。尽管您应该小心不要创建太多的文件,但如果使用数千个进程,则可能会遇到文件系统的限制。

+0

我知道不同进程的变量存在于自己的地址空间中,除非调用MPI子程序,否则不会相互通信。我不确定涉及系统I/O的文件。显然,如果两个进程打开相同的文件(相同的文件名),这会导致一个问题。你能详细谈谈单元号码和内存分配之间的关系吗?我试图从硬件层面彻底理解事情。 –

+0

该单元只是文件描述符的句柄,该句柄在其内存中保存以引用该文件。它与磁盘上的某些东西没有直接关系。 – haraldkl

相关问题