Paul,

short answer, i have no clue.


that being said, consider the following simple program

program test_mpi_sizeof
implicit none
include 'mpif.h'

integer i
double precision d

integer sze,ierr
call MPI_Sizeof(i, sze, ierr)
write (*,*) 'MPI_Sizeof(integer) = ', sze

call MPI_Sizeof(d, sze, ierr)
write (*,*) 'MPI_Sizeof(double precision) = ', sze
stop
end program


on one hand, Open MPI (built with intel compiler)

- build successfully (compile & link)

- produces the correct output


on the other hand, Intel MPI fails to link (MPI_Sizeof is undefined)


the best i can do is dodge the question and point to the MPI Forum
http://mpi-forum.org/docs/mpi-3.1/mpi31-report/node411.htm :
"The use of the mpif.h include file is strongly discouraged and may be deprecated in a future version of MPI."

as far as i understand, mpif.h was meant to be used with F77 programs or obsolete compilers that do not support modules among other things.

/* MPI_Sizeof requires compiler support for module and a few extra F90 goodies */

the piece of code you posted is a Fortran module, so i do not see any rationale for using "INCLUDE 'mpif.h'" over "USE mpi" (or even better, "USE mpi_f08")


Cheers,

Gilles

On 11/21/2016 11:55 PM, Paul Kapinos wrote:
Dear Open MPI developer,

QE is an MPI program, cf.
http://qe-forge.org/gf/download/frsrelease/224/1044/qe-6.0.tar.gz

In FFTXlib a questionable source code part is contained which cannot be compiled using version 17 of the Intel compilers and Open MPI; I've condensed it (see attachment).

Note that
- using Intel MPI all tested compilers (Intel/GCC/Oracle Studio/PGI) can compile stick_base_TEST.f90 with no errors/warnings issued
- using Open MPI the same is true for GCC/Oracle Studio/PGI;
- using Intel compiler up to version 16 and Open MPI, *warnings* like (1) are issued (compilation succeds); - using Intel compiler /17, *errors* like (2) are issued (compilation fails). - when 'PRIVATE' statement in line #3 removed, also Intel compiler compile the snippet with no error.

Well the questions is
- is stick_base_TEST.f90 a correct MPI code?
- if YES why does the Intel/17 + OpenMPI combination do not like this?
If NO why to hell none of other compiler+MPI combinations complain about this? :o)

Have a nice day,

Paul Kapinos

P.S. Did you noticed also this one?
https://www.mail-archive.com/users@lists.open-mpi.org//msg30320.html



- 1 -------------------------------------------------------------------------- /opt/MPI/openmpi-1.10.4/linux/intel_16.0.2.181/include/mpif-sizeof.h(2254): warning #6738: The type/rank/keyword signature for this specific procedure matches another specific procedure that shares the same generic-name. [PMPI_SIZEOF_REAL64_R15]
      SUBROUTINE PMPI_Sizeof_real64_r15(x, size, ierror)
-----------------^

- 2 -------------------------------------------------------------------------- /opt/MPI/openmpi-1.10.4/linux/intel_17.0.0.064/include/mpif-sizeof.h(220): error #5286: Ambiguous generic interface MPI_SIZEOF: previously declared specific procedure MPI_SIZEOF_COMPLEX32_R13 is not distinguishable from this declaration. [MPI_SIZEOF_COMPLEX32_R13]
      SUBROUTINE MPI_Sizeof_complex32_r13(x, size, ierror)
-----------------^





_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel

_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel

Reply via email to