2017-04-27 4 views
2

Open MPI를 사용하는 다중 프로세스에서 포트란 코드를 실행하고 있습니다. 각 프로세스는 많은 파일을 열고 작성해야합니다. 실행 시간 동안 두 개의 서로 다른 프로세스가 열리고 동시에 동일한 번호의 unit 인 다른 파일을 쓸 수 있습니다.포트란 MPI 코드가 동일한 장치 번호의 다른 파일 열기

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

이 문제가 발생합니까?

+0

MPI는 OpenMPI와 동일하지 않습니다. 후자는 전자의 많은 구현 중 하나 일뿐입니다. –

+0

설명해 주셔서 감사합니다! –

답변

4

예, 가능하며 문제가 발생하지 않아야합니다. MPI는 모든 프로세스를 자체적으로 처리하며 다른 프로세스의 메모리 (따라서 유닛 번호)를 인식하지 못합니다. 너무 많은 파일을 생성하지 않도록 조심해야하지만, 수천 개의 프로세스를 사용한다면 파일 시스템의 한계에 부딪 힐 수 있습니다.

+0

나는 MPI 서브 루틴이 호출되지 않으면 서로 다른 프로세스의 변수가 그들 자신의 주소 공간에 존재하고 서로 통신하지 않는다는 것을 알고 있습니다. 나는 시스템의 입출력을 포함하는 파일에 대해 확신하지 못합니다. 분명히 두 프로세스가 동일한 파일 (동일한 파일 이름)을 열면 문제가 발생할 것입니다. 그리고 유닛 번호와 할당 된 메모리 사이의 관계에 대해 더 많이 이야기 할 수 있습니까? 나는 철저히 하드웨어 수준에서 사물을 이해하려고 노력합니다. –

+0

단위는 파일 디스크립터에 대한 핸들 일 뿐이며, 프로세스가 파일을 참조하기 위해 메모리에 보유합니다. 디스크상의 어떤 것과 직접 관련이 없습니다. – haraldkl