An evaluation of risks associated with relying on Fortran for mission critical codes for the next 15 years

With over 6000 employees and 1.25 billion USD revenue (2021), I’d consider it a scam if they didn’t. According to the Fortran Discourse site-statistics, we have about 1100 signed users. The whole Fortran Discourse can’t match the effort that goes into making MATLAB profitable. According to the MathWorks website, they sell over 2200 campus-wide licenses for universities and schools. How many universities or schools, make direct donations to organizations supporting Fortran, or other FOSS organizations? I doubt it’s anywhere near it.

The LANL report says:

Compiler technology costs are significant for Fortran and are trending upwards. Estimates of tens of
millions of dollars have been discussed recently

Tens of millions is still only on the order of ~1% of MATLAB’s revenue. As a different comparison, the estimated costs of the three US exascale supercomputers are:

  • Frontier, US$600M
  • Aurora, US$500M
  • El Capitan, US$600M

In Europe, the European High-Performance Computing Joint Undertaking is spending around €7 billion over the period 2021-2027 to establish HPC infrastructure in the EU member states.

Contrast this numbers with the some of the facts in the letter explaining gfortran history:

With a few exceptions, nearly all the work on gfortran since 2002 or 3 has been done on a voluntary, unpaid basis to meet immediate needs required to support specific coding needs.
[…]
Thus, in my humble opinion, the “new generation of gfortran contributors” will only emerge if they are motivated either by need or are being paid to support gfortran. We give every assistance that that we can to newbies but our ability to do so is typically limited by our daytime jobs. That the gfortran compiler is written in C, with a tiny touch of C++, has also proven to be a barrier. All my younger colleagues are brought up to write their codes in Matlab/Octave or python and only delve into fortran when they have to and so the pool is ever diminishing.

Given that MATLAB supports usage of the Intel oneAPI compilers, perhaps you can lobby them as a large commercial player to exert some influence on the Intel Fortran team over the matmul issue, or even better, ask them to donate to free Fortran compilers like gfortran, which they are happy to point out, is available at no charge.


According to this 2022 blogpost from NVIDIA:

In total, NVIDIA technologies power 361 of the systems on the TOP500 list, including 90% of the new systems (see chart).

I’m not sure what we can infer from this, NVIDIA showing lack of interest in F2008+, or HPC users not putting enough pressure on them, or maybe even HPC users being satisfied with the classic combination Fortran 90 + BLAS + LAPACK + FFTW + OpenMP + MPI.

I find this bullet point silly, given that the same standards AND EVEN MORE, are available for C++: OpenMP, OpenACC, OpenCL, SYCL, C++ stdpar. If Fortran + OpenMP/OpenACC is not supported well on the MI250, that should be taken up with AMD and HPE Cray. As Jim Cownie explains in his essay Is Fortran a “dead” language?,

The compilers used in High Performance Computing [HPC] are mostly written by the providers of the hardware, and, normally, that means the designers of the CPU (or GPU) chips.

There are good reasons for this:-

  • To have compilers ready when a new chip comes out work has to start before the specifications are public, so an unrelated software company cannot do it.
  • If they are sane, the hardware architects should be worrying whether their wonderful new features can be used by compilers, so they need to be talking to compiler writers and accepting their feedback even before the specification of new instructions is finalised.
  • Since the price at which a CPU or GPU can be sold is related to its performance, having a compiler which improves the performance of whatever benchmark codes are used for this evaluation is valuable as it allows you to charge more for each machine you sell. Indeed, this may be a simpler, cheaper, way to achieve performance than using an improved process to make the chip, or having it run at a higher clock frequency (and thus consume more power).
  • Having an in-house compiler-team allows rapid fixes to be made if there are problems when running the benchmarks required for specific procurements.
  • To compete in a specific market the customers there must be able to run their codes on the machine you are trying to sell. In the HPC market that means having good Fortran support

As to why Fortran support may be lacking behind on the MI250 compared with C++, perverse incentives could be one explanation. Here are some slides I’ve borrowed from Jim Cownie’s talk, Growing Up as a (Software) Engineer:

5 Likes