Live data from Hacker News

Compilers for continuous integration of Fortran projects

fortran-lang.discourse.group

1–10 of 18 posts

Re: Compilers for continuous integration of Fortran projects

#2
> 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?

Re: Compilers for continuous integration of Fortran projects

#3
post #2

> 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…

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"

Re: Compilers for continuous integration of Fortran projects

#4
post #2

> 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…

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.

[0] https://ecp-ci.gitlab.io/docs/admin/jacamar/introduction.htm...

[1] https://arxiv.org/abs/2303.17034

Re: Compilers for continuous integration of Fortran projects

#5
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.

Re: Compilers for continuous integration of Fortran projects

#6

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.

I think it's only a problem for the NAG compiler, not for gfortran or Intel Fortran, which are more widely used.

Re: Compilers for continuous integration of Fortran projects

#7
post #2

> 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…

I am the one who develops PRIMA ( http://www.libprima.net ) and made the original post at Fortran Discourse (https://fortran-lang.discourse.group/t/which-compilers-are-a...).

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.

Re: Compilers for continuous integration of Fortran projects

#8

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.

Re: Compilers for continuous integration of Fortran projects

#9
post #4
post #2

> 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…

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 unc…

> Most researchers used to only care about results above all, rather than reliability or reproducibility for other users.

This is mainly because of the way that researchers are evaluated, recognized, and rewarded. The community and your university evaluate you by your papers, not your code/software, no matter how useful/important the latter is. In the community of applied mathematics, software development is generally regarded as lower-tier non-creative work, and people believe that you write code only because you are not good enough to do mathematics.

Developing good software, you will receive many thanks but it helps little to build your reputation as an applied mathematician, if not hurts it. You will not get rewarded but (implicitly) penalized by the system, which includes the university and the community. This did happen to me.

For more details, see the penultimate slide of my talk at ICIAM 2023 (The 10th International Congress on Industrial and Applied Mathematics): https://raw.githubusercontent.com/ztalks/20230825-iciam23/ma...

Re: Compilers for continuous integration of Fortran projects

#10
post #2

> 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…

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…

Did you succeed in porting the code? It would not be easy according to my experience with PRIMA. I would be happy to learn if you have a GitHub repo of it. Thanks.
Post reply on HN