[mpich-discuss] Sending a pointer from one processor to other processor:

Pavan Balaji balaji at mcs.anl.gov
Tue May 11 12:33:43 CDT 2010


MPI_Irecv needs to have a corresponding MPI_Wait. In your application, 
it might be easier to just replace it with MPI_Recv(), instead of 
MPI_Irecv().

  -- Pavan

On 05/11/2010 11:58 AM, sankar s wrote:
> Hi,
> In the below code am trying to send an array from one processor to other 
> processor.But  Its giving error. I don't understand why its coming! pls 
> help me in this.
> (This code is working well without MPI_Send and MPI_Irecv statements).
> 
> int main(int argc, char*argv[]){
> double *simulateRuns(int, int, int, int);
> double simulateOneRun(int,int,int);
> void stat(double *,int);
> 
>    int nprocs;             /* number of processes */
>    int rank,tag=1;    /* the unique identification of this process */
>    long int before,after;
>    double * profit1,* profit2,* profit;
>    int n=500,m=20000,s=80,S=200;
>    MPI_Status status;
>    before=GetTickCount();
> 
>   MPI_Init (&argc, &argv);
>   MPI_Comm_rank (MPI_COMM_WORLD, &rank);
>   MPI_Comm_size (MPI_COMM_WORLD, &nprocs);
>   printf("rank=%d  nproc=%d\n",rank,nprocs);
> 
>   if (rank==0){
>    profit1=simulateRuns(n/nprocs,m,s,S);
>    stat(profit1,n/2);
>   MPI_Send(profit1,n/nprocs,MPI_DOUBLE,1,tag,MPI_COMM_WORLD);
>   }
> 
>   if(rank==1){
>    profit2=simulateRuns(n/nprocs,m,s,S);
>    stat(profit2,n/2);
>    MPI_Irecv(profit,n/nprocs,MPI_DOUBLE,0,tag,MPI_COMM_WORLD,&status);
>   }
> 
>    MPI_Finalize ();
>    after=GetTickCount();
>    printf("time elapsed=%ld\n",(after-before));
> }
> 
> 
> /* OUTPUT*/
> 
> C:\Users\Sankar\My Documents\visual studio 
> 2008\Projects\Inventorympi\Debug>mpie
> xec -n 2 Inventorympi.exe
> Fatal error in MPI_Finalize: Other MPI error, error stack:
> MPI_Finalize(318).........................: MPI_Finalize failed
> MPI_Finalize(211).........................:
> MPID_Finalize(92).........................:
> PMPI_Barrier(476).........................: MPI_Barrier(comm=0x44000002) 
> failed
> MPIR_Barrier(82)..........................:
> MPIC_Sendrecv(164)........................:
> MPIC_Wait(513)............................:
> MPIDI_CH3i_Progress_wait(215).............: an error occurred while 
> handling an
> event returned by MPIDU_Sock_Wait()
> MPIDI_CH3I_Progress_handle_sock_event(420):
> MPIDU_Sock_wait(2606).....................: The specified network name 
> is no lon
> ger available. (errno 64)
> Fatal error in MPI_Recv: Other MPI error, error stack:
> MPI_Recv(187).............................: MPI_Recv(buf=CCCCCCCC, 
> count=250, MP
> I_DOUBLE, src=0, tag=1, MPI_COMM_WORLD, status=0023F920) failed
> MPIDI_CH3i_Progress_wait(215).............: an error occurred while 
> handling an
> event returned by MPIDU_Sock_Wait()
> MPIDI_CH3I_Progress_handle_sock_event(455):
> adjust_iov(825)...........................: ch3|sock|immedread 00566358 
> 008B0FE8
>  00FC0048
> MPIDU_Sock_readv(2750)....................: An established connection 
> was aborte
> d by the software in your host machine. (errno 10053)
> 
> 
> Thank you
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> mpich-discuss mailing list
> mpich-discuss at mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss

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


More information about the mpich-discuss mailing list