[MPI3 Fortran] One more MPI Fortran thing...
nmm1 at cam.ac.uk
Fri Jan 22 02:25:34 CST 2010
On Jan 22 2010, Craig Rasmussen wrote:
>On Jan 21, 2010, at 6:42 PM, Purushotham Bangalore wrote:
>> The other issue that I remember after the meeting: Since co-arrays will
>> be part of the F08 standard, are they any potential issues that we need
>> to be aware of? Or will the solutions from the Hybrid programming WG
>> solve any potential problems that might arise?
>This is a good question that Bill Long should respond to.
> Bill has long claimed that Cray's coarray implementation works fine with
> their MPI library. I'm not sure what this means precisely. Certainly
> there is no problem with using the MPI API with a coarray program that I
> can think of because MPI would just do send/recv using local memory (but
> I can imagine some interesting race conditions if users aren't careful).
> I would guess that mpirun would have to know it is running a coarray
> program so that the two runtimes don't interfere with each other.
I don't see any major problems. There are a lot of loose ends, but
MPI's basic memory model is pretty similar to Fortran's. Yes, any
naive programmer using the combination will shoot himself in the foot,
but children shouldn't be allowed to play in engineering workshops.
The combination is NOT basic programming!
Collective and blocking transfers behave exactly like normal Fortran
I/O. The normal rules apply.
Non-blocking match asynchronous I/O and, pretty closely, coarray
accesses from other images. Outstanding accesses must be completed
properly before starting a new access, and each mechanism defines
exactly when it completes.
One-sided transfers are a major problem, but are very rarely used.
That is the area where I would expect trouble, if there is any.
> I think running a hybrid MPI and coarray program will be common as MPI
> has more functionality at the moment (and probably always as it is
> library based).
I don't. Hybrid OpenMP and MPI programs are very rare outside the
extreme supercomputing of ASCI. I should expect hybrid coarray and
MPI programs to be similar. They may well be common among Cray users,
of course, but Bill will be able to guess better than I.
However, we shall see.
More information about the mpiwg-fortran