Bug 8837 - Not a fully support for 64bits integers on MPI package
Summary: Not a fully support for 64bits integers on MPI package
Status: RESOLVED WONTFIX
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: x86_64 Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Chris Denice
QA Contact:
URL: http://www.diracprogram.org/doc/relea...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-27 12:13 CET by Andre alfcanova
Modified: 2016-08-23 09:43 CEST (History)
2 users (show)

See Also:
Source RPM: openmpi-1.6.3-3.mga3
CVE:
Status comment:


Attachments

Description Andre alfcanova 2013-01-27 12:13:17 CET
Description of problem:
Although the distribution is intended to arquitertura 64-bit is not supported 64-bit integers in this library for fortran language.



Version-Release number of selected component (if applicable):
openmpi-1.6.3-3.mga3



How reproducible:
When there is a need to compile DIRAC12 with 64-bit support.



Steps to Reproduce:
1. ./setup --fc=mpif90 --cc=mpicc --cxx=mpicxx --int64=on --mpi=on --prefix=/opt/DIRAC-12.3_mpi
2. make -j8
3. compile fail
Manuel Hiebel 2013-01-29 22:24:49 CET

Component: Release (media or process) => RPM Packages

Comment 1 Nic Baxter 2015-02-12 05:22:25 CET
Is this still current?

CC: (none) => nic

Comment 2 Andre alfcanova 2015-02-12 13:32:55 CET
Yes, still.
Comment 3 Nic Baxter 2015-02-13 05:26:33 CET
I installed openmpi.1.8.4-1.mga5 and  ran test
ompi_info -a | grep 'integer size'

result Fort integer size: 4
which indicates only 32 bit registers enabled.

Downloaded tarball openmpi-1.8.4.tar.bz2

and built using

 ./configure CFLAGS=-m64 CXXFLAGS=-m64 FFLAGS="-m64 -fdefault-integer-8" FCFLAGS="-m64 -fdefault-integer-8"

ompi_info -a | grep 'integer size'
result Fort integer size: 8
which indicates 64 bit registers enabled

I cannot check DIRAC12 compile as I don't have the source.

Andre can you try it?

Assignee: bugsquad => dirteat

Comment 4 Chris Denice 2015-02-13 11:18:41 CET
Hi there,
may someone be specific please ? What do you mean by 64bits is not supported ?

This option:

-fdefault-integer-8

simply forces fortran declaration:
real ::

to automatically becomes:
double precision ::

and has nothing to do with using 32bits of 64bits. If your code needs specific compilation options they may be added as usual after mpif90.
Comment 5 Chris Denice 2015-02-14 12:53:35 CET
Sorry, I meant all these options:

-fdefaut-integer-8 (integer -> integer(8))
-fdefault-real-8 (real -> real(8))
(etc... and also -m64)

I read the webpage of DIRAC program, that does not make any sense to me. You can completely use real(8) or integer(8) in your own code, and pass such numbers through MPI routines calls, without forcing compilation of openmpi at double precision.

For instance, all these types are already supported:
ompi_info -a | grep integer

      Fort integer size: 4
      Fort have integer1: yes
      Fort have integer2: yes
      Fort have integer4: yes
      Fort have integer8: yes
      Fort have integer16: no

Fort have real4: yes
         Fort have real8: yes
        Fort have real16: yes
          Fort real size: 4
         Fort real4 size: 4
         Fort real8 size: 8
        Fort real16 size: 16
         Fort real align: 4
        Fort real4 align: 4
        Fort real8 align: 8
       Fort real16 align: 16



So there is no bug in there, I switch to unconfirmed.

cheers,
Chris.

Status: NEW => UNCONFIRMED
Ever confirmed: 1 => 0

Comment 6 Nic Baxter 2015-02-14 13:49:14 CET
Thanks for looking at it Chris. The only time I have used Fortran was when I studied engineering in the dark ages (1982) so all of this is way above my head. I was just trying to help. Hopefully Andre will get something out of it.
Comment 7 Andre alfcanova 2016-08-22 14:34:20 CEST
Hi all,

The bug still in Mageia 5 and Mageia 6 sta1...

I suggest include in SPEC file in build section:

%build 
export FFLAGS="-m64 -fdefault-integer-8"
export FCFLAGS="-m64 -fdefault-integer-8"
export CFLAGS=-m64
export CXXFLAGS=-m64

Status: UNCONFIRMED => ASSIGNED
Ever confirmed: 0 => 1

Comment 8 Chris Denice 2016-08-23 09:43:18 CEST
Dear Andre,
as I said in my previous comment, could you be more specific on what is your problem?

If you need to compile a code with MPI, with integer(kind=8), you just have to append -fdefault-integer-8 to your own compilation flags. As mentioned above, you can have MPI integer messages of any integer size even though MPI is internally compiled with 4 bytes integer (which is the default on 64 bits machines). It does not sound to me a good idea to change the default behaviour of MPI just to ease the compilation of one specific program.

Unless you clarify the situation, I suspect your program "DIRAC" is buggy and you should fill a bug report with them.

Good luck.

Status: ASSIGNED => RESOLVED
Resolution: (none) => WONTFIX


Note You need to log in before you can comment on or make changes to this bug.