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