NPL has been at forefront of numerical computation since the first computers in the world were developed here and elsewhere in the late 1940s. From that time, computers have always been used to perform numerical scientific calculations and NPL has developed hardware and software for computation to support scientific research and development. Science needs high accuracy calculations and measurement science in particular also requires calculations of the uncertainty in the measurements, together with traceability and repeatability of the calculation process.
Numerical computation is primarily concerned with the design of algorithms to solve a computational problem. Numerical algorithms must correctly implement the mathematics to solve a computational problem but the algorithms must also take account of the limitations of time, space and numerical precision available for a real computation on a computer. A naïve implementation of the mathematical solution may result in an algorithm that is far less accurate than a properly designed numerical algorithm; even for something as simple as using a formula for solve a quadratic equation.
The key properties of a numerical algorithm are:
- numerically stable: small changes in the inputs do not cause large changes in the outputs;
- robust: operates properly for a wide range of inputs, delivering a solution where one can be computed, and identifying the problems with input data otherwise;
- effective: delivers the correct solution, to the accuracy desired;
- efficient: delivers the solution without using too much time or space (computer memory).
These properties conflict and the key to numerical algorithm design is to be able to improve some properties of the algorithm, without costs to the others.
Many scientific calculations consist of the same algorithm applied to different initial data and are therefore very suitable for parallel computation. Parallel computation can be formed by multiple processors on one large computer, but instead NPL has developed techniques for solving measurement problems using computing distributed over a cluster of hundreds of individual computers.
NPL has developed libraries of software targeted at the needs of measurement science that are based on algorithms that are numerically stable, robust, effective and efficient. The particular needs of test such software has lead to new techniques for automatic generation of test data. These include techniques which allow the test data to be generated from the expected results, allowing the test data to be tailored to the intended use of the software.
NPL produces software that exemplifies best practice in modelling and numerical analysis that is best suited for use in measurement science. Other high quality software is also available for scientific computation.Much of this software is available from repositories of software including EUROMETROS the EUROMET repository of software, which is maintained by NPL.