Re: forall and do loop



highegg wrote:
...
One probblem with HPF is that few real-life parallel computations can
be neatly expressed by a sequence of parallelized array expressions
and assignments (like FORALL). That's why even Fortran parallel CFD
codes use MPI.

Not really. MPI is used because of the Sirens call of cheap computing
by "hooking a bunch of PCs together". In other words, distributed memory
MIMD computing. And MPI happens to work ok on shared memory machines.
However most who have used MPI would admit that it is a huge pain compared
to other forms of shared memory parallelism.

On the other hand, given that HPF had a parallel DO directive,
why OpenMP was so much more successful?

There are a lot of reasons. Basically, OpenMP is easier to implement
and easier to use on the shared memory MIMD machines that we have today
than full-blown HPF.

I think there is still value to incorporating a bit more of HPF into the
Fortran Standard. For example I think lots of folks would use the sorting
intrinsics - SORT_UP, SORT_DOWN, GRADE_UP, GRADE_DOWN and friends.

Some of the other HPF intrinsics, like the parallel prefix/suffix operations,
would be fun too. But, like FORALL, probably fewer programmers would realize
their value.

W.
.


Quantcast