[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