Open MPI logo

Open MPI User's Mailing List Archives

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

From: Jeff Squyres \(jsquyres\) (jsquyres_at_[hidden])
Date: 2006-06-29 13:03:26


It doesn't look like you ever got an answer to this question -- sorry!
We sometimes get very bad at mail management. :-(
 
I'm guessing that this is always going to be a problematic scenario for
Open MPI. We have to do forwarding of stdin/out/err between the MPI
process and mpirun. I'm guessing that -- for lack of a longer
description -- this does not play well with the ncurses model of getting
input events.
 
So I don't have a good answer for you -- I'm guessing that this is
simply the nature of forwarding I/O around (and reading via ptys -- or
not -- and all the complications therein).

________________________________

        From: users-bounces_at_[hidden]
[mailto:users-bounces_at_[hidden]] On Behalf Of Ross Lance
        Sent: Tuesday, June 13, 2006 7:38 PM
        To: users_at_[hidden]
        Subject: [OMPI users] mpirun and ncurses
        
        
        I have been using termios.h to detect a keypress and then deal
with it inside of a loop and when porting it over to mpi, and using
mpirun it now will wait and the loop is paused waiting for a carrige
return checking for a keypress.
         
        I then tried ncurses with nodelay() function and the loop
continues but still requires a return before it deals with the input
inside of mpirun. Where alone it would respond to a keypress without a
return.
         
        Both methods above are contained within if( rank == 0 ) { } and
in a for(;;)
         
        And I am using svn checkout of OpenMPI.
         
        I would like to be able to press a key within a loop in main to
change values and exit the loop. Very easy with both methods above. But
mpirun seems to alter the behavior.
         
        Do any of you know of a method to acomplish this within an mpi
application. I want to loop forever and respong to keyboard input when
it comes in or shortly there after.
         
        Ross