Community
cancel
Showing results for 
Search instead for 
Did you mean: 
joe3
New Contributor I
30 Views

PS XE 2019 MPI not reading from stdin on Windows

Hi,

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!

0 Kudos
0 Replies