3 ms·
Yes, the electronic structure community is rapidly moving away from Fortran. In my opinion, Fortran will fall behind as newer hardware, libraries, etc, will dr
by sseagull 9y ago
Yes, the electronic structure community is rapidly moving away from Fortran.
In my opinion, Fortran will fall behind as newer hardware, libraries, etc, will drop Fortran support. Also, newer grad students are all much more interested in C/C++/Python. I think this is in part because the newer languages are widely used outside of science and therefore there is much more documentation and tutorials/guides. Not to mention that skills in those languages are transferrable to other areas (data science, machine learning, etc).
As a side note: Wow someone working on the ECP on HN? I'm tangentially related to the project (and just visited PNNL last week)
- quadruplebond 9y agoJust a grad student, soon to be postdoc, so not a big wig on ECP.
- jabl 9y ago> Yes, the electronic structure community is rapidly moving away from Fortran. Really? Seems to me that with very few exceptions (e.g. GPAW which is python/C and nwchemEx which I've never heard about until the parent poster mentioned it), electronic structure is pretty much a Fortran bastion. (Source: I did a Phd doing mostly electronic structure calculations, graduated ~5 years ago)
- sseagull 9y agoWell, it's moving, not moved yet. New libraries are being written in C/C++, and maybe Python. This includes libraries that should form the foundation of the QM community (matrix/tensor and integral libraries). These are meant to take advantage of newer hardware and libraries which themselves are written in C/C++, and often in a way that is inaccessible from Fortran. The old Fortran code will be around for a long time, but I don't know of any large-scale, serious efforts to develop new packages or major new functionality that are starting with Fortran. (I'm not totally against Fortran - I just spend a week devloping in it. But I still much prefer C++ and Python)
- yosyp 9y agoLarge-scale Atomic/Molecular Massively Parallel Simulator (LAMMPS) is written in C++ and it's over 20 years old. The FORTRAN codebases seem to be centered around the finite elements/difference methods and the fluid dynamics community.
- sseagull 9y agoSorry, I wasn't specific. My comment mostly applies to the quantum mechanics (QM) community, rather than molecular dynamics. In QM, many people still run Gaussian/GAMESS/ADF/MolCAS/MolPro/Dalton, which are all Fortran (or majority Fortran). And most are Fortran 90 or earlier. My background is in QM, so I guess that's my bias showing through :)
- gnufx 9y agoEven in Molecular dynamics, there's dl_poly, for instance. Other things that come to mind in Fortran apart from nwchem are cp2k and castep. Somewhere under http://www.archer.ac.uk http://www.archer.ac.uk, there's a summary of the time used by various codes on that UK "Tier 1" system.
- gnufx 9y agoI don't understand why the implementation language of low level libraries should determine a high level language that uses them. In what way are C libraries inaccessible from Fortran, given that it defines interoperability with C? I'm afraid you need a 10-, or preferably 20-, year perspective, not a week.
- sseagull 9y agoI have been developing in Fortran for years. I just mentioned that as an aside. About C compatiblity: Many C libraries use pointers in their interfaces. Interoperability is indeed defined by the Fortran 2003 standard, which I have used several times to wrap existing C libraries. However, much of the existing code is F90 only (some even F77...), and a vast majority of Fortran developers in the field are not familiar with even modules and other F90 features, let alone iso_c_binding in 2003. Also, newer libraries tend to be C++ as well, which is more difficult (or at least more awkward) to wrap.
- quadruplebond 9y agoThere is a lot of electronic structure in c and c++. For SMP there is psi4 and Orca also Garnet Chan has a new python C++ package. Then some widely used integral code generators generate c or c++ (libcints, Libint2) On the parallel front MPQC has been around a long time and is C++.