Re: [OMPI users] MPI_Recv, is it possible to switch on/off aggresive mode during runtime?

2006-09-15 Thread Marcin Skoczylas

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



Re: [OMPI users] MPI_Recv, is it possible to switch on/off aggresive mode during runtime?

2006-07-07 Thread Eric Thibodeau
Although it will add some overhead, have you tried using MPI_Probe before 
calling MPI_Recv. I am curious to know if the Probe is less CPU intensive than 
a direct call to MPI_Recv. An example of how I use it:

MPI_Probe(MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,);

MPI_Recv(DispBuff,height,MPI_UNSIGNED_LONG,status.MPI_SOURCE,status.MPI_TAG,MPI_COMM_WORLD,);

(This is used to receive known data from an unknown source)

Eric

Le mercredi 5 juillet 2006 10:54, Marcin Skoczylas a écrit :
> Dear open-mpi users,
> 
> 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!
> 
> greetings, Marcin
> 
> 
> ___
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
> 

-- 
Eric Thibodeau
Neural Bucket Solutions Inc.
T. (514) 736-1436
C. (514) 710-0517



Re: [OMPI users] MPI_Recv, is it possible to switch on/off aggresive mode during runtime?

2006-07-06 Thread Brian Barrett

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

--
  Brian Barrett
  Open MPI developer
  http://www.open-mpi.org/