The Science and Technology Facilities Council’s (STFC) Scientific Computing Department (SCD) celebrates the 60th anniversary of the Harwell Subroutine Library, the world’s oldest software library in continuous development and use.
The mathematical software library was developed at the original Harwell campus in the early 1960s to help nuclear physicists and associated researchers with coding problems. Even after six decades, it continues to offer easy access to intricate codes and software packages, which facilitate faster and more efficient scientific research.
Royal Air Force Harwell was an airfield near the village of Harwell that closed in 1946. Once closed, the site became home to the Atomic Energy Research Establishment, a branch of the Ministry of Defence that was responsible for researching applications of nuclear energy. During this time the site was home to a host of physicists, engineers, and mathematicians, working on state-of-the-art equipment.
This included one of the first transistorised computers developed by IBM called ‘Stretch’, which scientists would use through a programming language called Fortran, which was designed for scientific computing. Stretch was the largest, fastest, general purpose computer in the world, making it one of the original supercomputers. It could take a whole day to run just one calculation however, and so researchers would need to check and double-check their work as one small coding error would cost them a whole day of calculation time.
Proposing the Harwell Subroutine Library
To prevent coding errors, mathematicians would help check and recheck the codes being produced to run on Stretch.
Michael J.D Powell was one of those mathematicians. Powell joined the team at Harwell after graduating from the University of Cambridge and was an expert in the fields of numerical approximation and optimisation. In 1963, Powell proposed the idea of creating a collection of subroutines (or codes) designed to perform specific tasks for scientific computing. They named this project the ‘Harwell Subroutine Library’, which came into being in May 1963.
With this, the Numerical Analysis Group (now the Computational Mathematics Group within STFC Scientific Computing as of 2017) was formed, and they compiled a huge library of subroutines in a wide range of computational disciplines.
Former Leader of the Numerical Analysis Group and Honorary Scientist in the Computation Mathematics Group, Professor Iain Duff, was a student at Harwell in the 1970s and one of the mathematicians brought in to develop the numerical algorithms.
Professor Iain Duff explains that:
People were making their own codes which then didn’t work… so we were called in to help. This was essentially why Michael Powell made a proposal for the library, to establish something that was available to everyone and would be of a high numerical standard.
Back then, everything was done using stacks of computer cards which the scientists would take by car to the IBM Stretch Machine at Aldermaston. They would do a computer run and bring back the printed output by about lunchtime, and then take the next lot of cards for the afternoon run. So, you usually got two computer runs each day.
The calculations that used to take at least half a day in the 1960s and 70s can now be done in a millisecond – that’s one thousandth of a second – on a modern smart phone!
The Harwell Subroutine Library still includes original Fortran subroutines written by Powell and his colleagues. Over the years, the library has evolved and has been extensively used worldwide on a wide range of hardware.
In recent years, one of the original codes developed by Michael Powell was used to optimise a plug-in for NASA’s General Mission Analysis Tool and efficiently map the trajectory for one of the NASA missions.
The codes are mostly written in Fortran and were designed so that they could be used to solve multiple problems rather than being targeted at just one application. Still today, these codes can be ‘plugged in’ as a general solver.
Dr Tyrone Rees, STFC SCD Computational Mathematics Group Leader, says:
For a matrix with large-scale symmetric indefinite systems – where there are vast numbers of zeros not interacting with the numbered components – our codes perform better than virtually any others. This is where the HSL codes shine.
Solving these systems is key to projects such as making self-driving cars work safely and efficiently, and we’ve been getting some interest recently from companies working in this space.