Readit News logoReadit News
leonheld · a year ago
> 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?

Brentward · a year ago
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"

zaikunzhang · a year ago
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.
zaikunzhang · a year ago
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.

kinow · a year ago
>That said, I hope it is understandable why I am "a bit slower than the rest of the industry in this regard".

You are doing a great job. I worked with research institutes from Australasia, and now am working with others from Europe. There are heaps of people from different backgrounds like yours, geography, physics, engineering, etc., that inherit or start coding projects.

And people with different ages too. I've seen people fresh off university learning about tests, and also researchers with a great reputation and lots of papers written that were getting the hang of what were unit tests, CI, a server and a client, and other concepts that are so common to people in IT.

Nothing wrong with that. Keep up the good work, and keep slowly improving the code. I hope you have somebody else to work with you on this task, and do some code review or discuss when you need to work on something new, or perhaps a group at your company/work that has some Research Software Engineers.

Most RSE's I know are familiar at working with people from different backgrounds to slowly improve projects without blocking/stalling research, simulations, and publication. Thank you!

leonheld · a year ago
Oh no, please, don't think of my comment as criticism! Just an observation. Sorry if I didn't make myself clear, it really wasn't my intention.
jfkfif · a year ago
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

zaikunzhang · a year ago
> 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...

12_throw_away · a year ago
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.
zaikunzhang · a year ago
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.

zaikunzhang · a year ago
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.

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