LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: David Cronk (cronk_at_[hidden])
Date: 2005-07-04 13:49:48


You are sending from rank 0 to rank 0. You need to send to rank 1.

Dave.

Marcelo Fukushima wrote:

>hello guys!!! another noobish question...
>
>im trying the simplest of all non-blocking routine and it simply locks up...
>
>int main(int argc, char* argv[]) {
> MPI_Request req;
> MPI_Status status;
> int size, rank;
> int num, flag;
> int i;
> MPI_Init(&argc, &argv);
> MPI_Comm_rank(MPI_COMM_WORLD, &rank);
> MPI_Comm_size(MPI_COMM_WORLD, &size);
>
> printf ("starting waiting....\n");
>
> if (rank == 1) {
> //MPI_Irecv (&num, 1, MPI_INT, MPI_ANY_SOURCE, TAG,MPI_COMM_WORLD, &req);
> //flag = 0;
> //while (!flag){
> MPI_Irecv (&num, 1, MPI_INT, MPI_ANY_SOURCE, TAG,MPI_COMM_WORLD, &req);
> MPI_Wait (&req, &status);
> printf ("Received: %d\n", num);
> }
> else if (rank == 0) {
> num= 123;
> scanf ("%d", &num);
> printf ("Sending %d\n", num);
> MPI_Send (&num, 1, MPI_INT, 0,TAG, MPI_COMM_WORLD);
>
> }
> printf ("%d is saying bye...\n", rank);
> MPI_Finalize();
> return 0;
>
>---------------------------
>bottom line is: im posting a receive without the sender has sent the
>msg and it stucks... i also tried pooling the receive post with the
>MPI_Test and also locks (the request never turn into a completed
>one)... so, in more general words, what i want to do is a "preemptive"
>check if there was any msg sent to this node... is there a way? cuz i
>didnt find on the tutorials.... ty in advance
>
>
>
>