This is a problem associated with the latest release of PS 2019 cluster ed. When running an MPI program from mpiexec, process 0 is unable to read stdin, at least on a Windows box (have not installed upgrade on CentOS yet) For instance, in this test program
program MPItesting use mpi implicit none integer myRank, mpierr, noProc, narg character(80) basefilename call MPI_INIT( mpierr ) call MPI_COMM_RANK(MPI_COMM_WORLD, myRank, mpierr) ! get rank of this process in world call MPI_COMM_SIZE(MPI_COMM_WORLD, noProc, mpiErr) if (myRank == 0) write(*,'(a,i4)') 'Number of MPI processes: ', noProc narg = command_argument_count () ! see if a filename has been included in command line if (narg == 1) then call get_command_argument(narg,value=basefilename) else if (myRank == 0) then write(*,'(a,$)') 'Enter parameter file base name, no extension: ' read(*,*) basefilename end if call MPI_BCAST(basefilename,80,MPI_CHARACTER,0,MPI_COMM_WORLD,mpierr) end if write(*,'(a,i3,a)') 'Process ', myRank,' filename: '//trim(basefilename) call MPI_FINALIZE(mpierr) end program MPItesting
Process 0 properly writes to the console, but any typing done at the prompt is not echoed, nor is stdin read. If I cntl-C out (which is the only way to exit), then what I typed at the program's prompt is instead passed to the windows command prompt. This just started occurring after upgrading to the 2019 PS XE cluster official release. I have tried using the -s option for mpiexec, which should default to process 0, but this does not help regardless of what process defined by -s is set to. Any ideas? Thanks!