FWIW: I think you'll probably run into issues with MPI attributes (e.g., MPI_COMM_ATTR_SET / GET).
I'll file a ticket about those... On Jul 3, 2012, at 3:29 PM, Secretan Yves wrote: > Hi, > > I applied the patch of ticket #3148 to my version of openmpi 1.6 and it does > the job .... at least for me. > > Thanks' for the prompt fix. > > Yves Secretan > yves.secre...@ete.inrs.ca > > Avant d'imprimer, pensez à l'environnement > > > -----Message d'origine----- > De : users-boun...@open-mpi.org [mailto:users-boun...@open-mpi.org] De la > part de Jeff Squyres > Envoyé : 2 juillet 2012 15:55 > À : Open MPI Users > Objet : Re: [OMPI users] fortran program with integer kind=8 using openmpi > > Huh. That's weird. I'll file a ticket. > > FWIW, I think compiling OMPI with -i8 worked at one time, but it's probably > little-used/little-tested. It may have grown some bit-rot over time (like > this case). > > > > On Jun 30, 2012, at 12:34 PM, Secretan Yves wrote: > >> Well, >> >> With openmpi compiled with Fortran default integer*8, >> MPI_TYPE_2INTEGER seem to have an incorrect size. The attached Fortran >> program shows it, >> >> When run on openmpi with integer*8 >> Size of MPI_INTEGER is 8 >> Size of MPI_INTEGER4 is 4 >> Size of MPI_INTEGER8 is 8 >> Size of MPI_2INTEGER is 8 <-- Should be 16 >> >> When run on "normal" openmpi >> Size of MPI_INTEGER is 4 >> Size of MPI_INTEGER4 is 4 >> Size of MPI_INTEGER8 is 8 >> Size of MPI_2INTEGER is 8 >> >> >> Yves Secretan >> yves.secre...@ete.inrs.ca >> >> Avant d'imprimer, pensez à l'environnement >> ________________________________________ >> De : users-boun...@open-mpi.org [users-boun...@open-mpi.org] de la >> part de William Au [au_wai_ch...@hotmail.com] Date d'envoi : 29 juin >> 2012 19:15 À : us...@open-mpi.org Objet : Re: [OMPI users] fortran >> program with integer kind=8 using openmpi >> >> My concern is how do the C side know fortran integer using 8 bytes? >> My valgrind check show something like: >> >> ==8482== Invalid read of size 8 >> ==8482== at 0x5F4A50E: ompi_op_base_minloc_2integer >> (op_base_functions.c:631) >> ==8482== by 0xBF70DD1: ompi_coll_tuned_allreduce_intra_recursivedoubling >> (op.h:498) >> ==8482== by 0x5F031CB: PMPI_Allreduce (pallreduce.c:105) >> ==8482== by 0x62E2F22: PMPI_ALLREDUCE (pallreduce_f.c:77) >> ==8482== by 0x5C8934: mumps_276_ (mumps_part9.F:4667) >> ==8482== by 0x54D89A: dmumps_ (dmumps_part1.F:157) >> ==8482== by 0x43D358: dmumps_f77_ (dmumps_part3.F:6651) >> ==8482== by 0x41420C: dmumps_c (mumps_c.c:422) >> ==8482== by 0x412CB4: main (my_cExample_client.c:80) >> ==8482== Address 0x7369608 is 0 bytes after a block of size 8 alloc'd >> ==8482== at 0x4A0610C: malloc (vg_replace_malloc.c:195) >> ==8482== by 0xBF709B9: ompi_coll_tuned_allreduce_intra_recursivedoubling >> (coll_tuned_allreduce.c:158) >> ==8482== by 0x5F031CB: PMPI_Allreduce (pallreduce.c:105) >> ==8482== by 0x62E2F22: PMPI_ALLREDUCE (pallreduce_f.c:77) >> ==8482== by 0x5C8934: mumps_276_ (mumps_part9.F:4667) >> ==8482== by 0x54D89A: dmumps_ (dmumps_part1.F:157) >> ==8482== by 0x43D358: dmumps_f77_ (dmumps_part3.F:6651) >> ==8482== by 0x41420C: dmumps_c (mumps_c.c:422) >> ==8482== by 0x412CB4: main (my_cExample_client.c:80) >> >> >> The fortran side: >> >> INTEGER IN( 2 ), OUT( 2 ) >> >> CALL MPI_ALLREDUCE( IN, OUT, 1, MPI_2INTEGER, MPI_MINLOC, >> & COMM, IERR) >> >> The compiler options will take care of IN be INTEGER*8, but will it do >> the same for MPI_2INTEGER in the C side >> >> Thanks. >> >> Regards, >> >> William >> >> >> >> Date: Fri, 29 Jun 2012 07:03:18 -0400 >> From: Jeff Squyres <jsquy...@cisco.com> >> Subject: Re: [OMPI users] fortran program with integer kind=8 using >> openmpi >> To: <war...@atmos.washington.edu>, Open MPI Users <us...@open-mpi.org> >> Message-ID: <6ffea644-3f39-4b6e-add6-3721f4855...@cisco.com> >> Content-Type: text/plain; charset=iso-8859-1 >> >> On Jun 28, 2012, at 8:37 PM, David Warren wrote: >> >>> You should not have to recompile openmpi, but you do have to use the >>> correct type. You can check the size of integers in your fortrana nd use >>> MPI_INTEGER4 or MPI_INTEGER8 depending on what you get. >> >> If you configure ompi with -fdefault-integer-8, then OMPI will assume that >> Fortran integers are always 8 bytes, so be sure to also compile all of your >> MPI applications the same way. Indeed, you may want to configure OMPI with >> something like: >> >> ./configure FCFLAGS=-fdefault-integer-8 FFLAGS=-fdefault-integer-8 \ >> --with-wrapper-fflags=-fdefault-integer-8 \ >> --with-wrapper-fcflags=-fdefault-integer-8 >> >> This will add -fdefault-integer-8 to the mpif77 and mpif90 command lines >> automatically so that you *can't* compile without that flag. >> >> Be aware that 8-byte Fortran integers *should work* in Open MPI, but it is >> probably not well tested. You may well run into some issues; be sure to let >> us know if you run into bugs. Sending small test programs that show the >> problem are usually the best way to help us identify/fix the precise problem. >> >>> in gfortran use >>> integer i >>> if(sizeof(i) .eq. 8) then >>> mpi_int_type=MPI_INTEGER8 >>> else >>> mpi_int_type=MPI_INTEGER4 >>> endif >> >> I don't think that this should be necessary -- as long as you configured >> OMPI with the 8-byte-integer setting, then MPI_INTEGER should represent an 8 >> byte integer. >> >> -- >> Jeff Squyres >> jsquy...@cisco.com >> For corporate legal information go to: >> http://www.cisco.com/web/about/doing_business/legal/cri/ >> >> >> <type_size.for>_______________________________________________ >> users mailing list >> us...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/users > > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users -- Jeff Squyres jsquy...@cisco.com For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/