2017-04-27 62 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

相關問題