Brian Barrett wrote:
On Jul 5, 2006, at 8:54 AM, Marcin Skoczylas wrote:
I saw some posts ago almost the same question as I have, but it didn't
give me satisfactional answer.
I have setup like this:
GUI program on some machine (f.e. laptop)
Head listening on tcpip socket for commands from GUI.
Workers waiting for commands from Head / processing the data.
And now it's problematic. For passing the commands from Head I'm
using:
while(true)
{
MPI_Recv...
do whatever head said (process small portion of the data, return
result to head, wait for another commands)
}
So in the idle time workers are stuck in MPI_Recv and have 100% CPU
usage, even if they are just waiting for the commands from Head.
Normally, I would not prefer to have this situation as I sometimes
have
to share the cluster with others. I would prefer not to stop whole mpi
program, but just go into 'idle' mode, and thus make it run again
soon.
Also I would like to have this aggresive MPI_Recv approach switched on
when I'm alone on the cluster. So is it possible somehow to switch
this
mode on/off during runtime? Thank you in advance!
Currently, there is not a way to do this. Obviously, there's not
going to be a way that is portable (ie, compiles with MPICH), but it
may be possible to add this in the future. It likely won't happen
for the v1.1 release series, and I can't really speak for releases
past that at this point. I'll file an enhancement request in our
internal bug tracker, and add you to the list of people to be
notified when the ticket is updated.
Brian
Is there any solution ready? using MPI_Probe before MPI_Recv didn't help
too much.
greetings, Marcin