[MPI3 Fortran] Fwd: Serious problem/bug in MPI libraries with the alignment of MPI_DOUBLE_PRECISION

Bill Long longb at cray.com
Tue Sep 27 17:01:54 CDT 2011


Hi Rolf,

Although you list below a "CrayMPI", for organizing the results, keep in 
mind that it is based on mpich2.



On 9/27/11 4:40 PM, Rolf Rabenseifner wrote:
> Here the summary of the feedback and a proposal
> to solve this inconsistency.
>

>
> A) The 4 / 8 / 4 group = alignment of MPI_DOUBLE_PRECISION is correct for (old-style) SEQUENCE derived types
>
> JeffSquyres_OpenMP_linux-x86-64-ifort.txt:    Intel     + OpenMPI  on x86-64      Results: 4 / 8 / 4
> FabTillier_Intel+MicrosoftMPI_out.txt:        Intel     + MS-MPI   on ?           Results: 4 / 8 / 4
>
> B) The 4 / 8 / 8 group = alignment of MPI_DOUBLE_PRECISION is correct for (modern) BIND(C) derived types
>
> Rajeev_mpich_out.ifort.x86-64.txt:            Intel     + mpich2   on x86-64      Results: 4 / 8 / 8
> Rolf_asama+cray_output.txt:                   Intel     + NEC-MPI? on asama       Results: 4 / 8 / 8
> BillLong_Cray_5compiler_out.txt:              Intel     + CrayMPI  on Cray XE6    Results: 4 / 8 / 8
> BrianSmith-IBM_outlog-bgp-xl.txt:             Intel     + IBM-XL   on BGP         Results: 4 / 8 / 8
> BrianSmith-IBM_outlog-xlf.txt:                xlf       + IBM-XL   on ?           Results: 4 / 8 / 8
>
> C) No problems because all DOUBLE PRECISION alignments are identical = 8
>
> BillLong_Cray_5compiler_out.txt:              PGI       + CrayMPI  on Cray XE6    Results: 8 / 8 / 8
> BillLong_Cray_5compiler_out.txt:              Cray      + CrayMPI  on Cray XE6    Results: 8 / 8 / 8
> BillLong_Cray_5compiler_out.txt:              gfortran  + CrayMPI  on Cray XE6    Results: 8 / 8 / 8
> BillLong_Cray_5compiler_out.txt:              pathscale + CrayMPI  on Cray XE6    Results: 8 / 8 / 8
> BrianSmith-IBM_outlog-gcc.txt:                gfortran  + IBM-XL   on BGQ         Results: 8 / 8 / 8
> JeffSquyres_OpenMP_linux-x86-64-gfortran.txt: gfortran  + OpenMPI  on x86-64      Results: 8 / 8 / 8
> JeffSquyres_OpenMP_osx-x86-84-gfortran.txt:   gfortran  + OpenMPI  on osx-x86-64  Results: 8 / 8 / 8
> Rajeev_gnu_laptop_out.txt:                    gfortran  + mpich2   on laptop      Results: 8 / 8 / 8
> Rajeev_mpich_out.gfortran.x86-64.txt:         gfortran  + mpich2   on x86-64      Results: 8 / 8 / 8
>
> D) No problems because all DOUBLE PRECISION alignments are identical = 4
>
> Rajeev_mpich_out.gfortran.ia32.txt:           gfortran  + mpich2   on ia32        Results: 4 / 4 / 4
> Rajeev_mpich_out.ifort.ia32.txt:              Intel     + mpich2   on ia32        Results: 4 / 4 / 4
>
> Proposal:
> ---------
>
> The goal of a standard is the possibility to write portable code.
> Therefore the answer should be standardized and not implementation-specific,
> or in other words, not defining it is the worst solution.
>
> I expect only a few Fortran codes are using arrays of derived types
> in Fortran.

My experience leads me to think that codes use arrays of derived types 
more often than you expect.

> The oldest library is mpich.
> Therefore I would propose to standardize Fortran alignments are based
> on BIND(C) which should be the same as in C.
>

This would seem to be the efficient solution.

Cheers,
Bill



-- 
Bill Long                                           longb at cray.com
Fortran Technical Support    &                 voice: 651-605-9024
Bioinformatics Software Development            fax:   651-605-9142
Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101





More information about the mpiwg-fortran mailing list