Intel® oneAPI HPC Toolkit
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
Announcements
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.
2020 Discussions

PS XE 2019 MPI not reading from stdin on Windows

j0e
New Contributor I
229 Views

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
Reply