Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] fortran program with integer kind=8 using openmpi
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2012-07-03 15:45:09


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.Secretan_at_[hidden]
>
> Avant d'imprimer, pensez à l'environnement
>
>
> -----Message d'origine-----
> De : users-bounces_at_[hidden] [mailto:users-bounces_at_[hidden]] 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.Secretan_at_[hidden]
>>
>> Avant d'imprimer, pensez à l'environnement
>> ________________________________________
>> De : users-bounces_at_[hidden] [users-bounces_at_[hidden]] de la
>> part de William Au [au_wai_chung_at_[hidden]] Date d'envoi : 29 juin
>> 2012 19:15 À : users_at_[hidden] 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 <jsquyres_at_[hidden]>
>> Subject: Re: [OMPI users] fortran program with integer kind=8 using
>> openmpi
>> To: <warren_at_[hidden]>, Open MPI Users <users_at_[hidden]>
>> Message-ID: <6FFEA644-3F39-4B6E-ADD6-3721F485525F_at_[hidden]>
>> 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
>> jsquyres_at_[hidden]
>> For corporate legal information go to:
>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>
>>
>> <type_size.for>_______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
> --
> Jeff Squyres
> jsquyres_at_[hidden]
> For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/
>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to: http://www.cisco.com/web/about/doing_business/legal/cri/