A four year old workstation is obsolete. Scientific and engineering Fortran codes live for
decades.
FPT contains powerful tools for migrating code from one computer system to another.
An FPT migration typically has four steps:
Checking the Code |
FPT checks for errors in the original code. It is much easier to migrate correct
code than code which contains errors. If the code doesn't
run correctly on the new host, we need to know that
this is because of the migration process, not because
of an existing bug which has shown its symptoms in a
new way. See the Quality Assurance
pages for a description of the checks. Any errors are
corrected on the original host before migrating the
code.
|
Preparing Tests |
The Record/Replay (Hamlet) facility
captures test data on the original host. A common problem
is that packages are made up of groups of programs which
interact through file I/O, network I/O or shared memory.
FPT captures data from the interfaces so that the programs
may be tested separately.
|
Converting the Code |
FPT converts many language extensions to standard code in a single pass, in very much
less time than the Fortran compilation. The changes are repeatable. Usually they are
controlled by a script which is adapted to produce the desired result.
We avoid the situation where the source is modified manually through intermediate
stages where it won't run on either host.
The changes depend on the characteristics of
the hosts. FPT has extensive facilities for migration:
|
Testing and Debugging |
The migration is tested by replaying the recorded data. The replay mechanism allows
the real interfaces to be added progressively.
Difficult debugging issues can be attacked by the
FPT run-time trace facility - FPT instruments sections of the code to capture
every left-hand-side scalar quantity to file, and it is then possible to find the point at which two program
runs diverge.
Data sets may be compared by the RDIFF utility, a file comparator which is insensitive to
real number formats and to small differences between numbers. |
|