Can Fortran survive another 15 years?
Connecting state and local government leaders
Researchers at Los Alamos National Laboratory evaluated the risks of relying on the 65-year-old code for nuclear security.
Fortran, the high-performance computing programming language, still underpins some government systems that require extensive calculations, including those used for weather forecasting, climate science, medicine, genomics and nuclear security. The language, created by IBM in 1957, was considered the first high-level computer programming language for wide use.
Researchers at Los Alamos National Laboratory released an April 18 report evaluating the long-term risks of relying on Fortran for mission-critical code supporting nuclear security. They found several challenges to using Fortran for another 15 years.
First is the diminishing number of people who can work with it. The report said it is very likely Los Alamos will be unable to staff Fortran projects with top-rate computer scientists engineers and an even chance it won’t be able to find top-rate computational scientists and physicists who can program with the language.
Fortran is no longer widely taught in universities, and students are more likely to learn C++ or Python. The lack of demand for Fortran developers, compared to job openings for candidates with other language skills, further diminishes the labor pool. And with many of programming used in physics projects having already migrated to C++ and Python, available candidates’ language skills will also likely change.
While training experienced programmers in Fortran is not a major challenge, the report said, attracting and retaining skilled staff at a time when the number of Fortran programmers is declining will increase the competition—and salary demands—for developers.
Second, maintaining Fortran-based systems will be difficult, with an “even chance continued maintenance of Fortran codes will lead to expensive human or financial maintenance costs,” the authors said. The cost of the compiler technology—which translates a program into machine code to run on high-performance systems—is rising, with recent estimates of tens of millions of dollars.
Other expenses include training staff in the structure of Fortran-specific applications, which can take years before they are fully conversant, as well as the costs of developing interoperable interfaces with other programming languages.
While Fortran will probably run acceptably on future CPU technologies, it will likely perform poorly with GPUs because of the lack of robust Fortran compilers, the report said, noting that the ecosystem of tools is “significantly lacking in Fortran.” Additionally, Fortran is likely to lag in robust support compared to C++ and Python, leaving the Department of Energy as likely the “only proponent of Fortran on these advanced technologies.”
All that essentially means that there is an even chance that Fortran will inhibit the introduction of new features or physics that would be possible with other languages.
While the paper’s goal is to outline the risk of using Fortran into the late 2030s, it does include contrasting comments from reviewers who disagree with aspects of the judgments, citing the paper’s “overly broad” comments about CPU/GPU performance and workforce challenges. Others suggested that improving compilers could be a better investment than replacing Fortran in the code base and that the Department of Energy should be funding Fortran optimization for specific use cases.
Fortran is two years older than COBOL, another coding language that's still in use even though fewer people know how to maintain it. Even though these languages aren't the latest, they still support some of government's essential systems, including tax processing, benefits management and weather monitoring.
“To date, much of the discussion about the prospects for Fortran has tended to be informal and centered on questions (such as, “will the language be around in 20 years”) that are impossible to answer with any certainty,” the report said. “By focusing on estimates of the likelihood associated with different outcomes, rather than on specific predictions, we hope to clarify points of disagreement within the community and strengthen the analytic basis for reasoning about the future.”
Read the LANL 9-page paper or this community discussion for a more detailed evaluation of the future of Fortran in mission critical code.
Clarification: This article was changed May 1 to include contrasting comments from reviewers.