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,&status); MPI_Recv(DispBuff,height,MPI_UNSIGNED_LONG,status.MPI_SOURCE,status.MPI_TAG,MPI_COMM_WORLD,&rstatus); (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