[J3] Performance Portability and Fortran: Making Fortran cool again
Damian Rouson
damian at sourceryinstitute.org
Wed Jan 16 01:55:25 EST 2019
Hi Gary,
Tread lightly in this territory -- especially in the DOE community. There
are very influential people who will have daggers drawn the minute you try
to say anything positive about Fortran. It gets religious quickly and most
in the community are unaware of the latest developments in Fortran but are
very aware that the compilers have not kept up with the standards. Citing
fancy new features that your compiler doesn't support won't get you very
far in the DOE community. They know that story all too well and it's at
least one of the reasons so much of the DOE community has moved away from
Fortran. They had work to get done and couldn't wait for compiler support
to come along.
On Tue, Jan 15, 2019 at 5:32 PM Gary Klimowicz via J3 <
j3 at mailman.j3-fortran.org> wrote:
> Usage
>
> · What ECP projects are using these technologies? Why? Why not?
>
Good luck getting most DOE ECP projects to use Fortran beyond calling
Fortran 90 kernels from C++. It's important, however, to know that while
the most vociferous parties in the DOE applied mathematics and computer
science communities have all moved to C++, there are numerous highly
impactful DOE scientific projects that quietly produce the bulk of their
results with Fortran codes, but they don't spend time giving talks about
their code or about the language they use. They just get science done and
they most often do it with self-contained codes that have no external
dependencies and therefore have no direct contact with the codes that get
so much notoriety in the applied math/CS circles in DOE.
> · What's the breadth of usage outside of a particular Lab?
>
See slide 11 of http://bit.ly/2AOu62N for data demonstrating that Fortran
was still very much in the lead in terms of usage at one of DOE's largest
supercomputing centers as of 2014. I haven't seen more recent data, but I
have seen data from several other government and academic supercomputing
centers in the U.S and Europe and the results were all similar. Here's
similar data from the UK around 2015: http://bit.ly/2CppG29.
> · What conditions are changing that might affect adoption?
>
> Features
>
> · What key values get people to try them?
>
Exposure. Here's data showing the prior interest in coarray Fortran among
attendees of courses I've taught: http://bit.ly/2suRcag. That data is
from pre-course surveys, but once people see this stuff, they love it even
more.
> · What could be done to make them more appealing?
>
Broader compiler support. Ahem...
> · (To panelists) Has your offering been compared quantitatively
> to other alternatives?
>
For a comparisons between coarray Fortran and two-sided MPI (by far the
most common use of MPI in current scientific applications), see
http://bit.ly/2VT4ASS.
>
> Portability
>
> · What factors about this programming model most affect
> portability?
>
Compiler support of recent standards.
> · What are the portability opportunities and challenges of this
> programming model?
>
See above.
>
> I'm thinking that there are a few important things Fortran has that the
> others don't:
>
> - Decades of code bases that continue to work and whose performance
> improves as compiler and hardware technology improves
> - A DSL (domain-specific language) for array operations
> - Coarrays and teams
> - DO CONCURRENT
> - Strong rules about data aliasing (supporting optimizations like
> vectorization)
>
>
You're going to have a very hard time getting these past the crowd when PGI
and flang don't fully support/leverage these features. People in the
audience will know that. Certainly Mike Heroux will.
> I'm sure I'm missing some obvious things.
>
Don't forget events. C++ has something similar called "futures," but but
they only work on shared memory. The real game-changer in Fortran is that
coarray features, including events, work in either shared or distributed
memory and are programming-model-agnostic, i.e., the programming model
under the hood could be MPI, SHMEM, or something else.
>
>
> If you had 10 minutes to explain to this group why Fortran is cool again
> for portable performance, what would you say?
>
I would say that a beginning graduate can go from not knowing Fortran to
writing reasonably sophisticated application code (e.g., a PDE solver) that
scales to tens of thousands of cores in the span of one academic quarter or
semester.
>
> Any help you can provide will be paid back at FIDS.
>
Best of luck. Be aware that in the C++ community, it has become common for
even an open-source compiler (g++) to fully support a new standard before
its publication or very son thereafter. Moreover, C++ now publishes new
standards every 3 years. I suppose one way to respond to this is to note
that there are many more actively developed Fortran compilers than there
are actively developed C++ compilers so one might expect a broader range of
states of development with some compilers being closer to keeping up with
the standards than others. ;)
Damian
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.j3-fortran.org/pipermail/j3/attachments/20190115/8d8b981e/attachment.html>
More information about the J3
mailing list