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|2 years ago
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...