[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [mpi-21] F90 bindings




Ah, the joys of polymorphism. Unfortunately, in Fortran to bypass the type checking will likely to lead to other problems and make MPI Fortran programs even more difficult to debug.


I fear the by virtue of the beast Fortran will have to live with the large number of function profiles. 7 million, however, is surprisingly large. I assume that this is for all the permutations of type. If that is the case, then it simply is what it is.

With respect,
Steven

--
Dr. Steven Ericsson-Zenith
Institute for Advanced Science & Engineering
http://iase.info
http://senses.info





On Dec 7, 2007, at 11:18 AM, Hubert Ritzdorf wrote:

I could convince our SX Fortran guys to implement a VOID attribute which disables the
type checking for the argument; cf.


      Subroutine MPI_Sendrecv(                                       &
                      sendbuf, sendcount, sendtype, dest,   sendtag, &
                      recvbuf, recvcount, recvtype, source, recvtag, &
                      comm,   status,    ierror)
         use MPI_Constants,only: MPI_STATUS_SIZE
!
         VOID                  :: recvbuf, sendbuf
                  Intent (In)  :: sendbuf
                  Intent (InOut) :: recvbuf
         Integer, Intent (In)  :: sendcount, sendtype, sendtag
         Integer, Intent (In)  :: recvcount, recvtype, recvtag
         Integer, Intent (In)  :: dest, source, comm
         Integer, Intent (Out) :: status (MPI_STATUS_SIZE)
         Integer, Intent (Out) :: ierror
      End Subroutine MPI_Sendrecv

Possibly, other vendors can convince their compiler guys so that this may become
a common Fortran 90 extension. This would help also other Fortran
communication libraries even if they don't use a C interface.


Hubert


Cownie, James H wrote:
It may not help since there are few (no ?) compilers available for it,
but a Fortran 2003 binding might make these issues easier. You really
need a Fortran guru...


-- Jim

James Cownie <james.h.cownie@xxxxxxxxx>
SSG/DPD/PAT
Tel: +44 117 9071438




-----Original Message-----
From: owner-mpi-21@xxxxxxxxxxxxx [mailto:owner-mpi-21@xxxxxxxxxxxxx]

On

Behalf Of Jeff Squyres
Sent: 07 December 2007 13:24
To: mpi-21@xxxxxxxxxxxxx
Subject: [mpi-21] F90 bindings

The F90 bindings specified in MPI-2 currently require nearly 7 million
interface functions in the Fortran 90 module (!). This large number
of interfaces is required because F90 is a strongly-typed language and
has no analogue of (void*). MPI_SEND, for example, has to be
overloaded with function signatures for every possible type of choice
buffer. Worse, many collectives have *2* choice buffers... the end
result is that nearly 7M interfaces are needed. As result, many MPI
implementations implement only a fraction of the MPI F90 module
interface functions.


Additionally, user-defined F90 types cannot be supported.

This is clearly a [big] bug in the F90 bindings. What does the Forum
want to do about this for MPI-2.1? Perhaps add some clarification
language? Or ...?


Can this issue be added to the discussion list for the bindings
subcommittee?

--
Jeff Squyres
Cisco Systems

---------------------------------------------------------------------
Intel Corporation (UK) Limited
Registered No. 1134945 (England)
Registered Office: Pipers Way, Swindon SN3 1RJ
VAT No: 860 2173 47

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.