Systematic Errors in Fortran
Several classes of systematic error have been identified in Fortran codes. This investigation seeks to understand:
Emulation of Real Arithmetic
fpt supports a system for emulation of the real and complex arithmetic in a program. All REAL and COMPLEX declarations are changed to declarations of objects of derived types. All arithmetic operators and intrinsic functions which operate on REAL and COMPLEX objects are overloaded to operate on these types, and it is then possible to modify the arithmetic behaviour. There are at least two applications.
Units and Dimensions
SimCon is carrying out research on automatic identification and checking of the physical units and dimensions of the variables in a Fortran program. The tools form part of fpt, and preliminary releases have been tested by CSC at Airbus Filton. An important issue is that the user does not need to specify the units and dimensions of the variables in the program. fpt automatically determines the relationships between the units of different variables, and attempts to find inconsistencies or to show that none exist. More...
Testing Numerical Precision
A technique has been developed to test the adequacy of the numerical precisions chosen in real world programs. It is possible to identify the specific variables in a code where the chosen precision breaks down. It is also possible to determine the precisions required for correct program execution. In many cases the precisions may be reduced safely from those of the 4, 8, 10 and 16-byte IEEE numbers in use. This could lead to a significant reduction in the data transferred between processors in multiprocessor systems, and therefore to significant improvements in speed. More...
Analysis of Errors in WRF
WRF is one of the most important programs used in weather forecasting and in the analysis of climate change. The code contains many thousands of errors and inconsistencies. Most of these have no consequence other than a small loss of precision in intermediate results, but some are potentially significant. More...
FPGA and Parallel Programming
Research on automatic fine-grain parallel programming of FPGAs and multi-core systems is being carried out in collaboration with The University of Cape Town and Edge Hill University. Algorithms for parallelisation and for fixed-point scaled fraction programming, first developed for the AD10 simulation computer, are applied to FPGAs. More...
The Tracking Radar Project at DENEL OTR
SimCon worked in collaboration with staff at DENEL OTR to re-host tracking radar control programs from Gould-SEL computers to PCs. This was a large industrial research project, and involved automatic translation of code for embedded CSPI MAP array processors and automatic translation of Gould-SEL assembler code. fpt was used to convert the Gould-SEL Fortran code, which used DATAPOOL and shared memory constructs, to standard Fortran.
Edge Hill University
The two senior researchers at SimCon, Brian Farrimond and John Collins, are both Honorary Research Fellows at the Department of Computing at Edge Hill University (EHU). The current project, in collaboration with Prof. Mark Anderson at EHU and Dave Gill at The University Corporation for Atmospheric Research, Boulder, Colorado, is to re-engineer the weather and climate prediction program, WRF, in order to remove systematic errors and to improve reliability. The project is partly funded by he United States Air Force.
This work includes:
Aspects of this work are described in the posters presented at the WRF workshops in Boulder Colorado, publication 3 and publication 4, and in the poster presented at the 4th WGNE Workshop on Systematic Errors in Weather and Climate Models, publication 5.
An important issue in the use of large computer programs such as WRF is the reproducibility of results. Different parallel configurations, different compilers and different machines may legitimately produce different results because of numerical drift. This is caused by the accumulation of small rounding errors due to different orders of computation or differences in the precision of numbers. The results may also differ because of differences in the consequences of coding errors and compiler bugs, but these effects are hidden amongst those due to numerical drift. The run-time trace facility in WinFPT is used to suppress numerical drift. Coding errors and compiler bugs are then exposed and may be trapped. This work is described in publication 7.
The University of Cape Town
Brian Farrimond and John Collins are Honorary Research Associates at the University of Cape Town (UCT). We are working in collaboration with members of the Radar Remote Sensing Group, and on projects connected with The Centre for High Performance Computing (CHPC). The current project, in collaboration with Jane Wyngaard and Prof. Mike Inggs at UCT, is the development of a new class of fine-grain parallel processor, based on the work described in publication 2 and publication 8, below.
Copyright ©1995 to 2021 Software Validation Ltd. All rights reserved.