> The concept of CI (Continuous Integration) and GitHub Actions have been not only life-changing but also eye-opening to me. They enable me to test my code with intensity and extensiveness that are unimaginable otherwise.
That's such a surprising sentence for me to read in 2024. CI to me is like a compiler: a basic, necessary tool. One of those things I assume everyone else also does. I guess the Fortran people move a bit slower than the rest of the industry in this regard?
In grad school I worked on three separate Fortran code bases written as early as the 80s with tens of thousands of lines, no source control or version history, no build systems or even build scripts, and no tests. I think a lot of old scientific software is in the same condition, with some mix of "if ain't broke don't fix it" and the code being very hard to refactor.
This quote from the linked PRIMA page pretty much sums up my experience porting the above code too: "I hope I am the last one in the world to decode a maze of 244 GOTOs in 7939 lines of Fortran 77 code — I did this for three years and I do not want anyone else to do it again"
I learned about CI in 2021, when PRIMA was (fortunately) still in the early stage. I agree that I am behind "the industry" in learning CI.
However, note that I am an applied mathematician, who has been trained and working in Math departments. I have no background in computer science, although I took programming courses twenty (!) years ago. My interest is primarily in mathematical theory. I could have a perfect career without doing any coding at all. In other words, I do not belong to "the industry".
I have been developing PRIMA because it is a commitment to the late Professor Powell, and because I believe it is important to the community. I do not enjoy coding so much. I hope to spend more time on mathematics.
That said, I hope it is understandable why I am "a bit slower than the rest of the industry in this regard".
I do not think I am a good representative of the Fortran/HPC community in any sense.
HPC, or scientific computing more generally, are slow when it comes to adopting modern software development practices. Most researchers used to only care about results above all, rather than reliability or reproducibility for other users. DOE initiatives [0] in the past couple years have done a lot to change this, though there are significant hurdles from a security and logistical standpoint [1]. For instance, to uncover issues in a PR, you might need to run the code at >64 nodes on a shared system.
The complaints in that thread, about how hard it is to exchange money for Fortran compilers (and then, if you succeed, trying to figure out the overly paranoid license management software) really brings back "fond" memories of academia 20 years ago. In a world with github and crates.io and pypi and npm, it really is weirdly quaint.
This is the case for only the NAG Fortran compiler (nagfor).
All the other major Fortran compilers on the market are easily available in the "modern" way: gfortran, Intel ifort/ifx, NVIDIA nvfortran, Classic flang, AOCC flang, and Arm flang. All of them are available on Ubuntu with .deb packages. For the last two, you need to download the .deb files manually, but the others can be installed via apt. In addition, they are all free of charge, although this is less important point.
Despite all the complaints I made in the original Fortran Discourse post, I must stress that nagfor is surely one of the best Fortran compilers (top 3) in all aspects (bug-free, responsiveness of tech support, support of the standard, clarity of debugging information, documentation ....).
A great compiler, but needs some modernization of its accessibility.
leonheld|2 years ago
That's such a surprising sentence for me to read in 2024. CI to me is like a compiler: a basic, necessary tool. One of those things I assume everyone else also does. I guess the Fortran people move a bit slower than the rest of the industry in this regard?
Brentward|2 years ago
This quote from the linked PRIMA page pretty much sums up my experience porting the above code too: "I hope I am the last one in the world to decode a maze of 244 GOTOs in 7939 lines of Fortran 77 code — I did this for three years and I do not want anyone else to do it again"
zaikunzhang|1 year ago
I learned about CI in 2021, when PRIMA was (fortunately) still in the early stage. I agree that I am behind "the industry" in learning CI.
However, note that I am an applied mathematician, who has been trained and working in Math departments. I have no background in computer science, although I took programming courses twenty (!) years ago. My interest is primarily in mathematical theory. I could have a perfect career without doing any coding at all. In other words, I do not belong to "the industry".
I have been developing PRIMA because it is a commitment to the late Professor Powell, and because I believe it is important to the community. I do not enjoy coding so much. I hope to spend more time on mathematics.
That said, I hope it is understandable why I am "a bit slower than the rest of the industry in this regard".
I do not think I am a good representative of the Fortran/HPC community in any sense.
Thanks.
jfkfif|2 years ago
[0] https://ecp-ci.gitlab.io/docs/admin/jacamar/introduction.htm...
[1] https://arxiv.org/abs/2303.17034
12_throw_away|2 years ago
zaikunzhang|1 year ago
All the other major Fortran compilers on the market are easily available in the "modern" way: gfortran, Intel ifort/ifx, NVIDIA nvfortran, Classic flang, AOCC flang, and Arm flang. All of them are available on Ubuntu with .deb packages. For the last two, you need to download the .deb files manually, but the others can be installed via apt. In addition, they are all free of charge, although this is less important point.
zaikunzhang|1 year ago
A great compiler, but needs some modernization of its accessibility.
Bostonian|1 year ago