나는 MPI 프로그램 (Fortran, MPICH)을 갖고 있는데,이 스크립트는 자신의 MPI 프로그램을 (mpirun
을 사용하여) 시작합니다. 지금까지, if(system_num .eq. root_system_num)
에 쉘 (system
) 명령을 싸서 하나의 MPI 프로세스 만 스크립트를 실행합니다. 그러나 일련의 HYDU_create_process
오류가 발생합니다.MPI 프로세스에서 MPI 프로세스를 호출하는 스크립트 호출하기
MPI_Comm_spawn
을 사용했지만 "MPI는 시작 프로그램이 셸 스크립트이고 셸 스크립트가 MPI_INIT
을 호출하는 프로그램을 시작하면 어떻게되는지 말하지 않습니다"라는 경고가 있습니다. 따라서 이상적인 것 같지 않습니다. .
몇 가지 포인트 :
- 에서 모든 호출 프로그램과 상호 작용할 필요가 없습니다 쉘 스크립트에서 호출 된 프로그램. 호출 프로그램은 프로세스가 완료 될 때까지 기다려야합니다.
- 쉘 스크립트를 별도의 실행 파일로 변환하는 쉬운 방법은 없습니다 (많은 환경 변수 설정 등).
- MPICH 및 Open MPI 모두에 이상적입니다.
방법이 있습니까?
그래, 나는 MPI_Comm_spawn쪽으로 기울어 져있다. 하지만 이제 코드 자체가 파일을 구문 분석하기 전에 어떤 환경 변수가 있어야 하는지를 추출하기 위해 모든 종류의 파일을 구문 분석해야합니다. Fortran에서 읽을 수 있도록 고안된 파일들, 이제 필자는 그것을하기 위해 쉘 스크립트를 준비해야합니다. –