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/