Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] openmpi, stdin and qlogic infiniband
From: Fabrice Boyrie (fboyrie_at_[hidden])
Date: 2013-09-19 07:42:33


Hello

I have to compile a program (abinit) reading data from stdin and it
doesn't works.

  I made a simplified version of the program

PROGRAM TESTSTDIN

  use mpi
  integer ( kind = 4 ) error
  integer ( kind = 4 ) id
  integer ( kind = 4 ) p
  real ( kind = 8 ) wtime
  CHARACTER(LEN=255) a
  call MPI_Init ( error )
  call MPI_Comm_size ( MPI_COMM_WORLD, p, error )
  call MPI_Comm_rank ( MPI_COMM_WORLD, id, error )

  if ( id == 0 ) then
    PRINT*, "id0"
    READ(5,'(A)') a
  end if

  write ( *, '(a)' ) ' '
  write ( *, '(a,i8,a)' ) ' Process ', id, ' says "Hello, world!"'

  if ( id == 0 ) then
    write ( *, '(a)' ) 'READ from stdin'
    write ( *, '(a)' ) a
  end if
  call MPI_Finalize ( error )

  stop
end

I've tried openmpi 1.6.5 and 1.7.2
The fortran compiler is ifort (tried Version 14.0.0.080 Build 20130728
and Version 11.1 Build 20100806)
(c compiler is gcc, centos 6.x, infiniband stack from qlogic
infinipath-libs-3.1-3420.1122_rhel6_qlc.x86_64)

Trying with and without infiniband (qlogic card)

mpirun -np 8 ./teststdin < /tmp/a
forrtl: Bad file descriptor
forrtl: severe (108): cannot stat file, unit 5, file /proc/43811/fd/0
Image PC Routine Line
Source
teststdin 000000000040BF48 Unknown Unknown Unknown

 mpirun -mca mtl ^psm -mca btl self,sm -np 8 ./teststdin < /tmp/a

 id0
  Process 0 says "Hello, world!"
READ from stdin
zer
 
  Process 1 says "Hello, world!"
...

Is it a known problem ?
 
 Fabrice BOYRIE