In a presentation made at the Rosenstiel school of marine and atmospheric science’s Compass Friday event, Milan Curcic spoke on ‘Advancing earth system prediction with machine learning and state-of-the-art measurements’. One issue is how to add an ML component to the legacy code base, much of which is in Fortran. ML is usually done in Python Frameworks but ‘virtually every weather ocean wave climate model is written in Fortran’. Curcic observed that this is ‘not just a historical thing’ the latest models used by NOAH researchers are also in Fortran. Integrating with ML is a ‘point of friction’.
One solution would be to rewrite earth system models in another language. But this would be difficult and prohibitively expensive. A Python front end to earth system data is conceivable but would suffer from a maintenance and performance perspective. Curcic is proposing a different route and has written a neural net training algorithm in Fortran – a parallel deep learning framework that has been used to accelerate model building in chemistry, weather and climate. The work has been supported in part by a small grant from NASA Goddard and Google. The Department of Energy has also been solicited for further development. Curcic also praised the new LFortran compiler that targets multiple architectures such as multi-core CPUs and GPUs. Watch Curcic’s talk on Youtube.
HPC Wire published recently on a new report from the Los Alamos National Lab that sounded the alarm over the declining number of Fortran programmers and the reduction of Fortran teaching. The situation is awkward for the mission critical codes in that LANL develops. Many large scale physics codes have migrated to C++ and Python now dominates as an analysis language. While LANL sees Fortran as staying strong on future CPU hardware, it calls into question its performance on GPUs ‘precluding its effective use of important advances in computing technology’. LANL also regrets the absence of portability tools for Fortran. HPC Wire observes that the LANL message ‘isn’t new but part of long-term chorus of worry about Fortran’s decline and the impact of that decline on HPC and legacy scientific codes’.
Le Monde reported recently on how the EU banking sector is short of Cobol programmers. Cobol programmers are a species in danger of extinction as the expert coders retire! But Cobol is still in demand as it is the code than runs in the background of ATM machines, flight reservations and cash registers. Cobol is not popular with younger coders who nickname it ‘Completely obsolete business-oriented language’. Companies may be tempted to re-write their applications is Java or Python – but such migrations cost tens of millions of euros and are not without risk. In 2018 the UK Trustee Savings Bank set out to migrate from Cobol to Java, resulting in monster bugs that froze five million users from their accounts as monies ‘evaporated’. In 2022 TSB was fined almost £50 million for its errors – and that was in addition to the £32 million shelled out to compensate clients. The moral? Don’t fix what ain’t broke.
In another facet of the language conundrum, Altair recently put in a pitch for the venerable SAS language. While today’s analytics and ML developers have many free-to-use resources like Python, R, and SQL, there’s a catch. While it may no longer be the preferred choice for coders who have grown up with open source, the long-established, SAS language remains a staple of the data science ecosystem. As a result, many enterprises still rely on a host of business-critical applications that were written in SAS.
A Cornell preprint on Arxiv by Ali Kashefi and Tapan Mukerji discusses the use of ChatGPT for programming numerical methods in different programming languages, for debugging and improving written codes by users, for completing missed parts of numerical codes, rewriting available codes in other programming languages, and for parallelizing serial codes. The 50 plus page paper concludes that ChatGPT ‘can generate codes for implementing numerical algorithms in different programming languages such as C, C++ and others’. It can also debug and improve code efficiency and parallelize C++ codes to OpenMP. It fails in the following areas, generating singular matrices, produces arrays with incompatible sizes and shapes, halts when generating long codes (e.g. for serious scientific simulations) and includes ‘unknown libraries’ (hallucinations?). ChatGPT also cannot tell if code is generated by humans or by itself.
© Oil IT Journal - all rights reserved.