High Performance Fortran (HPF) history and lessons

Thanks for this link. I had run across a reference to the article before, but the link I found didn’t allow me to read the whole thing. I have been writing a blog post on FORALL vs, DO CONCURRENT and included the history of HPF behind FORALL.

As someone who worked on an HPF compiler (DEC Fortran 90), I agree with the authors’ belief that it was both ahead of its time and insufficiently expressive. The lessons learned with HPF influenced the development of DO CONCURRENT and the locality spec enhancements in F2018. Of course, the continued development and wide acceptance of OpenMP also played a significant role.

The lesson I took from the ultimate failure of HPF is that trying to “bake in” to a language features tied closely to current hardware architectures is likely to end up being a wasted effort that becomes irrelevant over a short timeframe. Over my career I have seen multiple “go faster” hardware trends come and go - I consider the current attention paid to GPUs to be in this class. A few years from now, GPUs will likely be forgotten. A few years ago, there was a proposal to add a “FASTMEM” attribute to Fortran, as there were some current hardware implementations of that. It was rejected, and the concept of a separate class of “fast memory” soon started fading from current hardware.

Experimenting with language features in a compiler can help reveal problems in the specification, but I’m skeptical that it sheds any light on how useful it is to application development.

6 Likes