Re: [OMPI users] MPI_Recv, is it possible to switch on/off aggresive mode during runtime?
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?
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?
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/