Mmmh I don't understand you: My (slave) call is: MPI_Recv(&work, 1, MPI_INT, 0, MPI_ANY_TAG, MPI_COMM_WORLD, &status);
And MPI_Recv signature is: int MPI_Recv( void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status ) So: void *buf -> work int count -> 1 MPI_Datatype datatype -> MPI_INT int source -> 0, ... I think I'm waiting to receive incoming messages from the master (source id =0). In fact the only sender is the master and the only slave is the only receiver. Maybe I'm doing something else wrong? Thank you On 2/28/06, John Robinson <j...@vertica.com> wrote: > > Your MPI_Recv is trying to receive from the slave(1), not the master (0). > > Jose Pedro Garcia Mahedero wrote: > > Hello everybody. > > > > I'm new to MPI and I'm having some problems while runnig a simple > > pingpong program in more than one node. > > > > 1.- I followed all the instructions and installed open MPI without > > problems in a Beowulf cluster. > > 2.- Ths cluster is working OK and ssh keys are set for not password > > prompting > > 3.- miexec seems to run OK. > > 4.- Now I'm using just 2 nodes: I've tried a simple ping-pong > > application but my master only sends one request!! > > 5.- I reduced the problem by trying to send just two mesages to the same > > node: > > > > int main(int argc, char **argv){ > > int myrank; > > > > /* Initialize MPI */ > > > > MPI_Init(&argc, &argv); > > > > /* Find out my identity in the default communicator */ > > > > MPI_Comm_rank(MPI_COMM_WORLD, &myrank); > > if (myrank == 0) { > > int work = 100; > > int count=0; > > for (int i =0; i < 10; i++){ > > cout << "MASTER IS SLEEPING..." << endl; > > sleep(3); > > cout << "MASTER AWAKE WILL SEND["<< count++ << "]:" << work << > endl; > > MPI_Send(&work, 1, MPI_INT, 1, WORKTAG, MPI_COMM_WORLD); > > } > > } else { > > int count =0; > > int work; > > MPI_Status status; > > while (true){ > > MPI_Recv(&work, 1, MPI_INT, 0, MPI_ANY_TAG, MPI_COMM_WORLD, > > &status); > > cout << "SLAVE[" << myrank << "] RECEIVED[" << count++ << "]:" > > << work <<endl; > > if (status.MPI_TAG == DIETAG) { > > break; > > } > > }// while > > } > > MPI_Finalize(); > > > > > > > > 6a.- RESULTS (if I put more than one machine in my mpihostsfile), my > > master sends the first message and my slave receives it perfectly. But > > my master doesnt send its second . > > message: > > > > > > > > Here's my output > > > > MASTER IS SLEEPING... > > MASTER AWAKE WILL SEND[0]:100 > > MASTER IS SLEEPING... > > SLAVE[1] RECEIVED[0]:100MPI_STATUS.MPI_ERROR:0 > > MASTER AWAKE WILL SEND[1]:100 > > > > 6b.- RESULTS (if I put ONLY 1 machine in my mpihostsfile), everything > > is OK until iteration 9!!! > > MASTER IS SLEEPING... > > MASTER AWAKE WILL SEND[0]:100 > > MASTER IS SLEEPING... > > MASTER AWAKE WILL SEND[1]:100 > > MASTER IS SLEEPING... > > MASTER AWAKE WILL SEND[2]:100 > > MASTER IS SLEEPING... > > MASTER AWAKE WILL SEND[3]:100 > > MASTER IS SLEEPING... > > MASTER AWAKE WILL SEND[4]:100 > > MASTER IS SLEEPING... > > MASTER AWAKE WILL SEND[5]:100 > > MASTER IS SLEEPING... > > MASTER AWAKE WILL SEND[6]:100 > > MASTER IS SLEEPING... > > MASTER AWAKE WILL SEND[7]:100 > > MASTER IS SLEEPING... > > MASTER AWAKE WILL SEND[8]:100 > > MASTER IS SLEEPING... > > MASTER AWAKE WILL SEND[9]:100 > > SLAVE[1] RECEIVED[0]:100MPI_STATUS.MPI_ERROR:0 > > SLAVE[1] RECEIVED[1]:100MPI_STATUS.MPI_ERROR:0 > > SLAVE[1] RECEIVED[2]:100MPI_STATUS.MPI_ERROR:0 > > SLAVE[1] RECEIVED[3]:100MPI_STATUS.MPI_ERROR:0 > > SLAVE[1] RECEIVED[4]:100MPI_STATUS.MPI_ERROR:0 > > SLAVE[1] RECEIVED[5]:100MPI_STATUS.MPI_ERROR:0 > > SLAVE[1] RECEIVED[6]:100MPI_STATUS.MPI_ERROR:0 > > SLAVE[1] RECEIVED[7]:100MPI_STATUS.MPI_ERROR:0 > > SLAVE[1] RECEIVED[8]:100MPI_STATUS.MPI_ERROR:0 > > SLAVE[1] RECEIVED[9]:100MPI_STATUS.MPI_ERROR:0 > > -------------------------------- > > > > I know this is a lot of text, but I wanted to give a mamixum detailed > > question. I've been search in FAQ, but still don't know what (and why) > > is going on... > > > > Anyone can help please :-) ? > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > users mailing list > > us...@open-mpi.org > > http://www.open-mpi.org/mailman/listinfo.cgi/users > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users >