[mpich-discuss] MPI_Send and recv

Pavan Balaji balaji at mcs.anl.gov
Tue Jul 2 16:48:57 CDT 2013


This is an incorrect program.  You need to post an Irecv before sending 
to yourself.

  -- Pavan

On 07/02/2013 04:39 PM, Sufeng Niu wrote:
> Hi,
>
> I try to familiar with mpi self defined type api, and I directly run a
> very simple code from LLNL webpage:
>
> //-----------------------------------------------------------------------------------------------
>
> #include"mpi.h"
> #include <stdio.h>
> #define SIZE 4
>
> int main(argc,argv)
> int argc;
> char *argv[];  {
> int numtasks, rank, source=0, dest, tag=1, i;
> float a[SIZE][SIZE] =
>    {1.0, 2.0, 3.0, 4.0,
>     5.0, 6.0, 7.0, 8.0,
>     9.0, 10.0, 11.0, 12.0,
>    13.0, 14.0, 15.0, 16.0};
> float b[SIZE];
>
> MPI_Status stat;
> MPI_Datatype columntype;
>
> MPI_Init(&argc,&argv);
> MPI_Comm_rank(MPI_COMM_WORLD, &rank);
> MPI_Comm_size(MPI_COMM_WORLD, &numtasks);
>
> MPI_Type_vector(SIZE, 1, SIZE, MPI_FLOAT, &columntype);
> MPI_Type_commit(&columntype);
>
> if (numtasks == SIZE) {
>    if (rank == 0) {
>       for (i=0; i<numtasks; i++)
>         MPI_Send(&a[0][i], 1, columntype, i, tag, MPI_COMM_WORLD);
>          }
>
>    MPI_Recv(b, SIZE, MPI_FLOAT, source, tag, MPI_COMM_WORLD, &stat);
>    printf("rank= %d  b= %3.1f %3.1f %3.1f %3.1f\n",
>          rank,b[0],b[1],b[2],b[3]);
>    }
> else
>    printf("Must specify %d processors. Terminating.\n",SIZE);
>
> MPI_Type_free(&columntype);
> MPI_Finalize();
> }
>
> //-----------------------------------------------------------------------------------------------
>
> However, it doesn't work. the program just suspend there. I figure out
> the problem is at line MPI_Send, and MPI_Recv. the MPI_Send just send it
> to itself. but I don't know why it doesn't work. Is it caused by dead
> lock? why?
>
> Thank you very much!
>
> --
> Best Regards,
> Sufeng Niu
> ECASP lab, ECE department, Illinois Institute of Technology
> Tel: 312-731-7219
>
>
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
>

-- 
Pavan Balaji
http://www.mcs.anl.gov/~balaji



More information about the discuss mailing list