Diego,

Non-blocking communications only indicate a communication will happen, it
does not force them to happen. They will only complete on the corresponding
MPI_Wait, which also marks the moment starting from where the data can be
safely altered or accessed (in the case of the MPI_Irecv). Thus
deallocating your buffer after the MPI_Isend and MPI_Irecv is incorrect.
Also printing the supposedly received values (line 127) is incorrect as
there is no reason to have the non-blocking receive completed at that
moment.

  George.


On Thu, Jan 8, 2015 at 5:06 PM, Diego Avesani <diego.aves...@gmail.com>
wrote:

> Dear Tom, Dear Jeff, Dear all,
> Thanks again
>
> for Tom:
> you are right, I fixed it.
>
> for Jeff:
> if I do not insert the CALL MPI_BARRIER(MPI_COMM_WORLD, MPIdata%iErr)
> in the line 112, the program does not stop.
>
> Am I right?
> Here the new version
>
>
>
> Diego
>
>
> On 8 January 2015 at 21:12, Tom Rosmond <rosm...@reachone.com> wrote:
>
>> With array bounds checking your program returns an out-of-bounds error
>> in the mpi_isend call at line 104.  Looks like 'send_request' should be
>> indexed with 'sendcount', not 'icount'.
>>
>> T. Rosmond
>>
>>
>>
>> On Thu, 2015-01-08 at 20:28 +0100, Diego Avesani wrote:
>> > the attachment
>> >
>> > Diego
>> >
>> >
>> >
>> > On 8 January 2015 at 19:44, Diego Avesani <diego.aves...@gmail.com>
>> > wrote:
>> >         Dear all,
>> >         I found the error.
>> >         There is a  Ndata2send(iCPU) instead of Ndata2recv(iCPU).
>> >         In the attachment there is the correct version of the program.
>> >
>> >
>> >         Only one thing, could do you check if the use of MPI_WAITALL
>> >         and MPI_BARRIER is correct?
>> >
>> >
>> >         Thanks again
>> >
>> >
>> >
>> >
>> >
>> >         Diego
>> >
>> >
>> >
>> >         On 8 January 2015 at 18:48, Diego Avesani
>> >         <diego.aves...@gmail.com> wrote:
>> >                 Dear all,
>> >                 thanks thank a lot, I am learning a lot.
>> >
>> >
>> >
>> >                 I have written a simple program that send vectors of
>> >                 integers from a CPU to another.
>> >
>> >
>> >                 The program is written (at least for now) for 4 CPU.
>> >
>> >
>> >                 The program is quite simple:
>> >                 Each CPU knows how many data has to send to the other
>> >                 CPUs. This info is than send to the other CPUS. In
>> >                 this way each CPU knows how may data has to receive
>> >                 from other CPUs.
>> >
>> >
>> >                 This part of the program works.
>> >
>> >
>> >                 The problem is in the second part.
>> >
>> >
>> >                 In the second part, each processor sends a vector of
>> >                 integer to the other processor. The size is given and
>> >                 each CPU knows the size of the incoming vector form
>> >                 the first part of the program.
>> >
>> >
>> >                 In this second part the program fails and I do not
>> >                 know why.
>> >
>> >
>> >                 In the attachment you can find the program. Could you
>> >                 please help me. Problably I didn't understand properly
>> >                 the ISEND and IRECV subroutine.
>> >
>> >
>> >                 Thanks again
>> >
>> >
>> >
>> >                 Diego
>> >
>> >
>> >
>> >
>> >
>> >
>> > _______________________________________________
>> > users mailing list
>> > us...@open-mpi.org
>> > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>> > Link to this post:
>> http://www.open-mpi.org/community/lists/users/2015/01/26131.php
>>
>>
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
>> Link to this post:
>> http://www.open-mpi.org/community/lists/users/2015/01/26132.php
>>
>
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
> Link to this post:
> http://www.open-mpi.org/community/lists/users/2015/01/26137.php
>

Reply via email to