Re: [mpich-discuss] missing Fortran bindings in MPICH
Hi, Michael, You are right. I found MPI_Finalize did not an explicit interface in MPICH-3.0.4. The problem was fixed at least in MPICH-3.1.3. Intel Fortran compiler current does not TS29113. I will tell the Intel MPI team we need this feature. As I mentioned before, Cray ftn supports mpi_f08. From the website, I also think the latest IBM XLF is able to support mpi_f08, thought I don't have access to the software and be able to try it. We are going to add explicit interfaces for all routines in "use mpi". I will keep you updated. Thank you. --Junchao Zhang On Mon, Dec 15, 2014 at 4:26 AM, <[email protected]> wrote:
Dear Junchao,
In another email of today to [email protected] I attached my sharedmemtest.f90 test program.
At the end of that file I added a small sbr check_ftn_bindings . It is for checking for missing explicit Ftn-interfaces in the mpi-module.
If you activate the USE-stmts in that sbr, you will get this output at compile time (with MPICH-3.0.4 and INTEL-14.0.1 on a Linux-cluster):
rachner@master:~/dat> mpif90 sharedmemtest.f90
sharedmemtest.f90(246): error #6580: Name in only-list does not exist. [MPI_FINALIZE]
use MYMPI, only: MPI_INIT, MPI_BARRIER, MPI_FINALIZE & ! <-- MPI-2 routines
-----------------------------------------------^
sharedmemtest.f90(249): error #6580: Name in only-list does not exist. [MPI_WIN_ALLOCATE_SHARED]
use MYMPI, only: MPI_WIN_ALLOCATE_SHARED, MPI_WIN_SHARED_QUERY, MPI_GET_LIBRARY_VERSION ! <-- MPI-3 routines
------------------------^
sharedmemtest.f90(249): error #6580: Name in only-list does not exist. [MPI_WIN_SHARED_QUERY]
use MYMPI, only: MPI_WIN_ALLOCATE_SHARED, MPI_WIN_SHARED_QUERY, MPI_GET_LIBRARY_VERSION ! <-- MPI-3 routines
-------------------------------------------------^
compilation aborted for sharedmemtest.f90 (code 1)
rachner@master:~/dat>
You can see, that also for sbr MPI_FINALIZE there is no explicit Ftn-interface in the mpi-module (“use mpi”).
(By the way: In our MPICH-3.0.4 implementation there exist no mpi_base.f90, only a mpi_base.mod file.)
It is a good investment in the future, that MPICH has provided explicit interfaces now for the mpi-f08 module.
But: Do normal Ftn-compilers already support Ftn2008 features already sufficiently, so that we can actually use that mpi_f08 module?
There is the problem, I think.
Have you tried, whether it works for the INTEL-Ftn-compiler?
If it does not work, I suggest, you may contact INTEL, telling them, which Ftn08-feature are desirable but still missing in their Ftn95 compiler.
Greetings
Michael Rachner
*Von:* Junchao Zhang [mailto:[email protected]] *Gesendet:* Freitag, 12. Dezember 2014 18:05 *An:* <[email protected]> *Betreff:* Re: [mpich-discuss] missing Fortran bindings in MPICH
Hi, Michael,
I checked and found MPI_FINALIZE did have an explicit interface, at least in MPICH-3.1.3. You can search the file mpi_base.f90 in your MPICH build.
We recently fixed the explicit interface problem in MPI Fortran 2008 bindings. You need to "use mpi_f08" in your code. A paper on that is at http://dl.acm.org/citation.cfm?id=2642777
The new bindings are already included in MPICH-3.2a1. It requires Fortran2008 + TS29113 capable compilers, such as Cray ftn 8.3.3+ or gfortran-dev. If you'd like to have a try, I can instruct you how to do that.
Thanks.
--Junchao Zhang
On Fri, Dec 12, 2014 at 5:55 AM, <[email protected]> wrote:
Dear developers of MPICH,
For your convenience, I forward the emails in mvapich-discuss concerning the missing Fortran bindings. Possibly this I can encourage you a bit, adding (as OPENMPI did it successfully) the missing explicit Ftn-interfaces in the mpi-module for those MPI-routines with parameters of "Choice"-type?
At least: You may add the explicit Ftn-interface for the sbr MPI_FINALIZE . It is missing in MPICH-3.0.4 too.
Greetings Michael Rachner
-----Ursprüngliche Nachricht----- Von: mvapich-discuss [mailto:[email protected]] Im Auftrag von [email protected] Gesendet: Freitag, 12. Dezember 2014 12:38 An: [email protected] Betreff: [mvapich-discuss] WG: WG: missing Fortran bindings in MVAPICH2-2.1a
Sorry, I wanted to send my email not to Jonathan alone, but to the mvapich-discuss. Michael
-----Ursprüngliche Nachricht----- Von: Rachner, Michael Gesendet: Freitag, 12. Dezember 2014 10:03 An: 'Jonathan Perkins' Betreff: AW: [mvapich-discuss] WG: missing Fortran bindings in MVAPICH2-2.1a
Thank You, Jonathan, for this hint. Indeed, the problem with the missing explicit Ftn-interfaces in the mpi-module are the arguments of "choice"-type. Fortran 95 don't like them. So the MPI-3.0 Standard document contains a complicated chapter 17.1 with these things. As a consequence, MPICH seems to have chosen the slim way omitting in the mpi-module ("use mpi") the explicit Ftn-interfaces for MPI-routines with choice-type arguments, whereas OPENMPI has chosen the cumbercome way providing the explicit Ftn-interfaces even for these MPI-routines. They succeeded. For details: In November there were some emails discussing this issue in the OPENMPI-forum.
Greetings Michael Rachner
-----Ursprüngliche Nachricht----- Von: Jonathan Perkins [mailto:[email protected]] Gesendet: Donnerstag, 11. Dezember 2014 16:17 An: Rachner, Michael Cc: [email protected] Betreff: Re: [mvapich-discuss] WG: missing Fortran bindings in MVAPICH2-2.1a
Hello Michael. My investigation turned up the same issue in MPICH-3.1.3. MVAPICH2-2.1a is based on MPICH-3.1.2 so it inherits the same behavior.
Here is a snippet from MPICH's user guide:
4.2 Special Issues for Fortran
MPICH provides two kinds of support for Fortran programs. For Fortran 77 programmers, the file mpif.h provides the definitions of the MPI constants such as MPI COMM WORLD. Fortran 90 programmers should use the MPI module instead; this provides all of the definitions as well as interface definitions for many of the MPI functions. However, this MPI module does not provide full Fortran 90 support; in particular, interfaces for the routines, such as MPI Send, that take “choice” arguments are not provided.
It sounds like these are routines with ``choice'' arguments.
On Thu, Dec 11, 2014 at 01:29:03PM +0000, [email protected] wrote:
Dear developers,
I have just found, that exactly the same 11 missing Ftn-interfaces are also missing in MPICH-3.0.4, MSMPI-5.0, IMPI-5.0.0 . So that looks, as if you all have inherited these missing interfaces from MPICH.
In contrast, with OPENMPI-1.8.2 all explicit Ftn-interfaces for MPI-routines needed by our CFD-code are present. Compliment!
Greetings Michael Rachner
Von: mvapich-discuss [mailto:[email protected]] Im Auftrag von [email protected] Gesendet: Donnerstag, 11. Dezember 2014 13:12 An: [email protected] Betreff: [mvapich-discuss] missing Fortran bindings in MVAPICH2-2.1a
Dear developers of MVAPICH2,
I found, that the explicit interfaces in the mpi-module are still missing in MVAPICH2-2.1a (with INTEL-14.0.4) for these 11 MPI-routines: MPI_BCAST MPI_GATHER , MPI_GATHERV MPI_REDUCE , MPI_ALLREDUCE MPI_SCATTER, MPI_SCATTERV MPI_SSEND , MPI_RECV MPI_WIN_ALLOCATE_SHARED, MPI_WIN_SHARED_QUERY
Greetings Michael Rachner
_______________________________________________ mvapich-discuss mailing list [email protected] http://mailman.cse.ohio-state.edu/mailman/listinfo/mvapich-discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
participants (1)
-
Junchao Zhang