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: [] On Behalf Of Ross Lance
Sent: Tuesday, June 13, 2006 7:38 PM
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.