Dear Nick,
thank you,
The important things is that the MPI_TYPE_CREATE_STRUCT works.

Now I will proceed with the debug by myself, I will
check MPI_TYPE_CREATE_STRUCT ierr output and other part of my program.

Again thanks you

Diego


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

> Well it says
>
> MPI_ERR_TYPE: invalid datatype
>
> so I guess you have done something wrong. ;)
>
> You should debug as much as you can your self.
> 1) Check that your type-creation calls actually proceed as expected
> 2) Check that your type-commit actually proceed as expected
> 3) Telling us that "it is not working" does not tell us anything! You have
> probably changed the code several times since you started with some
> corrections, hence we cannot see if you have introduced other errors.
>
> 2014-10-03 13:38 GMT+00:00 Diego Avesani <diego.aves...@gmail.com>:
>
>> 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
>>>
>>
>>
>> _______________________________________________
>> 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/25440.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/25441.php
>

Reply via email to