Dear Nick,
after that I call:

 CALL MPI_Sendrecv(P_SEND,nptSend,MPI_PARTICLE_TYPE,BCPU,201,&

P_RECV,nptSend,MPI_PARTICLE_TYPE,TCPU,201,&

 MPI_COMM_WORLD,MPI_STATUS_IGNORE,MPI%iErr)

but I have the following error

[diedroLap:16824] *** An error occurred in MPI_Sendrecv
[diedroLap:16824] *** reported by process [139856324001793,139852725092354]
[diedroLap:16824] *** on communicator MPI_COMM_WORLD
[diedroLap:16824] *** MPI_ERR_TYPE: invalid datatype
[diedroLap:16824] *** MPI_ERRORS_ARE_FATAL (processes in this communicator
will now abort,
[diedroLap:16824] ***    and potentially your MPI job)

Do you know something about this errors?

Thanks again

Diego


On 3 October 2014 15:29, Nick Papior Andersen <nickpap...@gmail.com> wrote:

> Yes, I guess this is correct. Testing is easy! Try testing!
> As I stated, I do not know enough about the custom type in MPI, this was
> my hunch feeling...
>
> 2014-10-03 13:23 GMT+00:00 Diego Avesani <diego.aves...@gmail.com>:
>
>> Dear Nick,
>> thanks again.
>> After reading your post I have thought to compile as
>>
>> mpif90 -r8 *.f90
>>
>
>
>> and to have this type variable
>>
>> TYPE tParticle
>>     SEQUENCE
>>     INTEGER :: ip
>>     INTEGER :: fake
>>     REAL    :: RP(2)
>>     REAL    :: QQ(4)
>> END TYPE tParticle
>>
>> where I use fake to have 4 + 4 bytes, and then I have
>> TYPES(1)=MPI_INTEGER
>> TYPES(2)=MPI_DOUBLE_PRECISION
>> TYPES(3)=MPI_DOUBLE_PRECISION
>> nBLOCKS(1)=2
>> nBLOCKS(2)=2
>> nBLOCKS(3)=4
>>
>> Am I wrong? Do I have correctly understood?
>>
>
> Really Really thanks
>>
>>
>> Diego
>>
>>
>> On 3 October 2014 15:10, Nick Papior Andersen <nickpap...@gmail.com>
>> wrote:
>>
>>>
>>>
>>> 2014-10-03 13:00 GMT+00:00 Diego Avesani <diego.aves...@gmail.com>:
>>>
>>>> Dear all, dear Nick,
>>>> thanks lot.
>>>> I have understood something, so I have create this variable type:
>>>>
>>>>   TYPE tParticle
>>>>     SEQUENCE
>>>>     INTEGER :: ip
>>>>     INTEGER :: fake
>>>>     REAL    :: RP(2)
>>>>     REAL    :: QQ(4)
>>>>   END TYPE tParticle
>>>>
>>> But did it work? :) Remember to tell mpi about the padding (add one more
>>> type).
>>> Also, for cosmetic reasons I would do this:
>>> TYPE tParticle
>>> sequence
>>> integer :: ip
>>> real :: rp(2), qq(4)
>>> ! THIS IS A PADDING VARIABLE (SHOULD NEVER BE USED)
>>> integer :: pad
>>> end type
>>>
>>>>
>>>> In the point number 2, do you mean to insert some align options?
>>>>
>>> Search around for your compiler. However, this will be "forcing" your
>>> program to certain compilers, I would not recommend this (unless you have
>>> specific reasons anyway).
>>>
>>>>
>>>> For the point number 3, I do not understand where where I am wrong.
>>>> This is my code
>>>>
>>>>
>>>>      TYPES(1)=MPI_INTEGER
>>>>
>>> Here it is wrong.
>>> If you compile with -i8 your integer is not an integer, but a long. Your
>>> displacements should be correct, but not your designation of the data-type
>>> for mpi.
>>>
>>>>
>>>>      TYPES(2)=MPI_DOUBLE_PRECISION
>>>>      TYPES(3)=MPI_DOUBLE_PRECISION
>>>>      nBLOCKS(1)=2
>>>>      nBLOCKS(2)=2
>>>>      nBLOCKS(3)=4
>>>>
>>>>      DISPLACEMENTS(1)=0
>>>>      DISPLACEMENTS(2)=sizeof(dummy%ip)+sizeof(dummy%fake)
>>>>
>>>>  
>>>> DISPLACEMENTS(3)=sizeof(dummy%ip)+sizeof(dummy%fake)+sizeof(dummy%RP(1))+sizeof(dummy%RP(2))
>>>>
>>>>      CALL
>>>> MPI_TYPE_CREATE_STRUCT(3,nBLOCKS,DISPLACEMENTS,TYPES,MPI_PARTICLE_TYPE,MPI%ierr)
>>>>
>>>> This is how I compile
>>>>
>>>> mpif90 -r8 *.f90
>>>>
>>> No, that was not what you said!
>>> You said you compiled it using:
>>> mpif90 -r8 -i8 *.f90
>>>
>>>
>>>> Again, really really Thanks
>>>>
>>>> Diego
>>>>
>>>>
>>>> On 3 October 2014 14:30, Nick Papior Andersen <nickpap...@gmail.com>
>>>> wrote:
>>>>
>>>>> I would never compile a fortran program relying on a specific compiler
>>>>> option! I would never use r8/i8!
>>>>> I would highly encourage you to explicitly set the precision of each
>>>>> variable if you need specific variable precision. There are plenty of
>>>>> tutorials around for this (selected_real/int_kind).
>>>>>
>>>>> Secondly, the warning of mis-alignment is due to the data type not
>>>>> being a multiple of 8. You can pad it with additional bytes to reach a
>>>>> multiple of 8 (in this case add a fake integer, or character(len=4)).
>>>>> I do not know if sequence is needed for the mpi data type (I guess it
>>>>> is needed when dealing with arrays of types, but again, I am not fully 
>>>>> sure
>>>>> about this...).
>>>>>
>>>>> A couple of options:
>>>>> 1) I think sequence should work if you pad it to align with 8 bytes.
>>>>> 2) add code that is directive specified against the compiler to tell
>>>>> the exact alignment of the data type
>>>>> 3) Your compilation of -r8 -i8 does probably not work due to the
>>>>> integer being long, and hence your data type of MPI_INTEGER (you did not
>>>>> tell us whether you corrected this)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 2014-10-03 11:07 GMT+00:00 Diego Avesani <diego.aves...@gmail.com>:
>>>>>
>>>>>> Dears,
>>>>>> First of all. Really really thanks for you help, I am learning a lot.
>>>>>> Second:
>>>>>> I try to study the MPI_TYPE_CREATE_STRUCT and all the things look
>>>>>> correct.
>>>>>>
>>>>>> I use Intel Fortran compiler and when I compile with -r8 means that I
>>>>>> am compiling in double precision.
>>>>>>
>>>>>> About Nick suggestion:
>>>>>> Coding
>>>>>>
>>>>>>   TYPE tParticle
>>>>>>     SEQUENCE
>>>>>>     INTEGER :: ip
>>>>>>     REAL    :: RP(2)
>>>>>>     REAL    :: QQ(4)
>>>>>>   END TYPE tParticle
>>>>>>
>>>>>>
>>>>>> if I compile with
>>>>>> mpif90 -r8  *.f90
>>>>>>
>>>>>> I get the following error:
>>>>>> warning #6379: The structure contains one or more misaligned fields.
>>>>>>   [TPARTICLE] TYPE tParticle
>>>>>>
>>>>>>
>>>>>> I can only compile as:
>>>>>> mpif90 -r8 -i8 *.f90
>>>>>>
>>>>>> But I get the same error:
>>>>>>
>>>>>> An error occurred in MPI_Cart_create
>>>>>> [diedroLap:12267] *** reported by process
>>>>>> [139817172008961,139814070386689]
>>>>>> [diedroLap:12267] *** on communicator MPI_COMM_WORLD
>>>>>> [diedroLap:12267] *** MPI_ERR_OTHER: known error not in list
>>>>>> [diedroLap:12267] *** MPI_ERRORS_ARE_FATAL (processes in this
>>>>>> communicator will now abort,
>>>>>> [diedroLap:12267] ***    and potentially your MPI job)
>>>>>>
>>>>>>
>>>>>>
>>>>>> What I can do?
>>>>>> Thanks a lot
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 3 October 2014 08:15, Nick Papior Andersen <nickpap...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> sequence
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 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/2014/10/25434.php
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Kind regards Nick
>>>>>
>>>>> _______________________________________________
>>>>> 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/2014/10/25435.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/2014/10/25436.php
>>>>
>>>
>>>
>>>
>>> --
>>> Kind regards Nick
>>>
>>> _______________________________________________
>>> 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/2014/10/25437.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/2014/10/25438.php
>>
>
>
>
> --
> Kind regards Nick
>
> _______________________________________________
> 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/2014/10/25439.php
>

Reply via email to