I also get 8 from "call MPI_Type_size(MPI_DOUBLE_PRECISION, size, mpierr)", but really I don't think this is the issue anymore. I mean I checked on my school cluster where OpenMPI has also been compiled with the intel64 compilers and "Fort dbl prec size:" also returns 4 but unlike on my Mac the code runs fine there. I am just saying that we should stop worrying about ompi_info output and wait until Jeff Squyres analyses my build output files that I sent to the list earlier. I might be wrong too as I have no idea of what's going on. -- Hugo Gagnon
On Wed, 28 Jul 2010 17:07 -0400, "Gus Correa" <g...@ldeo.columbia.edu> wrote: > Hi All > > Martin Siegert wrote: > > On Wed, Jul 28, 2010 at 01:05:52PM -0700, Martin Siegert wrote: > >> On Wed, Jul 28, 2010 at 11:19:43AM -0400, Gus Correa wrote: > >>> Hugo Gagnon wrote: > >>>> Hi Gus, > >>>> Ompi_info --all lists its info regarding fortran right after C. In my > >>>> case: > >>>> Fort real size: 4 > >>>> Fort real4 size: 4 > >>>> Fort real8 size: 8 > >>>> Fort real16 size: 16 > >>>> Fort dbl prec size: 4 > >>>> Does it make any sense to you? > >>> Hi Hugo > >>> > >>> No, dbl prec size 4 sounds weird, should be 8, I suppose, > >>> same as real8, right? > >>> > >>> It doesn't make sense, but that's what I have (now that you told me > >>> that "dbl" , not "double", is the string to search for): > >>> > >>> $ Fort dbl prec size: 4 > >>> Fort dbl cplx size: 4 > >>> Fort dbl prec align: 4 > >>> Fort dbl cplx align: 4 > >>> > >>> Is this a bug in OpenMPI perhaps? > >>> > >>> I didn't come across to this problem, most likely because > >>> the codes here don't use "double precision" but real*8 or similar. > >>> > >>> Also make sure you are picking the right ompi_info, mpif90/f77, mpiexec. > >>> Often times old versions and tangled PATH make things very confusing. > >> This is indeed worrisome as I confirm the findings on our clusters both > >> with ompi 1.3.3 and 1.4.1: > >> > >> ompi_info --all | grep -i fort > >> ... > >> Fort real size: 4 > >> Fort real4 size: 4 > >> Fort real8 size: 8 > >> Fort real16 size: -1 > >> Fort dbl prec size: 4 > >> Fort cplx size: 4 > >> Fort dbl cplx size: 4 > >> Fort cplx8 size: 8 > >> Fort cplx16 size: 16 > >> Fort cplx32 size: -1 > >> Fort integer align: 4 > >> Fort integer1 align: 1 > >> Fort integer2 align: 2 > >> Fort integer4 align: 4 > >> Fort integer8 align: 8 > >> Fort integer16 align: -1 > >> Fort real align: 4 > >> Fort real4 align: 4 > >> Fort real8 align: 8 > >> Fort real16 align: -1 > >> Fort dbl prec align: 4 > >> Fort cplx align: 4 > >> Fort dbl cplx align: 4 > >> Fort cplx8 align: 4 > >> Fort cplx16 align: 8 > >> ... > >> > >> And this is the configure output: > >> checking if Fortran 77 compiler supports REAL*8... yes > >> checking size of Fortran 77 REAL*8... 8 > >> checking for C type corresponding to REAL*8... double > >> checking alignment of Fortran REAL*8... 1 > >> ... > >> checking if Fortran 77 compiler supports DOUBLE PRECISION... yes > >> checking size of Fortran 77 DOUBLE PRECISION... 8 > >> checking for C type corresponding to DOUBLE PRECISION... double > >> checking alignment of Fortran DOUBLE PRECISION... 1 > >> > >> But the following code actually appears to give the correct results: > >> > >> program types > >> use mpi > >> implicit none > >> integer :: mpierr, size > >> > >> call MPI_Init(mpierr) > >> call MPI_Type_size(MPI_DOUBLE_PRECISION, size, mpierr) > >> print*, 'double precision size: ', size > >> call MPI_Finalize(mpierr) > >> end > >> > >> mpif90 -g types.f90 > >> mpiexec -n 1 ./a.out > >> double precision size: 8 > >> > >> Thus is this a bug in ompi_info only? > > > > answering my own question: > > This does not look right: > > > > ompi/tools/ompi_info/param.cc: > > > > out("Fort dbl prec size", > > "compiler:fortran:sizeof:double_precision", > > OMPI_SIZEOF_FORTRAN_REAL); > > > > that should be OMPI_SIZEOF_FORTRAN_DOUBLE_PRECISION. > > > > - Martin > > Hopefully Martin may got it and the issue is restricted to ompi_info. > Thanks, Martin, for writing and running the little diagnostic code, > and for checking the ompi_info guts! > > Still, the alignment under Intel may or may not be right. > And this may or may not explain the errors that Hugo has got. > > FYI, the ompi_info from my OpenMPI 1.3.2 and 1.2.8 > report exactly the same as OpenMPI 1.4.2, namely > Fort dbl prec size: 4 and > Fort dbl prec align: 4, > except that *if the Intel Fortran compiler (ifort) was used* > I get 1 byte alignment: > Fort dbl prec align: 1 > > So, this issue has been around for a while, > and involves both the size and the alignment (in Intel) > of double precision. > > We have a number of pieces of code here where grep shows > MPI_DOUBLE_PRECISION. > Not sure how much of it has actually been active, as there are always > lots of cpp directives to select active code. > > In particular I found this interesting snippet: > > if (MPI_DOUBLE_PRECISION==20 .and. MPI_REAL8==18) then > ! LAM MPI defined MPI_REAL8 differently from MPI_DOUBLE_PRECISION > ! and LAM MPI's allreduce does not accept on MPI_REAL8 > MPIreal_t = MPI_DOUBLE_PRECISION > else > MPIreal_t = MPI_REAL8 > endif > > where eventually MPIreal_t is what is used as > the MPI type in some MPI calls, particularly in MPI_Allreduce, > which is the one that triggered all this discussion > (see this thread Subject line) when Hugo first > asked his original question. > > Hopefully the if branch on the code snippet above worked alright, > because here in our OpenMPIs 1.4.2, 1.3.2, and 1.2.8, > MPI_DOUBLE_PRECISION value is 17, > which should have safely produced > MPIreal_t = MPI_REAL8 > > I have a lot more of code to check, but maybe not. > If the issue is really restricted to ompi_info that would be a > big relief. > > Many thanks, > Gus Correa > --------------------------------------------------------------------- > Gustavo Correa > Lamont-Doherty Earth Observatory - Columbia University > Palisades, NY, 10964-8000 - USA > --------------------------------------------------------------------- > > > _______________________________________________ > > 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 > -- Hugo Gagnon