[MPI3 Fortran] Deprecate mpif.h?
Jeff Squyres
jsquyres at cisco.com
Mon Mar 8 10:42:57 CST 2010
On Mar 5, 2010, at 2:38 AM, Supalov, Alexander wrote:
> It appears to me that you don't want to do this in the name of the
> Forum as a whole, so, let me ask our partners what they think about
> deprecating the mpif.h/mpi module, and introducing a backward
> incompatible mpi3 module that will make them recheck (possibly
> rewrite)/rebuild/revalidate/recertify their mission critical
> applications.
>
Alexander -- you're still missing the point entirely. Yes, I object
to you asking customers this question because you still apparently
don't seem to understand it.
The addition of a new mpi3 module does NOT imply anything about the
continued existence of mpif.h and the mpi module. When you phrase the
question like you did above, it implies:
- that the Forum will remove mpif.h and the *ONLY* mechanism available
will be the new mpi3 module.
- the new mpi3 module is the cause of recertification of their
application.
That's just wrong. If I were a customer and had no context for your
question other than what you said, *of course* I would think a
backwards incompatible mpi3 module would be a bad idea.
As has been said repeatedly, deprecating != removing. We, as a Forum,
would be criminally stupid to remove mpif.h or use mpi any time in the
near future.
> > 2. Saying that the mpi3 module is only for Fortran 2008 compilers
> is incorrect. IIRC, the Open MPI prototype implementation of "use
> mpi3" has been usable with the Intel Fortran compiler since
> v10.something, for example (it's up to v11.1.something these days).
>
> I'm afraid you miss my point. As soon as I just say "use mpi3" in an
> application that used "include mpif.h" or "use mpi" before, I have
> to recheck, possibly rewrite, rebuild, revalidate, and recertify my
> application on all OS, platforms, compilers even if I don't change
> anything else, including the compiler. This is a huge hit that seems
> to be ignored on this thread.
>
But by your own example, you're going to have to do that anyway
because you're adding some new functionality into the code. THAT's
what causes the re-certification. Whether that new functionality uses
mpi3 or not is irrelevant. Recertification is going to happen
regardless of whether they use the new mpi3 module or not.
To be clear: you seem to be implying that to compile an existing
legacy MPI application against an MPI-3 implementation, you *have* to
"use mpi3" and convert all your code. This is simply not true. Per
the survey data (which you cited in a later email), users strongly
want to be able to upgrade to an MPI-3 implementation and not have to
make any source code changes. Hence, mpif.h and use mpi will still
function exactly as they did before.
The point: new application functionality -- which you were going to do
anyway -- causes re-certification. That new functionality may or may
not "use mpi3". Implying that all changes require converting to mpi3
and *therefore* it's mpi3's fault that you have to recertify is just
FUD.
Another point: upgrading to an MPI-3 implementation, regardless of
whether you change any code or not -- will also require re-
certification.
> > 3. Painting a picture that only advanced / bleeding edge
> developers will be able to use mpi3 without major disruption is
> incorrect. One of the reasons that the conversion functions exist
> is for exactly this purpose: you can extend legacy Fortran MPI
> applications with new MPI3 functionality.
>
> I most respectfully disagree. If I have to use conversion functions
> in my old code, I have to basically rescan all of my application -
> several million lines of code.
>
Right, and that would be pretty dumb. Why not use the conversion
functions in the new subroutines that use mpi3?
--
Jeff Squyres
jsquyres at cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/
More information about the mpiwg-fortran
mailing list