Some random notes:

1. I see that you're compiling your program with "-r8 -fpp".  Did you 
compile/install OMPI with those same options?

2. You haven't shown your full program; I would suggest using "use mpi" instead 
of "include 'mpif.h'", if possible.  This will help catch compile-time errors.  
And if you have a new-enough compiler (e.g., ifort or gcc 4.9.x), you should 
use update to the new "use mpi_f08" Fortran interface, if possible.



On Oct 3, 2014, at 9:57 AM, Diego Avesani <diego.aves...@gmail.com> wrote:

> 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
> 
> _______________________________________________
> 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/25442.php


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

Reply via email to