[Mpi3-tools] [MPI3 Fortran] MPI 3.0: Fortran 2008 interface - issue with the LOGICAL kind
burnus at net-b.de
Mon Apr 22 03:09:44 CDT 2013
Bill Long wrote:
>> 2) The Fortran implementation will take the performance penalty of using
>> a wrapper routine to perform the operation (discounting sophisticated
>> IPA/WPA (interprocedural analysis/whole program analysis)). Taking this
>> performance penalty is common but not universal.
> I agree there will be call overhead for the user who accesses MPI
> through the include file mechanism, unless, as you say, there is a
> sophisticated IPA/WPA mode in the compiler. However, the compiler
> does not have to be all that sophisticated to inline a module
> routine. The compiler has to know how to find the module information
> at compile time, and could have access to all the information needed
> to inline the wrapper.
My possibly wrong impression is that only the Cray Fortran compiler does
so. I think most (all?) other compiler have a .mod file which contains
the interface of the procedures but not the procedure code itself.
Hence, they do not do any inlining at this stage. Those compilers will
presumably only do this kind of optimization with multi-file
interprocedural optimization (IPO)/link-time optimization (LTO).
That crayftn does this inlining earlier is probably also a consequence
of (by default) storing the module-interface information in the .o file
instead of using a separate .mod file. If one already has the .o file,
considering IPO is more obvious than if assembler code and module
information are separated into .mod and .o files.
* * *
Regarding the latest PDF, I also have two nits:
* [p.13,ll. 5-17] The example lists several directives to disable TKR
checks. It should add the following* to the list:
!GCC$ ATTRIBUTES NO_ARG_CHECK
which GCC/gfortran now supports.*
* [p.17] The TS29113 reference should be updated now that it is an
approved ISO Technical Specification. Additionally, the name has now an
"of Fortran" in the name: "Further Interoperability of Fortran with C"
and latest draft (FDTS) is N1942, which contains some minor changes. See
* Cf. http://gcc.gnu.org/gcc-4.9/changes.html
More information about the mpiwg-tools