(j3.2006) Preparing for the Tokyo meeting

N.M. Maclaren nmm1
Wed Nov 5 08:40:28 EST 2008

I have just spotted this one, too.  I am sending to J3 only.

John Wallin wrote:
> I think it is certainly true that coarrays are manifestly useless on
> systems that are uniprocessor vonNeumann machines.  However, you can't
> buy those any more.  Everything now and in the future is going to be
> multicore, at least from Intel's point of view.

While that is true, multi-user (shared) systems are NOT going away, and
parallel applications are a right b*gg*r to schedule on such things.
Some administrators forbid them, and jump had on users caught running
them.  But, in many more, they cause trouble to other users and/or run
very badly (including taking many times as much CPU as they need).

So serial Fortran will not go away any time soon, and some people will
positively want coarray-free compilers (or a fixable mode).

> With coarrays, you will need to define processor teams and set up the
> algorithm to work on a heterogeneous machine, but the big advantage is
> that you can do it without all the horrific overhead associated with
> using MPI.  (I have some good examples of how horrific this can be for
> the morbidly curious.)  ...

If you have any such examples that apply to distributed memory systems
without special RDMA/coarray hardware, please Email them to me.

> The final part of the argument was that Fortran provides a convenient
> expression of algorithms that are applicable to any architecture.  This
> is only partially true.  All of us have tuned our codes to run more
> efficiently on vector machines.  ...

Er, the vast majority of Fortran users have never USED or even SEEN a
vector machine (and, no, I don't count SSE etc.)  You have, and I have,
but the kiddies - including post-docs here :-) - I teach never have.
Some have never even HEARD of them!

> In fact, this is the reason why coarrays need to be included in part 1.
> However, it is not true that it will run at the same efficiency on all
> platforms.  That detail is still left to the programmer since compilers
> really can't figure this out and architectures are rapidly changing.

In my view, the real concern is whether they will work RELIABLY on all
platforms.  This means without artificial deadlock, with only a bounded
performance degradation, with specified and comprehansible behaviour,
and without the code doing the wrong thing on occasion because the
specification is essentially unimplementable.

And that is why I am going to Tokyo!  We need to ensure that is possible
before including them.

Nick Maclaren,
University of Cambridge Computing Service,
New Museums Site, Pembroke Street, Cambridge CB2 3QH, England.
Email:  nmm1 at cam.ac.uk
Tel.:  +44 1223 334761    Fax:  +44 1223 334679

More information about the J3 mailing list