[mpich-discuss] Send/Recv Array of Numbers

Mis Nat kocka87 at gmail.com
Fri May 4 11:12:49 CDT 2012


Problem solved :) Thank you very much!

Nat


On 4 May 2012 17:16, Reuti <reuti at staff.uni-marburg.de> wrote:

> Hi,
>
> Am 04.05.2012 um 17:01 schrieb Mis Nat:
>
> > I'm trying to send random numbers in array which are generated in
> process 0 to process 1. I'm running in circles and I can't find out why
> process 1 receive only 6 of 10 numbers? Can please someone give me any
> advice what I'm doing wrong?
>
> I wonder why the first ones are correct at all. For rank 1 you never
> allocate any memory AFAICS for the array. Allocating it  for rank 1 too
> should fix it.
>
> -- Reuti
>
>
> > Thank you!
> >
> > Best regards,
> >
> > Nat
> >
> >
> > void Test(int *Array, int ArraySize, int rank, int size)
> > {
> >       int n=0;
> >       MPI_Status status;
> >
> >       if (rank == 0)
> >        {
> >                MPI_Send(Array, ArraySize, MPI_INT, 1, 0, MPI_COMM_WORLD);
> >        }
> >        else if (rank == 1)
> >        {
> >               printf("\nReceiving:\n");
> >               MPI_Recv(Array,  ArraySize, MPI_INT, 0, 0, MPI_COMM_WORLD,
> &status);
> >
> >               for (n=0; n<=ArraySize; n++)
> >                       printf("Proces %d array[%d]: %d \n", rank, n,
> Array[n]);
> >        }
> > }
> >
> > int main(int argc, char *argv[])
> > {
> >     int ArraySize;
> >     int *Array;
> >     int MyRank, npes;
> >     int n=0;
> >
> >     MPI_Status status;
> >     MPI_Init(&argc,&argv);
> >
> >     MPI_Comm_rank(MPI_COMM_WORLD,&MyRank);
> >     MPI_Comm_size(MPI_COMM_WORLD,&npes);
> >
> >     if(MyRank==0)
> >     {
> >         ArraySize=10;
> >         Array=(int *)malloc(ArraySize*sizeof(int));
> >
> >         if(Array==0)
> >             printf("Malloc memory error!");
> >
> >         srand(time(NULL));
> >         for(n=0;n<ArraySize;n++)
> >         {
> >             Array[n]=(int)rand()%1000;
> >             printf("%d ",Array[n]);
> >         }
> >         printf("\n");
> >     }
> >
> > MPI_Bcast(&ArraySize,1,MPI_INT,0,MPI_COMM_WORLD);
> > Test(Array,ArraySize, MyRank, npes);
> >
> >       MPI_Finalize();
> >       return 0;
> > }
> >
> >
> > OUTPUT:
> > D:\examples\Release>mpiexec -n 2 -machinefile mf.txt -path
> "D:\examples\Release"
> >  Sortiranje.exe
> > 4 359 104 338 565 244 132 891 450 557
> > ☺  5☻  ˘   äProces 1 array[0]: 4
> > Proces 1 array[1]: 359
> > Proces 1 array[2]: 104
> > Proces 1 array[3]: 338
> > Proces 1 array[4]: 565
> > Proces 1 array[5]: 244
> > Proces 1 array[6]: 1869762692
> > Proces 1 array[7]: 544433507
> > Proces 1 array[8]: 1918967857
> > Proces 1 array[9]: 1534681458
> > Proces 1 array[10]: 540695856
> >
> >
> >
> > _______________________________________________
> > mpich-discuss mailing list     mpich-discuss at mcs.anl.gov
> > To manage subscription options or unsubscribe:
> > https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>
> _______________________________________________
> mpich-discuss mailing list     mpich-discuss at mcs.anl.gov
> To manage subscription options or unsubscribe:
> https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20120504/d1793372/attachment.htm>


More information about the mpich-discuss mailing list